From: <Saved by Windows Internet Explorer 7>
Subject: F08.Question7
Date: Tue, 27 Jan 2009 15:11:19 -0600
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0062_01C98091.81EF0BB0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

This is a multi-part message in MIME format.

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-43a9-ba07-d718bdf3f17e

=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 xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD =
id=3Dctl00_masterHead><TITLE>F08.Question7</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"http://www.screencast.com/inc/styles/base.css" type=3Dtext/css=20
rel=3Dstylesheet><LINK href=3D"/img/common/favicon.ico"=20
type=3Dimage/vnd.microsoft.icon rel=3D"shortcut icon"><LINK=20
href=3D"/img/common/favicon.ico" type=3Dimage/vnd.microsoft.icon =
rel=3Dicon>
<SCRIPT src=3D"http://www.screencast.com/inc/scripts/common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/detectplugins.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript =
src=3D"http://www.screencast.com/inc/scripts/view.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/lib/prototype/prototype.js" =

type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/lib/scriptaculous/scriptacul=
ous.js?load=3Deffects,builder,controls"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/lib/jquery/jquery.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/lib/thickbox/thickbox.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/validators.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/library/settingsmedia.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT language=3Djavascript=20
src=3D"http://www.screencast.com/inc/scripts/lib/swfobject/swfobject.js" =

type=3Dtext/javascript></SCRIPT>
<LINK href=3D"http://www.screencast.com/inc/styles/view.css" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK=20
href=3D"http://www.screencast.com/inc/styles/settingsmedia.css" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK =
href=3D"http://www.screencast.com/inc/styles/comments.css"=20
type=3Dtext/css rel=3Dstylesheet>
<SCRIPT language=3Djavascript type=3Dtext/javascript>
         /*
          * Displays the waiting icon...
          */
         function wait()
         {
            // TODO: position this wherever we want it...
            Element.addClassName( document.getElementById( "waitingArea" =
), "waiting" );
         }

         /*
          * Hides the waiting icon...
          */
         function stopWait()
         { =20
            // TODO: position this wherever we want it...
            Element.removeClassName( document.getElementById( =
"waitingArea" ), "waiting" );
         }
        =20
         function inviteEditKeyDown( e )
         {
            if ( e.keyCode =3D=3D 13 )
            {
               emlInvt();
               return false;
            }
           =20
            return true;
         }

         // Some CS presentations add events with an OnLoad function =
(created by the template). =20
         // This function will run CS's OnLoad() if it exists.  If it =
does not exist, no=20
         // error will be thrown.
         function CSOnLoad()=20
         {
            try
            {
               OnLoad();
            }
            catch(e)
            {}
         }
        =20
         function ownerClickToPlay()
         {
             var holder =3D document.getElementById("previewArea");
             holder.style.display =3D "none";
             var video =3D document.getElementById("videoObject");
             video.style.display =3D "inline";
             // Two hacks for IE 7.
             // Hack 1: CS 4 SWFs won't display if code is added to the =
innerHTML, so check to see we have
             //   code to add before monkeying with the innterHTML
             // Hack 2: MPEGs will play even though they are hidden, so =
we have to add the code to the innerHTML;
             //   we can't just hide it with "display: none;"
             var embedCode =3D decodeURIComponent( =
"%3Cdiv%20id=3D%22flashcontent%22%3E%3C/div%3E%3Cscript%20type=3D%22text/=
javascript%22%3Evar%20so%20=3D%20new%20SWFObject(%22http://content.screen=
cast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-43a9-ba07-d=
718bdf3f17e/jingswfplayer.swf%22,%20%22soEmbeddedContent%22,%20%22640%22,=
%20%22404%22,%20%226%22,%20%22white%22);so.addParam(%22quality%22,%20%22h=
igh%22);so.addParam(%22allowScriptAccess%22,%20%22always%22);so.addVariab=
le(%22content%22,'http://content.screencast.com/users/radermac.kris/folde=
rs/Jing/media/5b3643f6-0714-43a9-ba07-d718bdf3f17e/F08.Question7.swf');so=
.addVariable(%22width%22,'640');so.addVariable(%22height%22,'404');so.add=
Variable(%22blurover%22,%22false%22);so.addVariable(%22thumb%22,%22http:/=
/content.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0=
714-43a9-ba07-d718bdf3f17e/FirstFrame.jpg%22);so.addParam(%22allowFullScr=
een%22,%20%22true%22);so.addParam(%22scale%22,%20%22showall%22);so.addPar=
am(%22wmode%22,%22transparent%22);so.addParam(%22base%22,%20%22http://con=
tent.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-=
43a9-ba07-d718bdf3f17e/%22);so.write(%22flashcontent%22);%3C/script%3E" =
);

             if ( embedCode !=3D "" )
             {
                video.innerHTML +=3D embedCode;
             }
             // Safari repaint hack
             var browser =3D navigator.appName;
             if ( -1 !=3D browser.indexOf('safari') )
             {
                video.innerHTML +=3D "";
             }
         }
        =20
         //PageMethods are used to display missing plugin warnings
         function onSucceeded( result, userContext, methodName )=20
         {=20
          //The empty function is necessary to avoid JavaScript warnings =
when
          //PageMethods return
         }
        =20
         // values used for pluginCheck and flash detection in CS =
templates
         var minFlashVersionMajor =3D 9;
         var minFlashVersionMinor=3D 0;
         var minFlashVersionRev =3D 115;
         // Detect the plugin required by looking for classids in the =
embed code,
         // check to see if the browser supports the plugin and display =
an
         // message if appropriate
         // TODO: This javascript is duplicated on the playlist page     =
   =20
         function pluginCheck()
         {
            var embedCode =3D decodeURIComponent( =
"%3Cdiv%20id=3D%22flashcontent%22%3E%3C/div%3E%3Cscript%20type=3D%22text/=
javascript%22%3Evar%20so%20=3D%20new%20SWFObject(%22http://content.screen=
cast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-43a9-ba07-d=
718bdf3f17e/jingswfplayer.swf%22,%20%22soEmbeddedContent%22,%20%22640%22,=
%20%22404%22,%20%226%22,%20%22white%22);so.addParam(%22quality%22,%20%22h=
igh%22);so.addParam(%22allowScriptAccess%22,%20%22always%22);so.addVariab=
le(%22content%22,'http://content.screencast.com/users/radermac.kris/folde=
rs/Jing/media/5b3643f6-0714-43a9-ba07-d718bdf3f17e/F08.Question7.swf');so=
.addVariable(%22width%22,'640');so.addVariable(%22height%22,'404');so.add=
Variable(%22blurover%22,%22false%22);so.addVariable(%22thumb%22,%22http:/=
/content.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0=
714-43a9-ba07-d718bdf3f17e/FirstFrame.jpg%22);so.addParam(%22allowFullScr=
een%22,%20%22true%22);so.addParam(%22scale%22,%20%22showall%22);so.addPar=
am(%22wmode%22,%22transparent%22);so.addParam(%22base%22,%20%22http://con=
tent.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-=
43a9-ba07-d718bdf3f17e/%22);so.write(%22flashcontent%22);%3C/script%3E" =
);
            embedCode =3D embedCode.toUpperCase();
           =20
            if ( embedCode.search( =
/CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6/ ) > 0 )
            {
                if ( !detectWindowsMedia() )
                {
                    displayInfo('Viewing this media requires Windows =
Media Player.  You may download Windows Media Player from <a =
href=3D"http://www.microsoft.com/windows/windowsmedia/download" =
target=3D"_blank">http://www.microsoft.com/windows/windowsmedia/download/=
</a>.', true, 0);
                }
            }
            else if ( embedCode.search( =
/CLSID:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B/ ) > 0 )
            {
                if ( !detectQuickTime() )
                {
                    displayInfo('Viewing this media requires QuickTime.  =
You may download QuickTime from <a =
href=3D"http://www.apple.com/quicktime/" =
target=3D"_blank">http://www.apple.com/quicktime</a>.', true, 0);
                }
            }
            else if ( embedCode.search( =
/CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA/ ) > 0 )
            {
                if ( !detectReal() )
                {
                    displayInfo('Viewing this media requires Real =
Player.  You can download Real Player from <a =
href=3D"http://www.real.com/" =
target=3D"_blank">http://www.real.com</a>.', true, 0);
                }
            }
            // SWFObject will force viewers to upgrade their Flash =
player, which screencast.com does not
            // wish to force.  Instead, detect the version of the =
viewer's Flash player and display a
            // message which indicates they should upgrade their player.
            else if ( embedCode.search( /SWFOBJECT/ ) > 0 )
            {
               var flash =3D checkFlash( minFlashVersionMajor, =
minFlashVersionMinor, minFlashVersionRev );
     =20
               if ( flash =3D=3D needsUpgrade )
               {
                  displayWarning( 'You appear to be using an outdated =
version of the Adobe Flash Player. If you experience problems viewing =
this media, please try upgrading to the latest version which is =
available for free at <a href=3D"http://www.adobe.com/go/getflashplayer" =
target=3D"_blank">http://www.adobe.com/go/getflashplayer</a>.', true, 0 =
);
               }
               else if ( flash =3D=3D noFlash )
               {
                  displayError( 'Viewing this media requires Adobe Flash =
Player.  You can download Adobe Flash Player from <a =
href=3D"http://www.adobe.com/" =
target=3D"_blank">http://www.adobe.com</a>.', true, 0 );
               }
               =20
               // Always show the flash help section, which should have =
minimal text and a link to the blog for more detailed information
               document.getElementById('notifyFlashHelp').style.display =
=3D "block";
            }

         } // end function pluginCheck()
       =20
         function getMediaSetIdForFunction()
         {
            return =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaSetGuid=
").value;
         }

         function getMediaGroupIdForFunction()
         {
            return =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaGroupGu=
id").value;
         }
        =20
         function DoBindMetaData( mediaSetId, mediaGroupId, =
getMetaData_callback )
         {
            // AjaxPro method in Folder.aspx.cs
            ViewPage.BindMetadata( mediaSetId, mediaGroupId, =
getMetaData_callback );
         }
        =20
         function DoUpdateProjectMetaData( mediaSetId, mediaGroupId, ds, =
updateMetaData_callback, preserveLightbox )
         {
            // optional param preserveLightbox will eventually prevent =
the thickbox from being closed on completion
            if( typeof preserveLightbox =3D=3D 'undefined' )
            {
               preserveLightbox =3D false;
            }

            ViewPage.UpdateProjectMetadata( mediaSetId, mediaGroupId, =
ds, updateMetaData_callback, preserveLightbox );
         }
         /*
         * Event handler for the Edit action of a folder Item
         *
         * Params:
         * mediaGroupId - the id of the folder either that was selected =
or that the selected item is contained in
         * mediaSetId - the id of the selected item; blank if a folder =
was selected
        */
         function onClickEdit( containerId, mediaSetId )
         {
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").innerH=
TML =3D "";
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").style.=
display =3D "none";
            =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaSetGuid=
").value =3D mediaSetId;
            =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaGroupGu=
id").value =3D containerId;
            tb_show( null, =
"/controls/lightboxes/settingsmedia.aspx?height=3D580&width=3D550&modal=3D=
true&mediaSetId=3D" + mediaSetId + "&mediaGroupId=3D" + containerId, =
false );
            return false;
         }

         /*
          * Called after the thickbox for editing has been closed.
          */
         function doneEditing()
         {  =20
            var params =3D "";
        =20
            if ( window.location.search =3D=3D "?undoCustomization=3D1" =
)
            {
               params =3D "?undoCustomization=3D1";
            }

            window.location.href =3D window.location.pathname + params;
         }
        =20
         /*
          * Event handler for the Upload Attachments link.
          */
         function goToUpload()
         { =20
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").innerH=
TML =3D "";
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").style.=
display =3D "none";
           =20
            document.getElementById('attachmentsArea').style.display =3D =
"none";
            document.getElementById('attachmentsWaiting').style.display =
=3D "inline"; =20
           =20
            tb_show( null, =
"/controls/lightboxes/upload.aspx?userName=3Dradermac.kris&mediaGroupName=
=3DJing&viewpage=3Dtrue&mediaSetId=3D5b3643f6-0714-43a9-ba07-d718bdf3f17e=
&height=3D405&width=3D532&modal=3Dtrue", false, doneEditing );
            return false;
         }
        =20
         /*
          * Event handler for the Upload Thumbnail link.
          */
         function goToThumbnail( mediaSetId )
         { =20
            tb_remove();
            =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaSetGuid=
").value =3D "5b3643f6-0714-43a9-ba07-d718bdf3f17e";
            =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaGroupGu=
id").value =3D "5d15528a-2ab1-40fe-a690-5d39c2c74f01";
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").innerH=
TML =3D "";
            =
document.getElementById("ctl00_mainContentPlaceHolder_ContentDiv").style.=
display =3D "none";
            setTimeout('tb_show( null, =
"/controls/lightboxes/upload.aspx?userName=3Dradermac.kris&mediaGroupName=
=3DJing&viewpage=3Dtrue&mediaSetId=3D5b3643f6-0714-43a9-ba07-d718bdf3f17e=
&thumbnail=3Dtrue&height=3D400&width=3D532&modal=3Dtrue", false, =
doneThumbnailing )', 700);
            return false;
         }   =20
     =20
         function doneThumbnailing()
         {
            setTimeout( 'onClickEdit( =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaGroupGu=
id").value, =
document.getElementById("ctl00_mainContentPlaceHolder_action_mediaSetGuid=
").value )', 700);
            return false;
         }
        =20
         function DeleteClick( mediaId )
         {
            if( confirm("Click OK to delete this attachment?") )
            {
               document.getElementById('attachmentsArea').style.display =
=3D "none";
               =
document.getElementById('attachmentsWaiting').style.display =3D =
"inline"; =20
               PageMethods.DeleteMedia( mediaId, OnDeleteSucceeded, =
OnDeleteFailed );
            }
            else
            {
               return false;
            }
         }
        =20
         function DefaultClick( mediaId, mediaSetId )
         {
            if( confirm("Click OK to replace the currently displayed =
content with this attachment. The currently displayed content will =
become an attachment. The URL will not change.") )
            {            =20
               PageMethods.SetDefaultMedia( mediaId, mediaSetId, =
OnDefaultSucceeded, OnDefaultFailed );
            }
            else
            {
               return false;
            }
         }
        =20
         function OnDeleteSucceeded()
         {
            setTimeout( "ShowAttachments()", 2000 );
            __doPostBack( =
"ctl00_mainContentPlaceHolder_attachmentUpdateButton", "" );
         }
        =20
         function ShowAttachments()
         {
            document.getElementById('attachmentsArea').style.display =3D =
'inline';
            document.getElementById('attachmentsWaiting').style.display =
=3D 'none';
            document.location.href =3D "#attachmentTop";
           =20
         }
        =20
         function OnDeleteFailed( error )
         {
            displayError( error.get_message(), false );
            return false;
         }
        =20
         function OnDefaultSucceeded()
         {
            var params =3D window.location.search;
            if ( params.match("undoCustomization=3D1") =3D=3D =
"undoCustomization=3D1" )
            {
               params =3D "&undoCustomization=3D1";
            }
            else
            {
               params =3D "";
            }
               =20
            window.location.href =3D window.location.pathname + params;
            =
window.location.replace("/users/radermac.kris/folders/Jing/media/5b3643f6=
-0714-43a9-ba07-d718bdf3f17e?openAttachmentTab=3Dtrue" + params);
         }
        =20
         function OnDefaultFailed( error )
         {
            displayError( error.get_message(), false );
            return false;
         }
        =20
        =20
   </SCRIPT>
<LINK media=3Dscreen =
href=3D"http://www.screencast.com/inc/styles/lightbox.css"=20
type=3Dtext/css rel=3Dstylesheet>
<STYLE type=3Dtext/css>HTML {
	BACKGROUND-IMAGE: none! important; BACKGROUND-COLOR: #6a6a6a
}
BODY {
	BACKGROUND-IMAGE: none! important; BACKGROUND-COLOR: #6a6a6a
}
#ctl00_mainContentPlaceHolder_ContentDiv LI {
	LIST-STYLE-TYPE: none
}
</STYLE>
<!--[if IE 6]>
      <link href=3D"/inc/styles/ie6.css" rel=3D"stylesheet" =
type=3D"text/css" />
      <![endif]-->
<META content=3D"MSHTML 6.00.6000.16788" name=3DGENERATOR></HEAD>
<BODY>
<SCRIPT type=3Dtext/javascript>
         EnableKeepAlive();
      </SCRIPT>

<DIV id=3Dcontainer>
<DIV id=3Dcontainer=20
style=3D"MIN-HEIGHT: 400px; BACKGROUND-COLOR: transparent! =
important"><!-- Header has it's own form, so it must not be within a =
form on this page. -->
<FORM id=3DaspnetForm name=3DaspnetForm=20
action=3Dview.aspx?mediaSetId=3D5b3643f6-0714-43a9-ba07-d718bdf3f17e&amp;=
mediaGroupName=3DJing&amp;findUserName=3Dradermac.kris=20
method=3Dpost>
<DIV><INPUT id=3D__EVENTTARGET type=3Dhidden name=3D__EVENTTARGET> =
<INPUT=20
id=3D__EVENTARGUMENT type=3Dhidden name=3D__EVENTARGUMENT> <INPUT =
id=3D__VIEWSTATE=20
type=3Dhidden=20
value=3D/wEPDwULLTExMzU0ODM1NDIPZBYCZg9kFgYCAQ8PFgIeB1Zpc2libGVoZBYCAgEPZ=
BYEZg9kFgJmDxYCHwBoZAIDD2QWBGYPFgIeC18hSXRlbUNvdW50ZmQCAQ8WAh8AaBYCAgEPDx=
YCHgtOYXZpZ2F0ZVVybAU+aHR0cDovL3d3dy5zY3JlZW5jYXN0LmNvbS9hbnN3ZXJzL0RlZmF=
1bHQuYXNweD9maWxlPS92aWV3LmFzcHhkZAICD2QWAmYPZBYIAgMPDxYCHwBoZBYEZg8WAh4E=
VGV4dAXRATxkaXYgY2xhc3M9InRhYkl0ZW0iPjxzcGFuIGNsYXNzPSJ0YWJUZXh0Ij48YSBoc=
mVmPSIvdXNlcnMvcmFkZXJtYWMua3JpcyI+cmFkZXJtYWMua3JpcydzIExpYnJhcnk8L2E+PC=
9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRhYkl0ZW0iPjxzcGFuIGNsYXNzPSJ0YWJUZXh0Ij4=
8c3BhbiBjbGFzcz0idGFiU2VwZXJhdG9yIj4+PC9zcGFuPkppbmc8L3NwYW4+PC9kaXY+ZAIB=
Dw8WAh8AaGRkAgUPDxYCHwBnZBYCZg8PFgIeCEltYWdlVXJsBRgvaW1nL3ZpZXcvamluZ2hlY=
WRlci5naWZkZAIJD2QWBmYPZBYCAgEPFgIfAwXmBzxkaXYgaWQ9ImZsYXNoY29udGVudCI+PC=
9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBzbyA9IG5ldyBTV0ZPYmp=
lY3QoImh0dHA6Ly9jb250ZW50LnNjcmVlbmNhc3QuY29tL3VzZXJzL3JhZGVybWFjLmtyaXMv=
Zm9sZGVycy9KaW5nL21lZGlhLzViMzY0M2Y2LTA3MTQtNDNhOS1iYTA3LWQ3MThiZGYzZjE3Z=
S9qaW5nc3dmcGxheWVyLnN3ZiIsICJzb0VtYmVkZGVkQ29udGVudCIsICI2NDAiLCAiNDA0Ii=
wgIjYiLCAid2hpdGUiKTtzby5hZGRQYXJhbSgicXVhbGl0eSIsICJoaWdoIik7c28uYWRkUGF=
yYW0oImFsbG93U2NyaXB0QWNjZXNzIiwgImFsd2F5cyIpO3NvLmFkZFZhcmlhYmxlKCJjb250=
ZW50IiwnaHR0cDovL2NvbnRlbnQuc2NyZWVuY2FzdC5jb20vdXNlcnMvcmFkZXJtYWMua3Jpc=
y9mb2xkZXJzL0ppbmcvbWVkaWEvNWIzNjQzZjYtMDcxNC00M2E5LWJhMDctZDcxOGJkZjNmMT=
dlL0YwOC5RdWVzdGlvbjcuc3dmJyk7c28uYWRkVmFyaWFibGUoIndpZHRoIiwnNjQwJyk7c28=
uYWRkVmFyaWFibGUoImhlaWdodCIsJzQwNCcpO3NvLmFkZFZhcmlhYmxlKCJibHVyb3ZlciIs=
ImZhbHNlIik7c28uYWRkVmFyaWFibGUoInRodW1iIiwiaHR0cDovL2NvbnRlbnQuc2NyZWVuY=
2FzdC5jb20vdXNlcnMvcmFkZXJtYWMua3Jpcy9mb2xkZXJzL0ppbmcvbWVkaWEvNWIzNjQzZj=
YtMDcxNC00M2E5LWJhMDctZDcxOGJkZjNmMTdlL0ZpcnN0RnJhbWUuanBnIik7c28uYWRkUGF=
yYW0oImFsbG93RnVsbFNjcmVlbiIsICJ0cnVlIik7c28uYWRkUGFyYW0oInNjYWxlIiwgInNo=
b3dhbGwiKTtzby5hZGRQYXJhbSgid21vZGUiLCJ0cmFuc3BhcmVudCIpO3NvLmFkZFBhcmFtK=
CJiYXNlIiwgImh0dHA6Ly9jb250ZW50LnNjcmVlbmNhc3QuY29tL3VzZXJzL3JhZGVybWFjLm=
tyaXMvZm9sZGVycy9KaW5nL21lZGlhLzViMzY0M2Y2LTA3MTQtNDNhOS1iYTA3LWQ3MThiZGY=
zZjE3ZS8iKTtzby53cml0ZSgiZmxhc2hjb250ZW50Iik7PC9zY3JpcHQ+ZAICDxYCHwBoZAID=
Dw8WAh8AaGQWCGYPZBYCAgEPZBYCZg9kFgICAQ8PFgIfAGhkFgYCAg8PFgQeRU5vQm90X1Jlc=
3BvbnNlVGltZUtleV9jdGwwMCRtYWluQ29udGVudFBsYWNlSG9sZGVyJGNvbW1lbnRMaXN0MS=
Rub0JvdAZ2zO/s2k7LSB5DTm9Cb3RfU2Vzc2lvbktleUtleV9jdGwwMCRtYWluQ29udGVudFB=
sYWNlSG9sZGVyJGNvbW1lbnRMaXN0MSRub0JvdAVTTm9Cb3RfU2Vzc2lvbktleV9jdGwwMCRt=
YWluQ29udGVudFBsYWNlSG9sZGVyJGNvbW1lbnRMaXN0MSRub0JvdF82MzM2ODY4NzQ3NDA2N=
jIxMzRkFgICAQ8WAh4PQ2hhbGxlbmdlU2NyaXB0BQN+NjZkAggPFgIfAGhkAhYPFgIfAGhkAg=
EPFgIfAGgWBAIBDw8WAh8AaGRkAgMPFgIfAwVLPHNwYW4gc3R5bGU9IndpZHRoOiAzMDBweDs=
gb3ZlcmZsb3c6IGhpZGRlbjsiPlZpZGVvIChGbGFzaCk8L3NwYW4+IC0gMi4yOU1CZAICDw8W=
Ah8AaGQWAgIBD2QWAmYPDxYCHwBoZGQCAw8PFgIfAGhkZAILDw8WAh8AZ2RkAgMPZBYCZg8PF=
gIfAGhkZGQvY9hEuJJ1rb+XjN+tH7SQ66bkaw=3D=3D=20
name=3D__VIEWSTATE> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['aspnetForm'];
if (!theForm) {
    theForm =3D document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT=20
src=3D"http://www.screencast.com/WebResource.axd?d=3DtaISOg4qEkv06Te5ZJpj=
QQ2&amp;t=3D633607744732349038"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.screencast.com/ajaxpro/prototype.ashx"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.screencast.com/ajaxpro/core.ashx"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.screencast.com/ajaxpro/converter.ashx"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.screencast.com/ajaxpro/ViewPage,Website.ashx"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.screencast.com/ScriptResource.axd?d=3DlytlZa58igFjHJtKh=
8IIxPWJHrBsLjgyzb-O6ee1HJlcVI1893Hoa4ktnKpegNMJjbTFuca1Roxogg6Ie_iWHRN3G2=
feGFEw4Sv_cX1N3xI1&amp;t=3D653e2dd0"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.screencast.com/ScriptResource.axd?d=3DlytlZa58igFjHJtKh=
8IIxPWJHrBsLjgyzb-O6ee1HJlcVI1893Hoa4ktnKpegNMJvc_v3R6vnVsny2s0GD9_oQBw1D=
AvlLsv8PSjfjX0hR81&amp;t=3D653e2dd0"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var PageMethods =3D function() {
PageMethods.initializeBase(this);
this._timeout =3D 0;
this._userContext =3D null;
this._succeeded =3D null;
this._failed =3D null;
}
PageMethods.prototype =3D {
_get_path:function() {
 var p =3D this.get_path();
 if (p) return p;
 else return PageMethods._staticInstance.get_path();},
GetErrorCodeFromSession:function(error,succeededCallback, =
failedCallback, userContext) {
return this._invoke(this._get_path(), =
'GetErrorCodeFromSession',false,{error:error},succeededCallback,failedCal=
lback,userContext); },
DeleteMedia:function(mediaId,succeededCallback, failedCallback, =
userContext) {
return this._invoke(this._get_path(), =
'DeleteMedia',false,{mediaId:mediaId},succeededCallback,failedCallback,us=
erContext); },
SetDefaultMedia:function(mediaId,mediaSetId,succeededCallback, =
failedCallback, userContext) {
return this._invoke(this._get_path(), =
'SetDefaultMedia',false,{mediaId:mediaId,mediaSetId:mediaSetId},succeeded=
Callback,failedCallback,userContext); },
SendInvitation:function(mediaSetGuid,recipientsCsv,replyTo,invitationMsg,=
succeededCallback, failedCallback, userContext) {
return this._invoke(this._get_path(), =
'SendInvitation',false,{mediaSetGuid:mediaSetGuid,recipientsCsv:recipient=
sCsv,replyTo:replyTo,invitationMsg:invitationMsg},succeededCallback,faile=
dCallback,userContext); }}
PageMethods.registerClass('PageMethods',Sys.Net.WebServiceProxy);
PageMethods._staticInstance =3D new PageMethods();
PageMethods.set_path =3D function(value) { =
PageMethods._staticInstance.set_path(value); }
PageMethods.get_path =3D function() { return =
PageMethods._staticInstance.get_path(); }
PageMethods.set_timeout =3D function(value) { =
PageMethods._staticInstance.set_timeout(value); }
PageMethods.get_timeout =3D function() { return =
PageMethods._staticInstance.get_timeout(); }
PageMethods.set_defaultUserContext =3D function(value) { =
PageMethods._staticInstance.set_defaultUserContext(value); }
PageMethods.get_defaultUserContext =3D function() { return =
PageMethods._staticInstance.get_defaultUserContext(); }
PageMethods.set_defaultSucceededCallback =3D function(value) { =
PageMethods._staticInstance.set_defaultSucceededCallback(value); }
PageMethods.get_defaultSucceededCallback =3D function() { return =
PageMethods._staticInstance.get_defaultSucceededCallback(); }
PageMethods.set_defaultFailedCallback =3D function(value) { =
PageMethods._staticInstance.set_defaultFailedCallback(value); }
PageMethods.get_defaultFailedCallback =3D function() { return =
PageMethods._staticInstance.get_defaultFailedCallback(); }
PageMethods.set_path("/view.aspx");
PageMethods.GetErrorCodeFromSession=3D =
function(error,onSuccess,onFailed,userContext) =
{PageMethods._staticInstance.GetErrorCodeFromSession(error,onSuccess,onFa=
iled,userContext); }
PageMethods.DeleteMedia=3D =
function(mediaId,onSuccess,onFailed,userContext) =
{PageMethods._staticInstance.DeleteMedia(mediaId,onSuccess,onFailed,userC=
ontext); }
PageMethods.SetDefaultMedia=3D =
function(mediaId,mediaSetId,onSuccess,onFailed,userContext) =
{PageMethods._staticInstance.SetDefaultMedia(mediaId,mediaSetId,onSuccess=
,onFailed,userContext); }
PageMethods.SendInvitation=3D =
function(mediaSetGuid,recipientsCsv,replyTo,invitationMsg,onSuccess,onFai=
led,userContext) =
{PageMethods._staticInstance.SendInvitation(mediaSetGuid,recipientsCsv,re=
plyTo,invitationMsg,onSuccess,onFailed,userContext); }
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$mainContentPlaceHolder=
$folderScriptManager', document.getElementById('aspnetForm'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], =
[], 90);
//]]>
</SCRIPT>

<DIV class=3DresetCSCSS></DIV><BR>
<DIV id=3Dctl00_mainContentPlaceHolder_HeaderNoNav><A=20
href=3D"http://www.jingproject.com/"><IMG=20
id=3Dctl00_mainContentPlaceHolder_headerImage=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
src=3D"http://www.screencast.com/img/view/jingheader.gif"></A>=20
<TABLE class=3Dlinks>
  <TBODY>
  <TR vAlign=3Dcenter></TR></TBODY></TABLE></DIV>
<SCRIPT type=3Dtext/javascript>
if ( document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfo" ) &&
     document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfoTimeout" ) )
{
   setTimeout( "stopStatusTimer()", document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfoTimeout" ).getAttribute( =
"value" ) );
}

function stopStatusTimer()
{  =20
   if ( document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfo" ) )
   {
      document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfo" ).style.display =3D =
"none";
   }
}

function displayMessage( controlId, message, append )
{
   if ( document.getElementById( controlId ) )
   {
      document.getElementById( controlId ).style.display =3D "block";
     =20
      if ( append && append =3D=3D true )
      {
         document.getElementById( controlId ).innerHTML +=3D "<p>" + =
message + "</p>";
      }
      else
      {
         document.getElementById( controlId ).innerHTML =3D "<p>" + =
message + "</p>";
      }
   }
}

function displayError( errorMsg, append )
{
   displayMessage( "ctl00_mainContentPlaceHolder_ViewInfoBar_scError", =
errorMsg, append );
}

function displayWarning( warningMsg, append )
{
   displayMessage( "ctl00_mainContentPlaceHolder_ViewInfoBar_scWarning", =
warningMsg, append );
}

function displayInfo( statusMsg, append, timeout )
{
   displayMessage( "ctl00_mainContentPlaceHolder_ViewInfoBar_scInfo", =
statusMsg, append );
  =20
   if ( document.getElementById( =
"ctl00_mainContentPlaceHolder_ViewInfoBar_scInfo" ) && timeout )
   {
      setTimeout( "stopStatusTimer()", timeout );
   }
}
</SCRIPT>

<DIV id=3DinfoBar>
<DIV class=3DerrorMessage=20
id=3Dctl00_mainContentPlaceHolder_ViewInfoBar_scError></DIV>
<DIV class=3DwarningMessage=20
id=3Dctl00_mainContentPlaceHolder_ViewInfoBar_scWarning></DIV>
<DIV class=3DstatusMessage=20
id=3Dctl00_mainContentPlaceHolder_ViewInfoBar_scInfo></DIV><NOSCRIPT>
<DIV class=3DerrorMessage id=3DnojavascriptError style=3D"DISPLAY: =
block">You must=20
enable JavaScript to use many of the features of Screencast.com.=20
</DIV></NOSCRIPT><INPUT=20
id=3Dctl00_mainContentPlaceHolder_ViewInfoBar_scInfoTimeout =
type=3Dhidden=20
name=3Dctl00$mainContentPlaceHolder$ViewInfoBar$scInfoTimeout> </DIV>
<DIV id=3Dctl00_mainContentPlaceHolder_main=20
style=3D"BACKGROUND-COLOR: transparent! important">
<DIV id=3Dctl00_mainContentPlaceHolder_ContentDiv=20
style=3D"WIDTH: 100%; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; TEXT-ALIGN: center; BORDER-BOTTOM-STYLE: none">
<DIV id=3Dflashcontent></DIV>
<SCRIPT type=3Dtext/javascript>var so =3D new =
SWFObject("http://content.screencast.com/users/radermac.kris/folders/Jing=
/media/5b3643f6-0714-43a9-ba07-d718bdf3f17e/jingswfplayer.swf", =
"soEmbeddedContent", "640", "404", "6", "white");so.addParam("quality", =
"high");so.addParam("allowScriptAccess", =
"always");so.addVariable("content",'http://content.screencast.com/users/r=
adermac.kris/folders/Jing/media/5b3643f6-0714-43a9-ba07-d718bdf3f17e/F08.=
Question7.swf');so.addVariable("width",'640');so.addVariable("height",'40=
4');so.addVariable("blurover","false");so.addVariable("thumb","http://con=
tent.screencast.com/users/radermac.kris/folders/Jing/media/5b3643f6-0714-=
43a9-ba07-d718bdf3f17e/FirstFrame.jpg");so.addParam("allowFullScreen", =
"true");so.addParam("scale", =
"showall");so.addParam("wmode","transparent");so.addParam("base", =
"http://content.screencast.com/users/radermac.kris/folders/Jing/media/5b3=
643f6-0714-43a9-ba07-d718bdf3f17e/");so.write("flashcontent");</SCRIPT>
</DIV>
<DIV style=3D"CLEAR: both; HEIGHT: 14px">
<DIV id=3DnotifyFlashHelp=20
style=3D"DISPLAY: none; COLOR: #993333; TEXT-ALIGN: center">Please <A=20
style=3D"FONT-WEIGHT: bold; COLOR: #993333; TEXT-DECORATION: underline"=20
href=3D"http://www.screencast.com/answers/tutorial.aspx?id=3D397">click =
here</A> if=20
you are having trouble viewing this content. </DIV></DIV>
<DIV style=3D"CLEAR: both; HEIGHT: 14px">
<DIV id=3DnotifyTextCopied=20
style=3D"DISPLAY: none; COLOR: #993333; TEXT-ALIGN: center">Copied to =
clipboard=20
</DIV></DIV><BR><BR><BR></DIV>
<DIV id=3Dctl00_mainContentPlaceHolder_poweredByFooter>
<DIV class=3DfooterDiv=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 10px; COLOR: black; =
PADDING-TOP: 10px; BACKGROUND-COLOR: #ccc; TEXT-ALIGN: center; =
BORDER-RIGHT-WIDTH: 0px"><SPAN=20
style=3D"MARGIN: auto">Powered by <A class=3Dlink=20
onmouseover=3D"this.style.color=3D'#f47b20'"=20
style=3D"COLOR: black; TEXT-DECORATION: none"=20
onmouseout=3D"this.style.color=3D'black'"=20
href=3D"http://www.screencast.com/">Screencast.com</A> =
</SPAN></DIV></DIV><!-- Hidden controls used for folder / item actions. =
--><INPUT=20
id=3Dctl00_mainContentPlaceHolder_action_mediaSetGuid type=3Dhidden=20
name=3Dctl00$mainContentPlaceHolder$action_mediaSetGuid> <INPUT=20
id=3Dctl00_mainContentPlaceHolder_action_mediaGroupGuid type=3Dhidden=20
name=3Dctl00$mainContentPlaceHolder$action_mediaGroupGuid>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.Application.initialize();
//]]>
</SCRIPT>
 </FORM></DIV>
<SCRIPT language=3Djavascript type=3Dtext/javascript>
     =20
      pluginCheck(); CSOnLoad(); jQuery.noConflict(); viewSetup();
      if ( typeof signInOnload =3D=3D "function" )=20
      {=20
         signInOnload();=20
      }

   </SCRIPT>
</DIV>
<SCRIPT type=3Dtext/javascript>var gaJsHost =3D (("https:" =3D=3D =
document.location.protocol) ? "https://ssl." : =
"http://www.");document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));</SCRIPT>

<SCRIPT type=3Dtext/javascript>var pageTracker =3D =
_gat._getTracker("UA-2104241-8");pageTracker._initData();pageTracker._tra=
ckPageview();</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.screencast.com/img/view/jingheader.gif

R0lGODlhXAFUAPf/AP///4+Pj19fX2FhYZmZmbW1tdra2ltbW2NjY15eXlpaWmJiYmRkZIKCgnNz
c2BgYH19faKiolxcXPffn9nBgeXOjYaGhuPj41lZWfb29uHJicfHx+rSkn9/f+7Xll1dXeXl5aur
q+zs7PLbmv/EI93FhdnZ2ff394GBgX54Z76+vuHh4erq6oiIiMm5i1ZWVt3d3e7u7pWVlXZ2dpmO
cnp2aXNuYezXm4R+bcu3f9DQ0MrKyn5+foB6aYmJiaOYfoJ9cYCAgIN9bIaBdMGteLephXZxZPLy
8oqCbbq6urKhdH95aH13ZaqbcqCWfeOzMLWleoF7aoeHh2hoaNG6f8S1jIuLi+HNlGZmZtW+g4SE
hJKKdGpqapqamo2NjdC/jWVlZc7OzoyGdO3t7bKyspySc3h4eJCQkJqOa/TdooiCcZiYmKmdgH94
Z9rHlM63dsSzhLOmgIV/btqtNbWXRm1tbdHR0YqKiv/np7upesTExId/am1qYnlyYWppZcHBwdXV
1auSS66urqmpqeHKj+jo6N7Kkp6enm9vb/39/YB7b6WlpZmRe/r6+qCTcZCKeY6OjrS0tGhnY97e
3tTBjXBuaufSl4qAZoJ8a3t7e7irhNjY2KyfemRiXpeMbo6GcMm0fX55bHx8fL6ug/rjomVkX313
ZomDcv3lpcaxdIODg3hzZ76tgJ2SdHVwZJOTk46Id6mab2toX3x4a3p3b5yQbZWNd395Z7e3t3h0
Z4uEc824gcWxeZOIaryuh29sY93Hi5CJc9CoOVhYWMbGxsize2FfW9PT0+Tk5JWKa6KVc5+UdtnC
hmJhXH53ZnNxbXRybsWyf5ePetO/h/Dano+BWNzc3G5taaKMT6+hepqRd8u7kYR/c6aad3t0Y311
YYiDdouFdNS9fL+/v6GWeHNvYn16ca2ihMGwgXJyctTCk6SXdZOMdoJ6ZGxpYNG5eZWMcruthn54
Zr6cQtC7g3JuZnNwZr29vZSKcHx1ZIqDcnFwa3dza4eBb8OwfP///yH5BAEAAP8ALAAAAABcAVQA
AAj/AP8JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX
MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOK
HUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27eKFaMGBB4N68gMUGABBA4OCRFi5cgBC48c3Bhf8dFrlB
h44CjjPPhOzXwMgCBi4Q0Ez6JeeTFvqWXr3yNOvXUE87iCzZgUAIITYY2BCCMUICoA0UoG3BN+zj
Jk9P/kf4n4oMGyIEiLABAOaCAURcGB6ggOK+wpGL/yepHMBAwpVtE7SQIQTBCADcFwyRYe/18fg9
lj+vG2EIEQNBkEEE/hkQXn4IbrSfQABkYFxBDjT3T38JGZDBfQlmWNGCzOmg0AXyZTBaQgRYp+GJ
FHFoYoWYLZfQihjRsk0aeKRRBTQy4QFORdzgsREej/zTo0bwAWDkkS1ABECSNS0pEC4AJFGTirQd
FF4IFzC0XUb8pOFCDQeooc4NOEbEDSocJYBKkBMx4EcRGqnJiJtwYsRAAgdgAEkiByQQ0QMF2KZF
IjIlkMgZ/xhqhU1UKhQeaAwdaNECX3zxwAACHHAANedEtEA/pGyEgAKkwFLRAhohgAEpjICBqkYM
DP+ggBeNIMCAp2BMsUALjcQ0aiMBMKBAI14wKuFyEiL0qGcLSVpRKROwM9AAB2whjUBxTDDBFWwC
MQEb2rogUA3aTuCEtwOh6y0bN/zwjxhXTNDuQOzKS8MEphKErkD7hnPDBG6Yw+8E/6yrrRtDDOTL
wU4QfJCqE0iDhbrfHpywQAsD3PBCCUBywkAnkDEGGRtsMJAMYxTEwAmqZHLCywQONEbM/9xj8j9k
vDyzQCeo9k/P/zRwwiA7WzHGCQYYN8jLKvwz6gleCPDyCRiaFAHNBjXK4j8RALjQhRctgMkI+xC0
AAIC/UDJLxJsMcI/CwgxAiWlSOJCPAxgkMLbA8j/8Tbcfsc9giGnXBOKJZ8c0I8lpmpjiRASrGLI
CGKY7bdAC1z+wAiffKBJFYCPILgLpUigyRX/MFCEITV8IPffBqk6gi2Ziy436aajrjrrro8AO0IJ
WHGEQAccUcgZU5zBgkAP7CAlQQkc4QMGPBxx60ACCBKGQAIUIsM/gkxihgSisHBI9JAIFL0XC6hy
xCQ+IPLAEV58kIQeAp0xCSJTADLIqEewwgFecAQmpcRACdGasjBjAQCoByEQgBFFHoAEDyDkAcv4
xAA+cAAPiEEAbfCAHB5wABx4AAsSCGGiomDBfwiAhQKQhwgZ8IBRxCFRByCHCwTwBXJgahh78CBB
/17YQiL+AxMeeIAEakAJF8IwhLMgYS4smAAP4GABCXhBK1oYOwx4gB1EBKEHoniAKSbKiljUIheB
Z4UYOO0FMVgDAvAEgu/9IwYoIMioYuADCXTAjQT5gBli4AAENAAZd0KGBRaQKQLYQQExWNQe7yAA
HsSgLwtoQAyUmIlj/OMBdliDACRgARBMUgBwvMNKdMCsgyjQStcRgXwQUgAJTkQARuDAMw6ygAcE
Iw5wIAQHdCGAFHCAewfgABAE0INjMvOYLmxmMaH5AUKoQSAfyAUhkqkIbBpjmENsJvfEiQFCjCKK
4+SAAG4BzQQ0EwG5HMgBXAHNLnJgC89cZzvfGf9P4tGTYz5YHgKGwYIgOO0AZFDBAmSwiYKMigU+
EEAQlkcQEm6iCw9IQiQQYAaK/kOQLFAACyQp0ojygKIDwMAKVACBBwhEAiwwwxQEAAYW1EGkVnjo
olTinYTARz3IqpJBDlSADDwQQhkQQdUk8gAMVGALBeFEHBCQjWmUYQ82qIAailkBzCmgAooQwBK6
KtauunCsXE2dUyvA1rZ+9RQCGUAzKgBX7I2Ve3c9AB/QUQFgQLWsaT1rBQZgBLO6sLAFUQMwnObU
YAA2BWYtK2ENi0vDAq8FIHCaAkDgA2yiAART+MMgHLrZFgigA5klCAMOcIgdSAAEUhhAHVL7yRn/
gGCznR0VCEzLg9Sutg5/AIE1XrGA3oLguMcVBW5121mVlOioBFGB1yRjHgYJtSAHcoAIbgahC6jA
WRNRFSvQQRBJaAAeCdBAFEhoDA30QwCm0IA+4JYCDbiwvi50hX1duAcNFNO+CHiBBtqgKQx0ogcK
oAcN4trfa2JPv9zr7z8ksQcFHAAfGqjEf//LvfrKihlQdSEN9ou5VWhgHwhohns3jN/7auDDIRbA
iDlmgRVodgVMeoACdNCFFcyAtCuQQiVtXJAE1GEFBGgotUygShd2gRgKWIFBF+CAIA+ZIC2wsAxW
MNMV1CFPClhklFswKhyzBGwGcQCaqXue6xJE/1IOUEyVCLDdf4B3IhKQRRag0M0o+CMPsspCGcDw
izyUQA4C8EYJolEJSeRhHS4sRwk+qYAsLOMffMhBCQTAhEnnzRHRqMEA+JAHKByABlm4phE03Y+K
VvrSmZ50PUqAiQN0WsOd5vSkXdhpBBxAGbvopjNKsOu4YiALnIhCE7LA6013mnu9/nWw/zHsXXeD
FgdJgAVgoFkYSEEgozoEDPBHWhhYQAAO4HZBUpoEGCyCeF0Ig0E7AIgs60EQAvmDuQUAAXX/Ix0w
aMAB+s0FDGiUC1iIAP4U4O1ReVsgizADSko0y9so5oFBdRSGHFAAEYjAQBm4QMzuLJEFHMAdSv+g
AAWK4QkGrJYJoKAAFS5BBAoIoA8U8ITKlWDsmiPhAKaIORVqYfNyUEB9B3AEFVTehDspQOkrbwcF
QqFaoAud6B/dw9KpgIRIF/3oXsehI1RejF6AXSCrzcfSi1EDrwvA6NyDO57GvnKzw40CrTZIAjJh
As2aoAMDkQAWTNCF2CnABDxI6R9MUKW8+cAEvsnUGuxgAjsgSgIO2IEJTPAKyKO776n7gBQob4c7
gOEDDCDD5pOAiH8cvgOj+jvcTPDtiXt8AwUADQA2cNSMb80gEAhAAI5K8pJz8AASEMD1BiCBA3xA
AgpA/c3F0fwEXO+jqP8H85GvAAkgAItD1FT/n66HJ+dr6lUE2T70JXArJSLfpXBLwPf9hDn6IyAZ
stDUCy7Bi4KQEAMHMAD1N38DAX5Og3/6x3+fhDa8RH+Jgn4uhAiA8GN6twBTcHrZVxAScAbkxj3N
dwACgDkfeH664oCf1HwS8ABTMAVzpCkOmAAWCAYwyDwMqBIWABzDAV0jASKiYiuxc30u1AfvwAA1
OBBA6IMJQYRAmDpFiBBIaIRPyBADoARN4AcPYANE4AkGQYQQMYVVeIVZmBCi0ABB0AEo0AAoYIYN
sIYogAKCEAlrGIdsqIYN0AEdEARySIYdMA6LIIdBwAMQcIdzCAE8YIdnmIZnuIZlGIh4uIYd/wCI
HTCHh0iHTwEpCREhPnMSAmADb4AUAlAKsfAGb5AKaJARnxiKo1iKCWEFBNCKrviKayADYUAMh/CK
tniLsLgIYZAEa4CLvviLwBiMBNAFhecUg6GDAxEBGbASBngULeiCqVJ+faIQDLAAA3CN2JiNmYIB
KZiN3viN2PgAeKIACXAp4HiO6JiO6tiETJEBTXMQAlJxdIEAUZgR9LiEbYKPEOFyq1EiKgBdAQAd
KDKQLhEAF5ABwlEAGyACa0aQDqkSEICDIeBmD1mRFnmRGJmRXmEBwid8OugAmciRwwdBxhEAjPEg
Gpkh2PAEJNCSJDAHzmEhF8AXWdNKIXAkF/+AjAYSAZ5hIgCANSmJICQQCCzZkjApEAZgkgUQArbR
HQRgkCHAlKHhADcZAUu5AcCxARagkAbwkwCwG7wXlBrSkkRplANhAHQWAqBBAKLhXT+pApXxlQXA
kQDgcXWJkBYiAgCgAg1yAT8plhnSkk9QDSx5lHYGGsL3cRbABVvpGQ6QNAtpJHwJHAAAAQZiILXE
BdYRIUsFmMhBAk8gDEP5BIYpHNtRAKwEAVzgADyJlMLBBRHUld1hHpcpHACgmZhhS56JHKHpkoEw
D2epjBypVBsAAZbBLAagA1/pl9Uxm3Z2mbUEH7nZmbv5Gt9AB9iJnfaQjBGZnBbgAN9VABBZEDMR
AJ47CQHi2R1cczURsJVWWRjDUZ3yOZ/0WZ/2eZ/4mZ/6uZ/82Z/++Z8AGqACOqAEWqAGeqAImqAK
uqAM2qAO+qAQGqESOqEUWqEWeqEYmqEauqE9ERAAOw==

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/styles/base.css

HTML {
	COLOR: #000
}
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DIV {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
OL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H5 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H6 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
PRE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
CODE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
LEGEND {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
INPUT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TEXTAREA {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BLOCKQUOTE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TABLE {
	BORDER-COLLAPSE: collapse; border-spacing: 0
}
FIELDSET {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
ADDRESS {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CAPTION {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CITE {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
CODE {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
DFN {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
EM {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
STRONG {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
TH {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
VAR {
	FONT-WEIGHT: normal; FONT-STYLE: normal
}
LI {
	LIST-STYLE-TYPE: none
}
CAPTION {
	TEXT-ALIGN: left
}
TH {
	TEXT-ALIGN: left
}
H1 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
H2 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
H3 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
H4 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
H5 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
H6 {
	FONT-WEIGHT: normal; FONT-SIZE: 100%
}
Q:unknown {
	content: ''
}
Q:unknown {
	content: ''
}
ABBR {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px; FONT-VARIANT: normal
}
ACRONYM {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px; FONT-VARIANT: normal
}
SUP {
	VERTICAL-ALIGN: text-top
}
SUB {
	VERTICAL-ALIGN: text-bottom
}
INPUT {
	FONT-FAMILY: inherit
}
TEXTAREA {
	FONT-FAMILY: inherit
}
SELECT {
	FONT-FAMILY: inherit
}
INPUT {
	FONT-SIZE: 100%
}
TEXTAREA {
	FONT-SIZE: 100%
}
SELECT {
	FONT-SIZE: 100%
}
LEGEND {
	COLOR: #000
}
BODY {
	FONT: small/1.231 arial,helvetica,clean,sans-serif
}
TABLE {
=09
}
PRE {
	FONT-SIZE: 108%; LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
CODE {
	FONT-SIZE: 108%; LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
KBD {
	FONT-SIZE: 108%; LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
SAMP {
	FONT-SIZE: 108%; LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
TT {
	FONT-SIZE: 108%; LINE-HEIGHT: 100%; FONT-FAMILY: monospace
}
H1 {
	FONT-SIZE: 138.5%
}
H2 {
	FONT-SIZE: 123.1%
}
H3 {
	FONT-SIZE: 108%
}
H1 {
	MARGIN: 1em 0px
}
H2 {
	MARGIN: 1em 0px
}
H3 {
	MARGIN: 1em 0px
}
H1 {
	FONT-WEIGHT: bold
}
H2 {
	FONT-WEIGHT: bold
}
H3 {
	FONT-WEIGHT: bold
}
H4 {
	FONT-WEIGHT: bold
}
H5 {
	FONT-WEIGHT: bold
}
H6 {
	FONT-WEIGHT: bold
}
STRONG {
	FONT-WEIGHT: bold
}
ABBR {
	CURSOR: help; BORDER-BOTTOM: #000 1px dotted
}
ACRONYM {
	CURSOR: help; BORDER-BOTTOM: #000 1px dotted
}
EM {
	FONT-STYLE: italic
}
BLOCKQUOTE {
	MARGIN: 1em
}
UL {
	MARGIN: 1em
}
OL {
	MARGIN: 1em
}
DL {
	MARGIN: 1em
}
OL {
	MARGIN-LEFT: 2em
}
UL {
	MARGIN-LEFT: 2em
}
DL {
	MARGIN-LEFT: 2em
}
OL LI {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal
}
UL LI {
	LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: disc
}
DL DD {
	MARGIN-LEFT: 1em
}
TH {
	BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #000 =
1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; BORDER-LEFT: #000 =
1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #000 1px solid
}
TD {
	BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #000 =
1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; BORDER-LEFT: #000 =
1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #000 1px solid
}
TH {
	FONT-WEIGHT: bold; TEXT-ALIGN: center
}
CAPTION {
	MARGIN-BOTTOM: 0.5em; TEXT-ALIGN: center
}
P {
	MARGIN-BOTTOM: 1em
}
FIELDSET {
	MARGIN-BOTTOM: 1em
}
TABLE {
	MARGIN-BOTTOM: 1em
}
PRE {
	MARGIN-BOTTOM: 1em
}
INPUT[type=3Dtext] {
	WIDTH: 11.9em
}
INPUT[type=3Dpassword] {
	WIDTH: 11.9em
}
TEXTAREA {
	WIDTH: 11.9em
}
HTML {
	BACKGROUND: url(/img/default/bodybg.gif) #f8f8f8 fixed repeat-x right =
bottom
}
BODY {
	BACKGROUND: url(/img/common/body-bg-lines.gif) fixed no-repeat right =
bottom
}
BODY TEXTAREA {
	FONT-FAMILY: arial,helvetica,clean,sans-serif
}
.width {
	MARGIN: 0px auto; WIDTH: 990px
}
.left-content {
	MIN-HEIGHT: 300px; MARGIN-LEFT: 20px
}
.center-content {
	MARGIN: 20px
}
.center-content .width {
	WIDTH: 950px
}
.left-content A {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
.left-content A:link {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
.center-content A {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
.center-content A:link {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
#header #signinControl {
	FLOAT: right; MARGIN: 0px; WIDTH: 420px; PADDING-TOP: 8px; HEIGHT: 32px
}
#header #signinControlForm {
	MARGIN-LEFT: 96px; MARGIN-RIGHT: 24px; TEXT-ALIGN: right
}
#signintable {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}
#header FORM #emailAddress {
	BORDER-RIGHT: #c2c7cb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: =
#c2c7cb 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 0.9em; PADDING-BOTTOM: =
2px; VERTICAL-ALIGN: middle; BORDER-LEFT: #c2c7cb 1px solid; =
PADDING-TOP: 2px; BORDER-BOTTOM: #c2c7cb 1px solid; HEIGHT: 1.25em
}
#header FORM #password {
	BORDER-RIGHT: #c2c7cb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: =
#c2c7cb 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 0.9em; PADDING-BOTTOM: =
2px; VERTICAL-ALIGN: middle; BORDER-LEFT: #c2c7cb 1px solid; =
PADDING-TOP: 2px; BORDER-BOTTOM: #c2c7cb 1px solid; HEIGHT: 1.25em
}
#header FORM #emailAddress {
	FLOAT: right; WIDTH: 140px
}
#header FORM #password {
	FLOAT: right; MARGIN-LEFT: 4px; WIDTH: 80px
}
#header FORM #signInButton {
	MARGIN-LEFT: 4px; WIDTH: 58px; PADDING-TOP: 0.1em; HEIGHT: 15px
}
#header FORM .forgotpass {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: =
0.85em; PADDING-BOTTOM: 0px; MARGIN: 1px 64px 0px 0px; LINE-HEIGHT: 8px; =
PADDING-TOP: 0px
}
.forgotpass A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; TEXT-TRANSFORM: none; COLOR: #ccc; PADDING-TOP: 0px; =
TEXT-DECORATION: none
}
.loggedIn {
	FONT-SIZE: 9pt; COLOR: #ccc; MARGIN-RIGHT: 20px; TEXT-ALIGN: right
}
.loggedIn A:hover {
	COLOR: #fff
}
#signinControlForm A:hover {
	COLOR: #fff
}
.forgotpass A:hover {
	COLOR: #fff
}
.myLibraryLink {
	BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 5px
}
#signedInAs {
	MARGIN: 0px 8px
}
#signOut {
	PADDING-LEFT: 5px; BORDER-LEFT: #fff 1px solid
}
.highlight A {
	TEXT-TRANSFORM: none; COLOR: #ef8300; TEXT-DECORATION: underline
}
.highlight A:hover {
	COLOR: #fff
}
A.importantMenuItem {
	FONT-WEIGHT: normal; COLOR: #ef8300! important
}
A.importantMenuItem:hover {
	COLOR: #fff! important
}
.headerDiv {
	MIN-WIDTH: 990px; BACKGROUND: url(../../img/header/headerbg.gif) =
#484643 repeat-x left bottom; WIDTH: 100%; BORDER-BOTTOM: #000 1px solid
}
#headerLinks {
	LIST-STYLE-TYPE: none
}
#headerLinks LI {
	LIST-STYLE-TYPE: none
}
.myLibrary {
	LIST-STYLE-TYPE: none
}
.myLibrary LI {
	LIST-STYLE-TYPE: none
}
#headerLinks {
	FLOAT: left; PADDING-BOTTOM: 8px; MARGIN: 0px; TEXT-TRANSFORM: =
uppercase
}
#headerLinks LI {
	FONT-SIZE: 0.9em; MARGIN: 0px 15px; PADDING-TOP: 8px
}
#headerLinks IMG {
	FLOAT: left
}
#headerLinks {
	FLOAT: left
}
#headerLinks LI {
	FLOAT: left
}
#headerLinks {
	PADDING-LEFT: 5px
}
#headerLinks A {
	COLOR: #ccc; TEXT-DECORATION: none
}
#headerLinks A:hover {
	COLOR: #fff
}
#logoLink {
	PADDING-LEFT: 20px; FLOAT: left; MARGIN-RIGHT: 15px
}
.helpWidgetBox {
	PADDING-LEFT: 20px; FONT-SIZE: 1em; FLOAT: left; MARGIN: 0px; =
PADDING-TOP: 8px
}
.myLibrary {
	PADDING-RIGHT: 20px; FLOAT: right
}
#header BR {
	CLEAR: both
}
.tabcrumbs {
	MIN-WIDTH: 990px; BACKGROUND: url(../../img/common/navbarbg.png) =
#d86027 repeat-x left top; MARGIN: 0px; WIDTH: 100%; MAX-HEIGHT: 28px; =
HEIGHT: 28px
}
#views {
	FLOAT: right; WIDTH: 58px; COLOR: #000; MARGIN-RIGHT: 6px
}
.tabcrumbs A#normalview {
	MARGIN-TOP: 2px; DISPLAY: block; BACKGROUND: =
url(../../img/breadcrumbs/normalview.gif) no-repeat 0px 0px; FLOAT: =
left; WIDTH: 25px; HEIGHT: 25px
}
.tabcrumbs A#normalview:hover {
	BACKGROUND-POSITION: -25px 0px
}
.tabcrumbs A.selected#normalview {
	BACKGROUND-POSITION: -50px 0px
}
.tabcrumbs A#detailsview {
	MARGIN-TOP: 2px; DISPLAY: block; BACKGROUND: =
url(../../img/breadcrumbs/detailsview.gif) no-repeat 0px 0px; FLOAT: =
right; WIDTH: 25px; HEIGHT: 25px
}
.tabcrumbs A#detailsview:hover {
	BACKGROUND-POSITION: -25px 0px
}
.tabcrumbs A.selected#detailsview {
	BACKGROUND-POSITION: -50px 0px
}
.crumbPadding {
	PADDING-RIGHT: 20px; PADDING-LEFT: 20px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.tabItem {
	BORDER-TOP-WIDTH: 0px; MARGIN-TOP: 4px; FONT-WEIGHT: normal; =
BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 1em; FLOAT: left; =
BORDER-BOTTOM-WIDTH: 0px; COLOR: #fff; HEIGHT: 24px; BORDER-RIGHT-WIDTH: =
0px
}
.tabSeperator {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.tabText {
	VERTICAL-ALIGN: 25%
}
.tabItem A {
	VERTICAL-ALIGN: 25%; COLOR: #fff
}
.tabItem A:hover {
	TEXT-DECORATION: underline
}
.footerDiv {
	BORDER-TOP: #7e7d7c 1px solid; MIN-WIDTH: 990px; WIDTH: 100%; =
BACKGROUND-COLOR: transparent
}
#footer {
	CLEAR: both; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: 15px; =
MARGIN: 0px; TEXT-TRANSFORM: uppercase; PADDING-TOP: 8px; =
BACKGROUND-COLOR: transparent
}
#footer {
	LIST-STYLE-TYPE: none! important
}
#footer LI {
	LIST-STYLE-TYPE: none! important
}
#footerTsc {
	LIST-STYLE-TYPE: none! important
}
#footerTsc LI {
	LIST-STYLE-TYPE: none! important
}
#footer LI {
	FLOAT: left
}
#footer UL {
	MARGIN-TOP: 0px
}
#footerTsc UL {
	MARGIN-TOP: 0px
}
#footer LI {
	MARGIN: 0px 15px
}
#footer LI {
	MARGIN: 0px 15px
}
#footerTsc LI {
	MARGIN: 0px 15px
}
#footer A {
	FONT-SIZE: 0.9em; COLOR: #333; TEXT-DECORATION: none
}
#footer A:hover {
	COLOR: #f47b20
}
#footerTsc {
	PADDING-RIGHT: 5px; FLOAT: right; MARGIN: 0px; PADDING-TOP: 5px
}
#helpWidgetLabel {
	BORDER-RIGHT: #222 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #222 1px =
solid; PADDING-LEFT: 8px; BACKGROUND: =
url(/img/helpwidget/help-arrow-gray.gif) #444 no-repeat right 50%; =
PADDING-BOTTOM: 2px; BORDER-LEFT: #222 1px solid; CURSOR: default; =
COLOR: #ccc; MARGIN-RIGHT: 3px; PADDING-TOP: 2px; BORDER-BOTTOM: #222 =
1px solid
}
#helpWidgetPopup {
	BORDER-RIGHT: #7e7e7e 1px solid; BORDER-TOP: #7e7e7e 1px solid; =
MARGIN-TOP: 1px; DISPLAY: none; FONT-SIZE: 1.1em; BACKGROUND: #eaeaea; =
MARGIN-LEFT: -191px; TEXT-TRANSFORM: none; BORDER-LEFT: #7e7e7e 1px =
solid; WIDTH: 250px; BORDER-BOTTOM: #7e7e7e 1px solid; POSITION: =
absolute; TOP: 65px
}
#helpWidgetPopup A {
	CURSOR: pointer; COLOR: black
}
#helpWidgetPopup UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#helpWidgetPopup UL LI {
	MARGIN: 0px; LIST-STYLE-TYPE: none
}
#helpWidgetPopup UL LI OL LI {
	PADDING-RIGHT: 0px; DISPLAY: list-item; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; VERTICAL-ALIGN: top; =
PADDING-TOP: 0px; LIST-STYLE-TYPE: decimal
}
#helpWidgetPopup UL LI UL LI {
	PADDING-RIGHT: 0px; DISPLAY: list-item; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; VERTICAL-ALIGN: top; =
PADDING-TOP: 0px; LIST-STYLE-TYPE: disc
}
#helpWidgetPopup LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: =
url(/img/helpwidget/unselected.gif); PADDING-BOTTOM: 10px; WIDTH: 220px; =
PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-REPEAT: =
no-repeat
}
#helpWidgetPopup #helpLast {
	BACKGROUND-IMAGE: none; BACKGROUND-COLOR: white
}
.helpAnswer {
	PADDING-RIGHT: 10px; BORDER-TOP: #ccc 1px solid; MARGIN-TOP: 5px; =
DISPLAY: none; PADDING-LEFT: 20px; MARGIN-BOTTOM: -10px; PADDING-BOTTOM: =
10px; MARGIN-LEFT: -20px; WIDTH: 220px; COLOR: black! important; =
PADDING-TOP: 10px; BACKGROUND-COLOR: white
}
.helpSelected {
	BACKGROUND: url(/img/helpwidget/help-arrow-hover.gif) #ff7c1a no-repeat =
right 50%; COLOR: white! important
}
#helpWidgetPopup .helpSelected {
	BACKGROUND-IMAGE: url(/img/helpwidget/selected.gif)! important; =
BACKGROUND-REPEAT: no-repeat
}
.helpSelected A {
	COLOR: white! important
}
#helpLast A {
	COLOR: #f47b20! important; TEXT-DECORATION: underline
}
.helpAnswer A {
	COLOR: #f47b20! important; TEXT-DECORATION: underline
}
.helpAnswer OL {
	MARGIN-TOP: 0px; PADDING-TOP: 0px
}
.helpAnswer LI UL {
	MARGIN-TOP: 0px; PADDING-TOP: 0px
}
#helpWidgetPopup LI OL LI {
	PADDING-LEFT: 20px; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 0px; =
MARGIN-LEFT: 20px; WIDTH: 200px
}
#helpWidgetPopup LI UL LI {
	PADDING-LEFT: 20px; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: 0px; =
MARGIN-LEFT: 20px; WIDTH: 200px
}
.errorMessage {
	PADDING-RIGHT: 10px; DISPLAY: none; PADDING-LEFT: 10px; FONT-WEIGHT: =
bolder; FONT-SIZE: 1.13em; PADDING-BOTTOM: 5px; MARGIN: 6px 10px 2px; =
WIDTH: auto; PADDING-TOP: 5px; FONT-FAMILY: arial, sans-serif
}
.statusMessage {
	PADDING-RIGHT: 10px; DISPLAY: none; PADDING-LEFT: 10px; FONT-WEIGHT: =
bolder; FONT-SIZE: 1.13em; PADDING-BOTTOM: 5px; MARGIN: 6px 10px 2px; =
WIDTH: auto; PADDING-TOP: 5px; FONT-FAMILY: arial, sans-serif
}
.warningMessage {
	PADDING-RIGHT: 10px; DISPLAY: none; PADDING-LEFT: 10px; FONT-WEIGHT: =
bolder; FONT-SIZE: 1.13em; PADDING-BOTTOM: 5px; MARGIN: 6px 10px 2px; =
WIDTH: auto; PADDING-TOP: 5px; FONT-FAMILY: arial, sans-serif
}
.errorMessage {
	BORDER-RIGHT: #cc0000 1px solid; BORDER-TOP: #cc0000 1px solid; =
BORDER-LEFT: #cc0000 1px solid; COLOR: #673333; BORDER-BOTTOM: #cc0000 =
1px solid; BACKGROUND-COLOR: #f8dcd8
}
.statusMessage {
	BORDER-RIGHT: #9cb9d2 1px solid; BORDER-TOP: #9cb9d2 1px solid; =
BORDER-LEFT: #9cb9d2 1px solid; COLOR: #555555; BORDER-BOTTOM: #9cb9d2 =
1px solid; BACKGROUND-COLOR: #cee1f0
}
.warningMessage {
	BORDER-RIGHT: #ffd129 1px solid; BORDER-TOP: #ffd129 1px solid; =
BORDER-LEFT: #ffd129 1px solid; COLOR: #555555; BORDER-BOTTOM: #ffd129 =
1px solid; BACKGROUND-COLOR: #fff4a6
}
.errorMessage A {
	COLOR: #673333; TEXT-DECORATION: underline
}
.errorMessage A:visited {
	COLOR: #673333; TEXT-DECORATION: underline
}
.statusMessage A {
	COLOR: #555555; TEXT-DECORATION: underline
}
.statusMessage A:visited {
	COLOR: #555555; TEXT-DECORATION: underline
}
.warningMessage A {
	COLOR: #555555; TEXT-DECORATION: underline
}
.warningMessage A:visited {
	COLOR: #555555; TEXT-DECORATION: underline
}
.errorMessage P {
	MARGIN: 0px
}
.statusMessage P {
	MARGIN: 0px
}
.warningMessage P {
	MARGIN: 0px
}
.invalidEntry {
	BORDER-RIGHT: #fb3e41 2px solid; BORDER-TOP: #fb3e41 2px solid; =
BORDER-LEFT: #fb3e41 2px solid; BORDER-BOTTOM: #fb3e41 2px solid
}
.button {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px =
solid; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 1em; =
BACKGROUND-IMAGE: url(../../img/common/buttondarkorangebackground.png); =
PADDING-BOTTOM: 0.2em; BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; CURSOR: =
pointer; COLOR: #fff; PADDING-TOP: 0.2em; BORDER-BOTTOM: #ccc 1px solid; =
BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #f7941d; TEXT-ALIGN: =
center; TEXT-DECORATION: none! important
}
.button:hover {
	BACKGROUND-IMAGE: url(../../img/common/buttonorangebackground.png); =
CURSOR: pointer; COLOR: #fff; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-COLOR: #f7941d
}
.style1 {
	BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #838383
}
.style1:hover {
	BACKGROUND-IMAGE: url(../../img/common/buttondarkorangebackground.png); =
BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #f7941d
}
.style2 {
	BORDER-RIGHT: #e45311 1px solid; BORDER-TOP: #e45311 1px solid; =
BORDER-LEFT: #e45311 1px solid; BORDER-BOTTOM: #e45311 1px solid
}
.style3 {
	BORDER-RIGHT: #e45311 1px solid; BORDER-TOP: #e45311 1px solid; =
BACKGROUND: #f5d7b4; BORDER-LEFT: #e45311 1px solid; COLOR: #f47b20; =
BORDER-BOTTOM: #e45311 1px solid
}
.style3:hover {
	BACKGROUND-IMAGE: url(../../img/common/buttonorangebackground.png); =
COLOR: #fff; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #f7941d
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/styles/view.css

TD {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
.tabSelected {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: =
2px; MARGIN-RIGHT: 7px; PADDING-TOP: 2px; BORDER-BOTTOM: #f47b20 1px =
solid
}
.tabUnselected {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: =
2px; MARGIN-RIGHT: 7px; PADDING-TOP: 2px; BORDER-BOTTOM: #f47b20 1px =
solid
}
.tabSelected A {
	COLOR: white; TEXT-DECORATION: none
}
.tabUnselected A {
	COLOR: #959595; TEXT-DECORATION: none
}
.tabSelected {
	BACKGROUND-COLOR: #f47b20
}
.tabUnselected {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 0px solid; BACKGROUND-COLOR: =
transparent
}
#detailsArea {
	DISPLAY: inline
}
#shareThisMediaArea {
	DISPLAY: none; MARGIN-LEFT: 5px
}
#emailArea {
	DISPLAY: none
}
#attachmentsArea {
	DISPLAY: none; WIDTH: 100%
}
.AttachmentsTable {
	BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; MARGIN: 0px; =
BORDER-LEFT: #ccc 1px solid; WIDTH: 100%; BORDER-BOTTOM: #ccc 1px solid
}
.AttachmentsRow A {
	COLOR: #f47b20
}
.AttachmentsAltRow A {
	COLOR: #f47b20
}
.AttachmentsRow {
	PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 5px; =
BACKGROUND: #eee; PADDING-BOTTOM: 5px; PADDING-TOP: 5px
}
.AttachmentsAltRow {
	PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 5px; =
BACKGROUND: #ffffff; PADDING-BOTTOM: 5px; PADDING-TOP: 5px
}
.AttachmentsText {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 528px; PADDING-TOP: 3px; HEIGHT: =
18px
}
.AttachmentsActions {
	FLOAT: left; WIDTH: 30px; CURSOR: pointer; TEXT-ALIGN: right
}
.resetCSCSS A {
	TEXT-DECORATION: underline
}
.resetCSCSS {
	FONT: small/1.231 arial,helvetica,clean,sans-serif
}
#container {
	FONT: small/1.231 arial,helvetica,clean,sans-serif
}
#CsEmdPlr {
	FONT: small/1.231 arial,helvetica,clean,sans-serif
}
.resetCSCSS .tabSelected A {
	TEXT-DECORATION: none
}
.resetCSCSS .tabUnselected A {
	TEXT-DECORATION: none
}
#CsEmdPlr TR {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: =
0px; PADDING-TOP: 1px
}
#CsEmdPlr TD {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: =
0px; PADDING-TOP: 1px
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/styles/settingsmedia.css

.tabSelected {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: =
2px; MARGIN-RIGHT: 7px; PADDING-TOP: 2px; BORDER-BOTTOM: #f47b20 1px =
solid
}
.tabUnselected {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: =
2px; MARGIN-RIGHT: 7px; PADDING-TOP: 2px; BORDER-BOTTOM: #f47b20 1px =
solid
}
.tabSelected A {
	COLOR: white; TEXT-DECORATION: none
}
.tabUnselected A {
	COLOR: #959595; TEXT-DECORATION: none
}
.tabSelected {
	BACKGROUND-COLOR: #f47b20
}
.tabUnselected {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 0px solid; BACKGROUND-COLOR: =
transparent
}
.infoHeader {
	FONT-SIZE: 9pt; FONT-FAMILY: arial, sans-serif; TEXT-ALIGN: left
}
.thumbnailImage {
	MARGIN-LEFT: 10px; WIDTH: 70px; PADDING-TOP: 10px; HEIGHT: 80px
}
IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/styles/comments.css

.commentList TABLE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px
}
.commentList TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px
}
.commentList TR {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px
}
.reply {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; =
MARGIN-LEFT: 30px; PADDING-TOP: 5px
}
.root {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px
}
.root .commentTable {
	MARGIN-LEFT: 8px; WIDTH: 562px
}
.root .commentLeftColumn {
	VERTICAL-ALIGN: top; WIDTH: 170px; HEIGHT: 36px
}
.root .commentRightColumn {
	VERTICAL-ALIGN: top; WIDTH: 392px; TEXT-ALIGN: right
}
.root .commentInputBox {
	WIDTH: 392px
}
.root .commentTextArea {
	CLEAR: both; WIDTH: 562px
}
.root .commentName {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 240px
}
.reply .commentName {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 220px
}
.reply .commentTable {
	MARGIN-LEFT: 8px; WIDTH: 532px
}
.reply .commentLeftColumn {
	VERTICAL-ALIGN: top; WIDTH: 170px; HEIGHT: 36px
}
.reply .commentRightColumn {
	VERTICAL-ALIGN: top; WIDTH: 362px; TEXT-ALIGN: right
}
.reply .commentInputBox {
	WIDTH: 362px
}
.reply .commentTextArea {
	CLEAR: both; WIDTH: 532px
}
.commentHeader {
	PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; =
PADDING-TOP: 4px
}
.commentHeader .name {
	FONT-WEIGHT: bold; COLOR: #000
}
.commentHeader .date {
	FONT-SIZE: 12px; MARGIN: 0px 5px; COLOR: #676767
}
.linkMarker {
	VERTICAL-ALIGN: text-bottom; MARGIN-RIGHT: 5px
}
A.deleteLink {
	DISPLAY: block; BACKGROUND: url(/img/comments/commentdelete.gif); =
MARGIN: 0px 5px; WIDTH: 16px; HEIGHT: 16px; TEXT-DECORATION: none
}
A.deleteLink:hover {
	BACKGROUND-POSITION: 0px -16px
}
.commentList {
	MARGIN-TOP: 10px
}
.owner {
	BORDER-RIGHT: #fbc988 1px dotted; BORDER-TOP: #fbc988 1px dotted; =
BORDER-LEFT: #fbc988 1px dotted; BORDER-BOTTOM: #f7a235 1px solid; =
BACKGROUND-COLOR: #feecd0
}
.normal {
	BORDER-RIGHT: #e0e0e0 1px dotted; BORDER-TOP: #e0e0e0 1px dotted; =
BORDER-LEFT: #e0e0e0 1px dotted; BORDER-BOTTOM: #979797 1px solid; =
BACKGROUND-COLOR: #f2f2f2
}
.contentOwner {
	FONT-WEIGHT: bold; MARGIN: 0px 5px 0px 10px; COLOR: #f7a235
}
.commentMessage {
	MARGIN: 5px 5px 15px; OVERFLOW: hidden; PADDING-TOP: 5px
}
.commentCount {
	FONT-WEIGHT: bold; FONT-SIZE: 14px; MARGIN-RIGHT: 10px
}
.newCommentHead {
	FONT-WEIGHT: bold; FONT-SIZE: 14px; MARGIN-RIGHT: 10px
}
.postButton {
	FLOAT: right; WIDTH: 10em
}
.replyPanel {
	MARGIN-TOP: 10px
}
.replyButton {
	FLOAT: right; WIDTH: 8em
}
.commentListHeader A {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentListHeader A:link {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentListReply A {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentListReply A:link {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentHeader A {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentHeader A:link .signInText A {
	COLOR: #676767; TEXT-DECORATION: none
}
.signInText A:link {
	COLOR: #676767; TEXT-DECORATION: none
}
.signInText A:visited {
	COLOR: #676767; TEXT-DECORATION: none
}
.commentMessage A {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
.commentMessage A:link {
	TEXT-TRANSFORM: none; COLOR: #f47b20; TEXT-DECORATION: underline
}
.commentListReply {
	MARGIN-LEFT: 5px
}
.postLink {
	BORDER-BOTTOM: #676767 1px dotted
}
.noComments HR {
	COLOR: #f7a235; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; HEIGHT: 1px; BACKGROUND-COLOR: #f7a235; =
BORDER-BOTTOM-STYLE: none
}
.newComments HR {
	COLOR: #f7a235; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; HEIGHT: 1px; BACKGROUND-COLOR: #f7a235; =
BORDER-BOTTOM-STYLE: none
}
.commentOptionsDiv {
	FLOAT: right; LINE-HEIGHT: 20px; HEIGHT: 20px
}
#commentOptionsLabel {
	CURSOR: default; COLOR: #676767; MARGIN-RIGHT: 3px; BORDER-BOTTOM: =
#676767 1px dotted; TEXT-DECORATION: none
}
#commentOptionsPopup {
	BORDER-RIGHT: #7e7e7e 1px solid; BORDER-TOP: #7e7e7e 1px solid; =
DISPLAY: none; BACKGROUND: #eaeaea; MARGIN: 0px 0px 0px 295px; =
TEXT-TRANSFORM: none; BORDER-LEFT: #7e7e7e 1px solid; WIDTH: 275px; =
BORDER-BOTTOM: #7e7e7e 1px solid; POSITION: absolute; HEIGHT: 120px
}
.commentOptionsSelected {
	COLOR: #f7a235! important
}
.commentShowCheckbox {
	MARGIN-TOP: 2px; MARGIN-LEFT: 6px; VERTICAL-ALIGN: middle; CURSOR: =
pointer; HEIGHT: 24px
}
.commentIndentCheckbox {
	MARGIN-TOP: 2px; MARGIN-LEFT: 16px; VERTICAL-ALIGN: middle; CURSOR: =
pointer; HEIGHT: 24px
}
.commentCheckboxText {
	MARGIN-TOP: 2px; DISPLAY: inline; VERTICAL-ALIGN: middle; HEIGHT: 24px
}
.commentOptionsSave {
	MARGIN-TOP: 10px; FLOAT: right; WIDTH: 6em; MARGIN-RIGHT: 10px
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/styles/lightbox.css

#TB_overlay {
	Z-INDEX: 100; LEFT: 0px; WIDTH: 100%; POSITION: fixed; TOP: 0px; =
HEIGHT: 100%
}
.TB_overlayMacFFBGHack {
	BACKGROUND: url(/img/common/macfirefoxbackgroundhack.png)
}
.TB_overlayBG {
	FILTER: alpha(opacity=3D75); BACKGROUND-COLOR: #000; -moz-opacity: =
0.75; opacity: 0.75
}
* HTML #TB_overlay {
	POSITION: absolute; ; HEIGHT: expression(document.body.scrollHeight > =
document.body.offsetHeight ? document.body.scrollHeight : =
document.body.offsetHeight +   'px' )
}
#TB_window {
	BORDER-RIGHT: #fff 4px solid; BORDER-TOP: #fff 4px solid; DISPLAY: =
none; Z-INDEX: 102; BACKGROUND: #ededed; LEFT: 50%; BORDER-LEFT: #fff =
4px solid; COLOR: #000000; BORDER-BOTTOM: #fff 4px solid; POSITION: =
fixed; TOP: 50%; TEXT-ALIGN: left
}
* HTML #TB_window {
	; MARGIN-TOP: expression(0 - parseInt(this.offsetHeight / 2) + =
(TBWindowMargin =3D (document.documentElement && =
document.documentElement.scrollTop || document.body.scrollTop)) + 'px'); =
POSITION: absolute
}
#TB_window H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 1.2em; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; COLOR: #fb6a0a; PADDING-TOP: =
0px
}
#TB_window H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 1.1em; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0.5em; COLOR: #fb6a0a; PADDING-TOP: =
0px
}
#TB_window IMG#TB_Image {
	BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #666 1px solid; DISPLAY: =
block; MARGIN: 15px 0px 0px 15px; BORDER-LEFT: #666 1px solid; =
BORDER-BOTTOM: #ccc 1px solid
}
#TB_caption {
	PADDING-RIGHT: 30px; PADDING-LEFT: 25px; FLOAT: left; PADDING-BOTTOM: =
10px; PADDING-TOP: 7px; HEIGHT: 25px
}
#TB_closeWindow {
	PADDING-RIGHT: 25px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: =
10px; PADDING-TOP: 11px; HEIGHT: 25px
}
#TB_closeAjaxWindow {
	PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: right; MARGIN-BOTTOM: =
1px; PADDING-BOTTOM: 5px; PADDING-TOP: 7px; TEXT-ALIGN: right
}
#TB_closeWindowButton {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px =
solid; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 1em; =
BACKGROUND-IMAGE: url(../../img/common/buttondarkorangebackground.png); =
PADDING-BOTTOM: 0.2em; BORDER-LEFT: #ccc 1px solid; WIDTH: 100px; =
CURSOR: pointer; COLOR: #fff; PADDING-TOP: 0.2em; BORDER-BOTTOM: #ccc =
1px solid; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #f7941d; =
TEXT-ALIGN: center; TEXT-DECORATION: none! important
}
#TB_closeWindowButton:hover {
	BACKGROUND-IMAGE: url(../../img/common/buttonorangebackground.png); =
CURSOR: pointer; COLOR: #fff; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-COLOR: #f7941d
}
#TB_ajaxWindowTitle {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; FLOAT: left; MARGIN-BOTTOM: =
1px; PADDING-BOTTOM: 5px; PADDING-TOP: 7px
}
#TB_title {
	HEIGHT: 27px; BACKGROUND-COLOR: #e8e8e8
}
#TB_ajaxContent {
	CLEAR: both; PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: =
15px; OVERFLOW: auto; LINE-HEIGHT: 1.4em; PADDING-TOP: 2px; TEXT-ALIGN: =
left
}
.TB_modal#TB_ajaxContent {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 15px
}
#TB_ajaxContent P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px
}
#TB_load {
	DISPLAY: none; Z-INDEX: 103; LEFT: 50%; MARGIN: -6px 0px 0px -104px; =
WIDTH: 208px; POSITION: fixed; TOP: 50%; HEIGHT: 13px
}
* HTML #TB_load {
	; MARGIN-TOP: expression(0 - parseInt(this.offsetHeight / 2) + =
(TBWindowMargin =3D document.documentElement && =
document.documentElement.scrollTop || document.body.scrollTop) +   'px' =
); POSITION: absolute
}
#TB_HideSelect {
	Z-INDEX: 99; FILTER: alpha(opacity=3D0); LEFT: 0px; WIDTH: 100%; =
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; POSITION: fixed; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: #fff; =
BORDER-BOTTOM-STYLE: none; -moz-opacity: 0; opacity: 0
}
* HTML #TB_HideSelect {
	POSITION: absolute; ; HEIGHT: expression(document.body.scrollHeight > =
document.body.offsetHeight ? document.body.scrollHeight : =
document.body.offsetHeight +   'px' )
}
#TB_iframeContent {
	CLEAR: both; MARGIN-TOP: 1px; MARGIN-BOTTOM: -1px; BORDER-TOP-STYLE: =
none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; =
BORDER-BOTTOM-STYLE: none; _margin-bottom: 1px
}
#TB_window #notifyTextCopied {
	COLOR: #fb6a0a; TEXT-ALIGN: center
}
#TB_window .lightboxPanel {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #ccc 1px =
solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 5px 5px 0px; =
BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #ccc 1px =
solid
}
#privacycontainer {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 5px; PADDING-TOP: 0px; HEIGHT: 25px
}
#privacycontainer UL {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; TEXT-ALIGN: =
center; BORDER-RIGHT-WIDTH: 0px
}
#privacycontainer UL LI {
	PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; =
PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 112px; PADDING-TOP: 0px; =
TEXT-ALIGN: center
}
#privacycontainer #authenticated {
	WIDTH: 111px
}
#privacycontainer LI.activePrivacy A {
	BACKGROUND-IMAGE: url(../../img/common/buttondarkorangebackground.png); =
COLOR: #fff; BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #f7941d
}
#privacyDescription {
	BORDER-RIGHT: #e45311 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: =
#e45311 1px solid; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: =
10px; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: #e45311 1px solid; =
PADDING-TOP: 10px; BORDER-BOTTOM: #e45311 1px solid; HEIGHT: 90px
}
#privacyDescription IMG {
	MARGIN: 5px 5px 0px 0px
}
#lightboxHelpWidgetLabel {
	BORDER-RIGHT: #b7b5b3 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: =
#b7b5b3 1px solid; PADDING-LEFT: 8px; FONT-SIZE: 0.9em; RIGHT: 20px; =
BACKGROUND: url(/img/helpwidget/help-arrow-box-gray.gif) #ededed =
no-repeat right 50%; PADDING-BOTTOM: 0px; BORDER-LEFT: #b7b5b3 1px =
solid; CURSOR: default; COLOR: #868686; PADDING-TOP: 0px; BORDER-BOTTOM: =
#b7b5b3 1px solid; POSITION: absolute; TOP: 15px
}
#lightboxHelpWidgetPopup {
	BORDER-RIGHT: #7e7e7e 1px solid; BORDER-TOP: #7e7e7e 1px solid; =
DISPLAY: none; FONT-SIZE: 1.1em; Z-INDEX: 4; RIGHT: 20px; BACKGROUND: =
#eaeaea; TEXT-TRANSFORM: none; BORDER-LEFT: #7e7e7e 1px solid; WIDTH: =
250px; BORDER-BOTTOM: #7e7e7e 1px solid; POSITION: absolute; TOP: 34px
}
#lightboxHelpWidgetPopup A {
	CURSOR: pointer; COLOR: black
}
#lightboxHelpWidgetPopup UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#lightboxHelpWidgetPopup UL LI {
	MARGIN: 0px; LIST-STYLE-TYPE: none
}
#lightboxHelpWidgetPopup UL LI OL LI {
	PADDING-RIGHT: 0px; DISPLAY: list-item; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; VERTICAL-ALIGN: top; =
PADDING-TOP: 0px; LIST-STYLE-TYPE: decimal
}
#lightboxHelpWidgetPopup UL LI UL LI {
	PADDING-RIGHT: 0px; DISPLAY: list-item; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; VERTICAL-ALIGN: top; =
PADDING-TOP: 0px; LIST-STYLE-TYPE: disc
}
#lightboxHelpWidgetPopup LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 20px; BACKGROUND-IMAGE: =
url(/img/helpwidget/unselected.gif); PADDING-BOTTOM: 10px; WIDTH: 220px; =
PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-REPEAT: =
no-repeat
}
#lightboxHelpWidgetPopup #helpLast {
	BACKGROUND-IMAGE: none; BACKGROUND-COLOR: white
}
#lightboxHelpWidgetPopup .helpSelected {
	BACKGROUND-IMAGE: url(/img/helpwidget/selected.gif)! important; =
BACKGROUND-REPEAT: no-repeat
}
.doneButton {
	RIGHT: 20px; WIDTH: 120px; BOTTOM: 10px; POSITION: absolute
}
.saveButton {
	RIGHT: 125px; WIDTH: 100px; BOTTOM: 10px; POSITION: absolute
}
.cancelButton {
	RIGHT: 20px; WIDTH: 100px; BOTTOM: 10px; POSITION: absolute
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/common.js

// nearly every page uses an ajax object so we'll just make one here so
// all the requests can use the same object
var ajaxRequestHandler =3D createAjaxObject();

/////////////////////////////////////////////////////////////////////////=
/
// Function: createAjaxObject()
// Accepts: nothing
// Returns: object reference
//
// Creates an object to allow AJAX calls with XMLHttpRequest()
//
/////////////////////////////////////////////////////////////////////////=
/
function createAjaxObject()
{
   var objAjax =3D null;
   try // for IE 6
   {
      objAjax =3D new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch(e)
   {
      try // for IE <=3D 5?
      {
         objAjax =3D new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(ee)
      {
         try // for IE 7
	      {
            objAjax =3D new ActiveXObject("MSXML2.XMLHTTP.3.0");
	      }
	      catch(eee)
	      {
	         try // for everything else (don't let IE7 use this, IE7 is =
broken)
	         {
	            objAjax =3D new XMLHttpRequest();
	         }
	         catch(eeee)
	         {
               alert("Your browser does not support some of the features =
on this page. We recommend that you view this page with the latest =
version of either Mozilla(R) Firefox(R) or Microsoft(R) Internet =
Explorer(R). If you are already using one of the recommended browsers, =
please contact customer support by visiting screencast.com/answers and =
clicking on \"Contact Us\".");
               return null;
	         }
	      }
      }
   }
   return objAjax;
} // end function createAjaxObject()

// Begin help widget function
var helpWidgetQuestionShowing =3D "";
     =20
function onQuestionClick( id )
{        =20
   toShow =3D document.getElementById( "help_" + id );
   titleId =3D document.getElementById( "help" + id );
        =20
   if ( titleId.className !=3D "helpSelected" )=20
   {
       toShow.style.display =3D "block";
       titleId.className =3D "helpSelected";
           =20
       if ( helpWidgetQuestionShowing !=3D "" )
       {
           try
           {
              toHideQuestion =3D document.getElementById( "help_" + =
helpWidgetQuestionShowing );
              toHideTitle =3D document.getElementById( "help" + =
helpWidgetQuestionShowing );=20
              toHideQuestion.style.display =3D "none";
              toHideTitle.className =3D "";
           }
           catch (e)=20
           {
             // Yes, empty catches are bad.  IE apparently doesn't like =
when you try to set the class
             // of items that are no longer displayed even when they =
still exist.  So... it's here.
           }
       }
           =20
       helpWidgetQuestionShowing =3D id;
   }
   else
   {
      toShow.style.display =3D "none";
      titleId.className =3D "";
      helpWidgetQuestionShowing =3D "";
   }
}
     =20
// Shows the help widget
function showHelp( helpName )
{
   document.getElementById( helpName + "Popup").style.display =3D =
"block";
   document.getElementById( helpName + "Label").className =3D =
"helpWidgetLabel helpSelected";
} // end function showHelp()

// Hides the help widget
function hideHelp( helpName )
{
   document.getElementById( helpName + "Popup").style.display =3D =
"none";
   document.getElementById( helpName + "Label").className =3D =
"helpWidgetLabel";
} // end function hideHelp()

// End help widget functions

//Keep Alive
/////////////////////////////////////////////////////////////////////////=
/
// Function: EnableKeepAlive()
// Accepts: nothing
// Returns: nothing
//
// Designed to be called on page load.  Calls ping function at a set =
interval
// to keep sessions alive.
//
/////////////////////////////////////////////////////////////////////////=
/
function EnableKeepAlive()
{
   setInterval("keepAlive()", 300000);
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: ping
// Accepts: nothing
// Returns: nothing on connection failure, true on everything else
//
// Send an empty ajax call to keep the current session alive.
//
/////////////////////////////////////////////////////////////////////////=
/
function keepAlive()
{
// code to try http or https
// if you only try a relative path and the base href is set to http and =
this is
// called from https, the browser will block it because it doesn't see =
the two
// as the same site.
 =20
   curDomain =3D document.domain;
   try // try http first
   {
      url =3D "http://" + curDomain + "/handlers/keepalive.ashx";

      ajaxRequestHandler.open( "POST", url, false );
   }
   catch(e)
   {
      try // now try https
      {
         url =3D "https://" + curDomain + "/handlers/keepalive.ashx";

         ajaxRequestHandler.open( "POST", url, false );
      }
      catch(e) // return if both fail
      {
        // TODO: return an error here?
        return;
      }
   }
   ajaxRequestHandler.send( "" );
   return true;
} // end function keepAlive()
//End Keep Alive
//
// PLEASE DO NOT RE-ADD scOnLdASPX
// Use EnableKeepAlive

function getQueryStrParam( param )=20
{
   var query =3D window.location.search.substring(1).split( "&" );
   for ( i =3D 0 ; i < query.length ; i++ )=20
   {
      var ft =3D query[i].split( "=3D" );
     =20
      if ( ft[0] =3D=3D param )=20
      {
         return ft[1];
      }
   }
   return "";
}

// Disables the enter key.
// Use by calling "return disableEnterKey( event );"
function disableEnterKey( e )
{
   var k =3D e.keyCode || e.which;
   return k !=3D 13;
=0D}

/*
* Copies the value in the given element to the clipboard via flash.
*/
function copyToClipboard(elt)=20
{
    // Flash version 10 breaks this...do not allow it if that is the =
current version.
    if (checkFlash(9, 0, 125) !=3D 'needupgrade') {
        return;
    }

    var urlSwf =3D "/inc/flash/_clipboard.swf";
    var eltNotify =3D document.getElementById("notifyTextCopied");

    if (eltNotify) {
        elt.onblur =3D
               function(e) {
                   Element.hide(eltNotify);
                   return true;
               }
        Element.show(eltNotify);

        var xEffect =3D Effect.Fade(eltNotify, { fps: 75, from: 1.9, to: =
0.0, duration: 1.0, queue: 'front' });
        window.status =3D 'Copied to clipboard';
    }

    // Copy the text inside the text box to the user's clipboard
    var flashcopier =3D 'flashcopier';
    if (!document.getElementById(flashcopier)) {
        var divholder =3D document.createElement('div');
        divholder.id =3D flashcopier;
        document.body.appendChild(divholder);
    }

    document.getElementById(flashcopier).innerHTML =3D '';
    var divinfo =3D '<embed src=3D"' + urlSwf + '" =
FlashVars=3D"clipboard=3D' + escape(elt.value) + '" width=3D"0" =
height=3D"0" type=3D"application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML =3D divinfo;

    elt.select();

    return true;
 }

/*
* Checks to see if the user is signed in.=20
* Returns true if they are, otherwise returns false.
*/
function isUserSignedIn()
{
   var curDomain =3D document.domain;
   var handlerUrl =3D "/handlers/signincheck.ashx";=20
  =20
   try // try http first
   {
      var url =3D "http://" + curDomain + handlerUrl;

      ajaxRequestHandler.open( "POST", url, false );
   }
   catch(e)
   {
      try // now try https
      {
         var url =3D "https://" + curDomain + handlerUrl;

         ajaxRequestHandler.open( "POST", url, false );
      }
      catch(e) // return false if both fail.
      {
        return false;
      }
   }
  =20
   ajaxRequestHandler.send( "" );
  =20
   if (ajaxRequestHandler.responseText =3D=3D "true")
   {
      return true;
   }
   else
   {
      return false;
   }
}

/*
* Checks to see if the user is signed in, and redirects them to the =
signin page if they are not.
* Returns true when signed in and false otherwise.
*/
function isUserSignedInOrRedirectToSignInPage()
{
   if ( !isUserSignedIn() )
   {
      var curDomain =3D document.domain;
      var signInUrl =3D "/signin.aspx";
      var redirectUrl =3D "https://" + curDomain + signInUrl;
      window.location =3D redirectUrl;
      return false;
   }
   return true;
}
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/detectplugins.js

// Taken from =
http://developer.apple.com/internet/webcontent/detectplugins.html
// See license below
//
// Copyright =C2=A9 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may =
redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.

// initialize global variables
var detectableWithVB =3D false;
var pluginFound =3D false;
var javascriptVersion1_1 =3D true;

function goURL(daURL) {
    // if the browser can do it, use replace to preserve back button
    if(javascriptVersion1_1) {
	window.location.replace(daURL);
    } else {
	window.location =3D daURL;
    }
    return;
}

function redirectCheck(pluginFound, redirectURL, redirectIfFound) {
    // check for redirection
    if( redirectURL && ((pluginFound && redirectIfFound) ||
	(!pluginFound && !redirectIfFound)) ) {
	// go away
	goURL(redirectURL);
	return pluginFound;
    } else {
	// stay here and return result of plugin detection
	return pluginFound;
    }
}

function canDetectPlugins() {
    if( detectableWithVB || (navigator.plugins && =
navigator.plugins.length > 0) ) {
	return true;
    } else {
	return false;
    }
}

function detectFlash(redirectURL, redirectIfFound) {
    pluginFound =3D detectPlugin('Shockwave','Flash');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound =3D detectActiveXControl('ShockwaveFlash.ShockwaveFlash');
    }
    // check for redirection
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectDirector(redirectURL, redirectIfFound) {
    pluginFound =3D detectPlugin('Shockwave','Director');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound =3D detectActiveXControl('SWCtl.SWCtl.1');
    }
    // check for redirection
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectQuickTime(redirectURL, redirectIfFound) {
    pluginFound =3D detectPlugin('QuickTime');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound =3D detectQuickTimeActiveXControl();
    }
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectReal(redirectURL, redirectIfFound) {
    pluginFound =3D detectPlugin('RealPlayer');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound =3D (detectActiveXControl('rmocx.RealPlayer G2 Control') ||
		       detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control =
(32-bit)') ||
		       detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control =
(32-bit)'));
    }
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectWindowsMedia(redirectURL, redirectIfFound) {
    pluginFound =3D detectPlugin('Windows Media');
    // if not found, try to detect with VisualBasic
    if(!pluginFound && detectableWithVB) {
	pluginFound =3D detectActiveXControl('wmplayer.ocx');
    }
    return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectPlugin() {
    // allow for multiple checks in a single pass
    var daPlugins =3D detectPlugin.arguments;
    // consider pluginFound to be false until proven true
    var pluginFound =3D false;
    // if plugins array is there and not fake
    if (navigator.plugins && navigator.plugins.length > 0) {
	var pluginsArrayLength =3D navigator.plugins.length;
	// for each plugin...
	for (pluginsArrayCounter=3D0; pluginsArrayCounter < pluginsArrayLength; =
pluginsArrayCounter++ ) {
	    // loop through all desired names and check each against the =
current plugin name
	    var numFound =3D 0;
	    for(namesCounter=3D0; namesCounter < daPlugins.length; =
namesCounter++) {
		// if desired plugin name is found in either plugin name or =
description
		if( =
(navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCount=
er]) >=3D 0) ||
		    =
(navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[nam=
esCounter]) >=3D 0) ) {
		    // this name was found
		    numFound++;
		}
	    }
	    // now that we have checked all the required names against this one =
plugin,
	    // if the number we found matches the total number provided then we =
were successful
	    if(numFound =3D=3D daPlugins.length) {
		pluginFound =3D true;
		// if we've found the plugin, we can stop looking through at the rest =
of the plugins
		break;
	    }
	}
    }
    return pluginFound;
} // detectPlugin


// Here we write out the VBScript block for MSIE Windows
if ((navigator.userAgent.indexOf('MSIE') !=3D -1) && =
(navigator.userAgent.indexOf('Win') !=3D -1)) {
    document.writeln('<script language=3D"VBscript">');

    document.writeln('\'do a one-time test for a version of VBScript =
that can handle this code');
    document.writeln('detectableWithVB =3D False');
    document.writeln('If ScriptEngineMajorVersion >=3D 2 then');
    document.writeln('  detectableWithVB =3D True');
    document.writeln('End If');

    document.writeln('\'this next function will detect most plugins');
    document.writeln('Function =
detectActiveXControl(activeXControlName)');
    document.writeln('  on error resume next');
    document.writeln('  detectActiveXControl =3D False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('     detectActiveXControl =3D =
IsObject(CreateObject(activeXControlName))');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('\'and the following function handles QuickTime');
    document.writeln('Function detectQuickTimeActiveXControl()');
    document.writeln('  on error resume next');
    document.writeln('  detectQuickTimeActiveXControl =3D False');
    document.writeln('  If detectableWithVB Then');
    document.writeln('    detectQuickTimeActiveXControl =3D False');
    document.writeln('    hasQuickTimeChecker =3D false');
    document.writeln('    Set hasQuickTimeChecker =3D =
CreateObject("Quicktime.Quicktime")');
    document.writeln('    If IsObject(hasQuickTimeChecker) Then');
    document.writeln('      If =
hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');
    document.writeln('        detectQuickTimeActiveXControl =3D True');
    document.writeln('      End If');
    document.writeln('    End If');
    document.writeln('  End If');
    document.writeln('End Function');

    document.writeln('</scr' + 'ipt>');
}

var needsUpgrade =3D "needupgrade";
var noFlash =3D "noflash";

function checkFlash( major, minor, rev )
{
   if ( detectFlash() )
   {
      var flashVersion =3D deconcept.SWFObjectUtil.getPlayerVersion();
      var showUpgradeNotice =3D true;                                    =
   =20

      if ( flashVersion.major > major )
      {
         showUpgradeNotice =3D false;
      }
      else if ( flashVersion.major =3D=3D major )
      {
         if ( flashVersion.minor > minor )
         {
            showUpgradeNotice =3D false;
         }
         else if ( flashVersion.minor =3D=3D minor )
         {
            if ( flashVersion.rev >=3D rev )
            {
               showUpgradeNotice =3D false;
            }
         }
      }      =20
                            =20
      if ( showUpgradeNotice )
      {
         return needsUpgrade;
      }    =20
   }
   // Display the flash player required message in this condition
   else
   {
      return noFlash;
   }
}


------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/view.js

=EF=BB=BF// JScript File
function onClickComments()
{
   //Because of how tabs are hidden and shown, the only one that we
   //know will exist is the media details tab.  Everything else might
   //not exist, so they're in a try/catch to not throw an exception
   document.getElementById("mediaDetailsArea").style.display=3D"none";
   =
document.getElementById("mediaDetailsTab").className=3D"tabUnselected";
  =20
   try
   {
      =
document.getElementById("mediaCommentsArea").style.display=3D"block";
      document.getElementById("commentsTab").className=3D"tabSelected";
   }
   catch(e)
   {
   }
  =20
   try
   {
      =
document.getElementById("shareThisMediaArea").style.display=3D"none";
      =
document.getElementById("shareThisMediaTab").className=3D"tabUnselected";=

   }=20
   catch(e)
   {
   }
  =20
   try
   {
      document.getElementById("emailArea").style.display=3D"none";
      document.getElementById("emailTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
  =20
   try=20
   {
       =
document.getElementById("attachmentsArea").style.display=3D"none";
       =
document.getElementById("attachmentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }=20
}

function onClickMediaDetails()
{
   //Because of how tabs are hidden and shown, the only one that we
   //know will exist is the media details tab.  Everything else might
   //not exist, so they're in a try/catch to not throw an exception
   document.getElementById("mediaDetailsArea").style.display=3D"block";
   document.getElementById("mediaDetailsTab").className=3D"tabSelected";
  =20
   try
   {
      =
document.getElementById("mediaCommentsArea").style.display=3D"none";
      =
document.getElementById("commentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
  =20
   try
   {
      =
document.getElementById("shareThisMediaArea").style.display=3D"none";
      =
document.getElementById("shareThisMediaTab").className=3D"tabUnselected";=

   }=20
   catch(e)
   {
   }
  =20
   try
   {
      document.getElementById("emailArea").style.display=3D"none";
      document.getElementById("emailTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
  =20
   try=20
   {
       =
document.getElementById("attachmentsArea").style.display=3D"none";
       =
document.getElementById("attachmentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }=20
}
        =20
function onClickShare()
{
   //Because of how tabs are hidden and shown, the only one that we
   //know will exist is the media details tab.  Everything else might
   //not exist, so they're in a try/catch to not throw an exception
   document.getElementById("mediaDetailsArea").style.display=3D"none";
   =
document.getElementById("mediaDetailsTab").className=3D"tabUnselected";
  =20
   try
   {
      =
document.getElementById("mediaCommentsArea").style.display=3D"none";
      =
document.getElementById("commentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
  =20
   try
   {
      =
document.getElementById("shareThisMediaArea").style.display=3D"block";
      =
document.getElementById("shareThisMediaTab").className=3D"tabSelected";
   }
   catch(e)
   {
   }
  =20
   try
   {
      document.getElementById("emailArea").style.display=3D"none";
      document.getElementById("emailTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
           =20
   try
   {
       =
document.getElementById("attachmentsArea").style.display=3D"none";
       =
document.getElementById("attachmentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
}
        =20
function onClickEmail()
{
   //Because of how tabs are hidden and shown, the only one that we
   //know will exist is the media details tab.  Everything else might
   //not exist, so they're in a try/catch to not throw an exception
   document.getElementById("mediaDetailsArea").style.display=3D"none";
   =
document.getElementById("mediaDetailsTab").className=3D"tabUnselected";
  =20
   try
   {
      =
document.getElementById("mediaCommentsArea").style.display=3D"none";
      =
document.getElementById("commentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
  =20
   try
   {
      =
document.getElementById("shareThisMediaArea").style.display=3D"none";
      =
document.getElementById("shareThisMediaTab").className=3D"tabUnselected";=

   }
   catch(e)
   {
   }
  =20
   try
   {
      document.getElementById("emailArea").style.display=3D"block";      =
    =20
      document.getElementById("emailTab").className=3D"tabSelected";
   }
   catch(e)
   {
   }
          =20
   try
   {
      =
document.getElementById("attachmentsTab").className=3D"tabUnselected";
      document.getElementById("attachmentsArea").style.display=3D"none";
   }
   catch(e)
   {
   }
}
        =20
function onClickAttachments()
{
   //Because of how tabs are hidden and shown, the only one that we
   //know will exist is the media details tab.  Everything else might
   //not exist, so they're in a try/catch to not throw an exception
   document.getElementById("attachmentsWaiting").style.display=3D"none";
   document.getElementById("mediaDetailsArea").style.display=3D"none";
   =
document.getElementById("mediaDetailsTab").className=3D"tabUnselected";
  =20
   try
   {
      =
document.getElementById("mediaCommentsArea").style.display=3D"none";
      =
document.getElementById("commentsTab").className=3D"tabUnselected";
   }
   catch(e)
   {
   }
        =20
   try
   {
      =
document.getElementById("shareThisMediaTab").className=3D"tabUnselected";=

      =
document.getElementById("shareThisMediaArea").style.display=3D"none";
   }
   catch(e)
   {
   }
  =20
   try
   {
      document.getElementById("emailTab").className=3D"tabUnselected"; =20
      document.getElementById("emailArea").style.display=3D"none";
   }
   catch(e)
   {
   }
  =20
   try
   {
      =
document.getElementById("attachmentsArea").style.display=3D"block";
      =
document.getElementById("attachmentsTab").className=3D"tabSelected";
   }
   catch(e)
   {
   }
}

function viewSetup()
{
   try
   {
      document.getElementById('attachmentsWaiting').style.display =3D =
'none';
   }
   catch(e)
   {
   }
}

function showCommentOptions()
{
   document.getElementById("commentOptionsPopup").style.display =3D =
"block";
   document.getElementById("commentOptionsLabel").className =3D =
"commentOptionsSelected";
}

function hideCommentOptions()
{
   document.getElementById("commentOptionsPopup").style.display =3D =
"none";
   document.getElementById("commentOptionsLabel").className =3D "";
} 
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/lib/prototype/prototype.js

/*  Prototype JavaScript framework, version 1.5.0=0A=
 *  (c) 2005-2007 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://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.5.0',=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate=0A=
  },=0A=
=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=0A=
  emptyFunction: function() {},=0A=
  K: function(x) { return x }=0A=
}=0A=
=0A=
var Class =3D {=0A=
  create: function() {=0A=
    return function() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
var Abstract =3D new Object();=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (var property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (object =3D=3D=3D undefined) return 'undefined';=0A=
      if (object =3D=3D=3D null) return 'null';=0A=
      return object.inspect ? object.inspect() : object.toString();=0A=
    } catch (e) {=0A=
      if (e instanceof RangeError) return '...';=0A=
      throw e;=0A=
    }=0A=
  },=0A=
=0A=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({}, object);=0A=
  }=0A=
});=0A=
=0A=
Function.prototype.bind =3D function() {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function() {=0A=
    return __method.apply(object, args.concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bindAsEventListener =3D function(object) {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function(event) {=0A=
    return __method.apply(object, [( event || =
window.event)].concat(args).concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    var digits =3D this.toString(16);=0A=
    if (this < 16) return '0' + digits;=0A=
    return digits;=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  }=0A=
});=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0, 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=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create();=0A=
PeriodicalExecuter.prototype =3D {=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback(this);=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
String.interpret =3D function(value){=0A=
  return value =3D=3D null ? '' : String(value);=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 count =3D=3D=3D undefined ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : this;=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(function(script) { return =
eval(script) });=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    var text =3D document.createTextNode(this);=0A=
    div.appendChild(text);=0A=
    return div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? (div.childNodes.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 name =3D decodeURIComponent(pair[0]);=0A=
        var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A=
=0A=
        if (hash[name] !=3D=3D undefined) {=0A=
          if (hash[name].constructor !=3D Array)=0A=
            hash[name] =3D [hash[name]];=0A=
          if (value) hash[name].push(value);=0A=
        }=0A=
        else hash[name] =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=
  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.replace(/\\/g, '\\\\');=0A=
    if (useDoubleQuotes)=0A=
      return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A=
    else=0A=
      return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (typeof replacement =3D=3D 'function') return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
}=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var Template =3D Class.create();=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
Template.prototype =3D {=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern  =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      var before =3D match[1];=0A=
      if (before =3D=3D '\\') return match[2];=0A=
      return before + String.interpret(object[match[3]]);=0A=
    });=0A=
  }=0A=
}=0A=
=0A=
var $break    =3D new Object();=0A=
var $continue =3D new Object();=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator) {=0A=
    var index =3D 0;=0A=
    try {=0A=
      this._each(function(value) {=0A=
        try {=0A=
          iterator(value, index++);=0A=
        } catch (e) {=0A=
          if (e !=3D $continue) throw e;=0A=
        }=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator) {=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.map(iterator);=0A=
  },=0A=
=0A=
  all: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!(iterator || Prototype.K)(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator) {=0A=
    var result =3D false;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!(iterator || Prototype.K)(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push((iterator || Prototype.K)(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(pattern, iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      var stringValue =3D value.toString();=0A=
      if (stringValue.match(pattern))=0A=
        results.push((iterator || Prototype.K)(value, index));=0A=
    })=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D fillWith =3D=3D=3D undefined ? 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) {=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) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (result =3D=3D undefined || value >=3D result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (result =3D=3D undefined || value < result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator) {=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      ((iterator || Prototype.K)(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator) {=0A=
    return this.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 (typeof args.last() =3D=3D 'function')=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      return iterator(collections.pluck(index));=0A=
    });=0A=
  },=0A=
=0A=
  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=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray=0A=
});=0A=
var $A =3D Array.from =3D function(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) {=0A=
    return iterable.toArray();=0A=
  } else {=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D iterable.length; i < length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse)=0A=
  Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value && value.constructor =3D=3D Array ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  indexOf: function(object) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      if (this[i] =3D=3D object) return i;=0A=
    return -1;=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.include(value) ? array : array.concat([value]);=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
=0A=
function $w(string){=0A=
  string =3D string.strip();=0A=
  return string ? string.split(/\s+/) : [];=0A=
}=0A=
=0A=
if(window.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(arguments[i].constructor =3D=3D Array) {=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=
var Hash =3D function(obj) {=0A=
  Object.extend(this, obj || {});=0A=
};=0A=
=0A=
Object.extend(Hash, {=0A=
  toQueryString: function(obj) {=0A=
    var parts =3D [];=0A=
=0A=
	  this.prototype._each.call(obj, function(pair) {=0A=
      if (!pair.key) return;=0A=
=0A=
      if (pair.value && pair.value.constructor =3D=3D Array) {=0A=
        var values =3D pair.value.compact();=0A=
        if (values.length < 2) pair.value =3D values.reduce();=0A=
        else {=0A=
        	key =3D encodeURIComponent(pair.key);=0A=
          values.each(function(value) {=0A=
            value =3D value !=3D undefined ? encodeURIComponent(value) : =
'';=0A=
            parts.push(key + '=3D' + encodeURIComponent(value));=0A=
          });=0A=
          return;=0A=
        }=0A=
      }=0A=
      if (pair.value =3D=3D undefined) pair[1] =3D '';=0A=
      parts.push(pair.map(encodeURIComponent).join('=3D'));=0A=
	  });=0A=
=0A=
    return parts.join('&');=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Hash.prototype, Enumerable);=0A=
Object.extend(Hash.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var key in this) {=0A=
      var value =3D this[key];=0A=
      if (value && value =3D=3D Hash.prototype[key]) continue;=0A=
=0A=
      var pair =3D [key, value];=0A=
      pair.key =3D key;=0A=
      pair.value =3D value;=0A=
      iterator(pair);=0A=
    }=0A=
  },=0A=
=0A=
  keys: function() {=0A=
    return this.pluck('key');=0A=
  },=0A=
=0A=
  values: function() {=0A=
    return this.pluck('value');=0A=
  },=0A=
=0A=
  merge: function(hash) {=0A=
    return $H(hash).inject(this, function(mergedHash, pair) {=0A=
      mergedHash[pair.key] =3D pair.value;=0A=
      return mergedHash;=0A=
    });=0A=
  },=0A=
=0A=
  remove: function() {=0A=
    var result;=0A=
    for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var value =3D this[arguments[i]];=0A=
      if (value !=3D=3D undefined){=0A=
        if (result =3D=3D=3D undefined) result =3D value;=0A=
        else {=0A=
          if (result.constructor !=3D Array) result =3D [result];=0A=
          result.push(value)=0A=
        }=0A=
      }=0A=
      delete this[arguments[i]];=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  toQueryString: function() {=0A=
    return Hash.toQueryString(this);=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Hash:{' + this.map(function(pair) {=0A=
      return pair.map(Object.inspect).join(': ');=0A=
    }).join(', ') + '}>';=0A=
  }=0A=
});=0A=
=0A=
function $H(object) {=0A=
  if (object && object.constructor =3D=3D Hash) return object;=0A=
  return new Hash(object);=0A=
};=0A=
ObjectRange =3D Class.create();=0A=
Object.extend(ObjectRange.prototype, Enumerable);=0A=
Object.extend(ObjectRange.prototype, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
}=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
}=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (typeof responder[callback] =3D=3D 'function') {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) {}=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate: function() {=0A=
    Ajax.activeRequestCount++;=0A=
  },=0A=
  onComplete: function() {=0A=
    Ajax.activeRequestCount--;=0A=
  }=0A=
});=0A=
=0A=
Ajax.Base =3D function() {};=0A=
Ajax.Base.prototype =3D {=0A=
  setOptions: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
    if (typeof this.options.parameters =3D=3D 'string')=0A=
      this.options.parameters =3D =
this.options.parameters.toQueryParams();=0A=
  }=0A=
}=0A=
=0A=
Ajax.Request =3D Class.create();=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  _complete: false,=0A=
=0A=
  initialize: function(url, options) {=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    this.url =3D url;=0A=
    this.method =3D this.options.method;=0A=
    var params =3D 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=
    params =3D Hash.toQueryString(params);=0A=
    if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) =
params +=3D '&_=3D'=0A=
=0A=
    // when GET, append parameters to URL=0A=
    if (this.method =3D=3D 'get' && params)=0A=
      this.url +=3D (this.url.indexOf('?') > -1 ? '&' : '?') + params;=0A=
=0A=
    try {=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous)=0A=
        setTimeout(function() { this.respondToReadyState(1) =
}.bind(this), 10);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.method =3D=3D 'post' ? (this.options.postBody || =
params) : null;=0A=
=0A=
      this.transport.send(body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
=0A=
    }=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 (typeof extras.push =3D=3D 'function')=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=
    return !this.transport.status=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        this._complete =3D true;=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      if ((this.getHeader('Content-type') || 'text/javascript').strip().=0A=
        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A=
          this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + state, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      var json =3D this.getHeader('X-JSON');=0A=
      return json ? eval('(' + json + ')') : null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create();=0A=
=0A=
Object.extend(Object.extend(Ajax.Updater.prototype, =
Ajax.Request.prototype), {=0A=
  initialize: function(container, url, options) {=0A=
    this.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (container.success ? null : =
container))=0A=
    }=0A=
=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
=0A=
    var onComplete =3D this.options.onComplete || =
Prototype.emptyFunction;=0A=
    this.options.onComplete =3D (function(transport, param) {=0A=
      this.updateContent();=0A=
      onComplete(transport, param);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'];=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts) response =3D response.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (this.options.insertion)=0A=
        new this.options.insertion(receiver, response);=0A=
      else=0A=
        receiver.update(response);=0A=
    }=0A=
=0A=
    if (this.success()) {=0A=
      if (this.onComplete)=0A=
        setTimeout(this.onComplete.bind(this), 10);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create();=0A=
Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(container, url, options) {=0A=
    this.setOptions(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D {};=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.options.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(request) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (request.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D request.responseText;=0A=
    }=0A=
    this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A=
      this.decay * this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (typeof element =3D=3D 'string')=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A=
      results.push(query.snapshotItem(i));=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  if (Prototype.BrowserFeatures.XPath) {=0A=
    var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + =
" ')]";=0A=
    return document._getElementsByXPath(q, parentElement);=0A=
  } else {=0A=
    var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
    var elements =3D [], child;=0A=
    for (var i =3D 0, length =3D children.length; i < length; i++) {=0A=
      child =3D children[i];=0A=
      if (Element.hasClassName(child, className))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element)=0A=
  var Element =3D new Object();=0A=
=0A=
Element.extend =3D function(element) {=0A=
  if (!element || _nativeExtensions || element.nodeType =3D=3D 3) return =
element;=0A=
=0A=
  if (!element._extended && element.tagName && element !=3D window) {=0A=
    var methods =3D Object.clone(Element.Methods), cache =3D =
Element.extend.cache;=0A=
=0A=
    if (element.tagName =3D=3D 'FORM')=0A=
      Object.extend(methods, Form.Methods);=0A=
    if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A=
      Object.extend(methods, Form.Element.Methods);=0A=
=0A=
    Object.extend(methods, Element.Methods.Simulated);=0A=
=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (typeof value =3D=3D 'function' && !(property in element))=0A=
        element[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  element._extended =3D true;=0A=
  return element;=0A=
};=0A=
=0A=
Element.extend.cache =3D {=0A=
  findOrStore: function(value) {=0A=
    return this[value] =3D this[value] || function() {=0A=
      return value.apply(null, [this].concat($A(arguments)));=0A=
    }=0A=
  }=0A=
};=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    if (element.outerHTML) {=0A=
      element.outerHTML =3D html.stripScripts();=0A=
    } else {=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNodeContents(element);=0A=
      element.parentNode.replaceChild(=0A=
        range.createContextualFragment(html.stripScripts()), element);=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    return $A($(element).getElementsByTagName('*'));=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 (typeof selector =3D=3D 'string')=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match($(element));=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    return Selector.findElement($(element).ancestors(), expression, =
index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    return Selector.findElement($(element).descendants(), expression, =
index);=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    return Selector.findElement($(element).previousSiblings(), =
expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    return Selector.findElement($(element).nextSiblings(), expression, =
index);=0A=
  },=0A=
=0A=
  getElementsBySelector: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  getElementsByClassName: function(element, className) {=0A=
    return document.getElementsByClassName(className, element);=0A=
  },=0A=
=0A=
  readAttribute: function(element, name) {=0A=
    element =3D $(element);=0A=
    if (document.all && !window.opera) {=0A=
      var t =3D Element._attributeTranslations;=0A=
      if (t.values[name]) return t.values[name](element, name);=0A=
      if (t.names[name])  name =3D t.names[name];=0A=
      var attribute =3D element.attributes[name];=0A=
      if(attribute) return attribute.nodeValue;=0A=
    }=0A=
    return element.getAttribute(name);=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=
    if (elementClassName.length =3D=3D 0) return false;=0A=
    if (elementClassName =3D=3D className ||=0A=
        elementClassName.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).add(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).remove(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  toggleClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element)[element.hasClassName(className) ? =
'remove' : 'add'](className);=0A=
    return element;=0A=
  },=0A=
=0A=
  observe: function() {=0A=
    Event.observe.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  stopObserving: function() {=0A=
    Event.stopObserving.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  descendantOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D ancestor) return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Position.cumulativeOffset(element);=0A=
    window.scrollTo(pos[0], pos[1]);=0A=
    return element;=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    if (['float','cssFloat'].include(style))=0A=
      style =3D (typeof element.style.styleFloat !=3D 'undefined' ? =
'styleFloat' : 'cssFloat');=0A=
    style =3D style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value) {=0A=
      if (document.defaultView && document.defaultView.getComputedStyle) =
{=0A=
        var css =3D document.defaultView.getComputedStyle(element, null);=0A=
        value =3D css ? css[style] : null;=0A=
      } else if (element.currentStyle) {=0A=
        value =3D element.currentStyle[style];=0A=
      }=0A=
    }=0A=
=0A=
    if((value =3D=3D 'auto') && ['width','height'].include(style) && =
(element.getStyle('display') !=3D 'none'))=0A=
      value =3D element['offset'+style.capitalize()] + 'px';=0A=
=0A=
    if (window.opera && ['left', 'top', 'right', =
'bottom'].include(style))=0A=
      if (Element.getStyle(element, 'position') =3D=3D 'static') value =
=3D 'auto';=0A=
    if(style =3D=3D 'opacity') {=0A=
      if(value) return parseFloat(value);=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=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  setStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    for (var name in style) {=0A=
      var value =3D style[name];=0A=
      if(name =3D=3D 'opacity') {=0A=
        if (value =3D=3D 1) {=0A=
          value =3D (/Gecko/.test(navigator.userAgent) &&=0A=
            !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =
0.999999 : 1.0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else if(value =3D=3D=3D '') {=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A=
        } else {=0A=
          if(value < 0.00001) value =3D 0;=0A=
          if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A=
            element.style.filter =3D =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A=
              'alpha(opacity=3D'+value*100+')';=0A=
        }=0A=
      } else if(['float','cssFloat'].include(name)) name =3D (typeof =
element.style.styleFloat !=3D 'undefined') ? 'styleFloat' : 'cssFloat';=0A=
      element.style[name.camelize()] =3D value;=0A=
    }=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.style.overflow || 'auto';=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});=0A=
=0A=
Element._attributeTranslations =3D {};=0A=
=0A=
Element._attributeTranslations.names =3D {=0A=
  colspan:   "colSpan",=0A=
  rowspan:   "rowSpan",=0A=
  valign:    "vAlign",=0A=
  datetime:  "dateTime",=0A=
  accesskey: "accessKey",=0A=
  tabindex:  "tabIndex",=0A=
  enctype:   "encType",=0A=
  maxlength: "maxLength",=0A=
  readonly:  "readOnly",=0A=
  longdesc:  "longDesc"=0A=
};=0A=
=0A=
Element._attributeTranslations.values =3D {=0A=
  _getAttr: function(element, attribute) {=0A=
    return element.getAttribute(attribute, 2);=0A=
  },=0A=
=0A=
  _flag: function(element, attribute) {=0A=
    return $(element).hasAttribute(attribute) ? attribute : null;=0A=
  },=0A=
=0A=
  style: function(element) {=0A=
    return element.style.cssText.toLowerCase();=0A=
  },=0A=
=0A=
  title: function(element) {=0A=
    var node =3D element.getAttributeNode('title');=0A=
    return node.specified ? node.nodeValue : null;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element._attributeTranslations.values, {=0A=
  href: Element._attributeTranslations.values._getAttr,=0A=
  src:  Element._attributeTranslations.values._getAttr,=0A=
  disabled: Element._attributeTranslations.values._flag,=0A=
  checked:  Element._attributeTranslations.values._flag,=0A=
  readonly: Element._attributeTranslations.values._flag,=0A=
  multiple: Element._attributeTranslations.values._flag=0A=
});=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    var t =3D Element._attributeTranslations;=0A=
    attribute =3D t.names[attribute] || attribute;=0A=
    return $(element).getAttributeNode(attribute).specified;=0A=
  }=0A=
};=0A=
=0A=
// IE is missing .innerHTML support for TABLE-related elements=0A=
if (document.all && !window.opera){=0A=
  Element.Methods.update =3D function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
    if (['THEAD','TBODY','TR','TD'].include(tagName)) {=0A=
      var div =3D document.createElement('div');=0A=
      switch (tagName) {=0A=
        case 'THEAD':=0A=
        case 'TBODY':=0A=
          div.innerHTML =3D '<table><tbody>' +  html.stripScripts() + =
'</tbody></table>';=0A=
          depth =3D 2;=0A=
          break;=0A=
        case 'TR':=0A=
          div.innerHTML =3D '<table><tbody><tr>' +  html.stripScripts() =
+ '</tr></tbody></table>';=0A=
          depth =3D 3;=0A=
          break;=0A=
        case 'TD':=0A=
          div.innerHTML =3D '<table><tbody><tr><td>' +  =
html.stripScripts() + '</td></tr></tbody></table>';=0A=
          depth =3D 4;=0A=
      }=0A=
      $A(element.childNodes).each(function(node){=0A=
        element.removeChild(node)=0A=
      });=0A=
      depth.times(function(){ div =3D div.firstChild });=0A=
=0A=
      $A(div.childNodes).each(=0A=
        function(node){ element.appendChild(node) });=0A=
    } else {=0A=
      element.innerHTML =3D html.stripScripts();=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
var _nativeExtensions =3D false;=0A=
=0A=
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A=
    var className =3D 'HTML' + tag + 'Element';=0A=
    if(window[className]) return;=0A=
    var klass =3D window[className] =3D {};=0A=
    klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : =
'div').__proto__;=0A=
  });=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  Object.extend(Element.Methods, methods || {});=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    var cache =3D Element.extend.cache;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  if (typeof HTMLElement !=3D 'undefined') {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
    copy(Form.Methods, HTMLFormElement.prototype);=0A=
    [HTMLInputElement, HTMLTextAreaElement, =
HTMLSelectElement].each(function(klass) {=0A=
      copy(Form.Element.Methods, klass.prototype);=0A=
    });=0A=
    _nativeExtensions =3D true;=0A=
  }=0A=
}=0A=
=0A=
var Toggle =3D new Object();=0A=
Toggle.display =3D Element.toggle;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.Insertion =3D function(adjacency) {=0A=
  this.adjacency =3D adjacency;=0A=
}=0A=
=0A=
Abstract.Insertion.prototype =3D {=0A=
  initialize: function(element, content) {=0A=
    this.element =3D $(element);=0A=
    this.content =3D content.stripScripts();=0A=
=0A=
    if (this.adjacency && this.element.insertAdjacentHTML) {=0A=
      try {=0A=
        this.element.insertAdjacentHTML(this.adjacency, this.content);=0A=
      } catch (e) {=0A=
        var tagName =3D this.element.tagName.toUpperCase();=0A=
        if (['TBODY', 'TR'].include(tagName)) {=0A=
          this.insertContent(this.contentFromAnonymousTable());=0A=
        } else {=0A=
          throw e;=0A=
        }=0A=
      }=0A=
    } else {=0A=
      this.range =3D this.element.ownerDocument.createRange();=0A=
      if (this.initializeRange) this.initializeRange();=0A=
      =
this.insertContent([this.range.createContextualFragment(this.content)]);=0A=
    }=0A=
=0A=
    setTimeout(function() {content.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  contentFromAnonymousTable: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D '<table><tbody>' + this.content + =
'</tbody></table>';=0A=
    return $A(div.childNodes[0].childNodes[0].childNodes);=0A=
  }=0A=
}=0A=
=0A=
var Insertion =3D new Object();=0A=
=0A=
Insertion.Before =3D Class.create();=0A=
Insertion.Before.prototype =3D Object.extend(new =
Abstract.Insertion('beforeBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartBefore(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment, this.element);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Top =3D Class.create();=0A=
Insertion.Top.prototype =3D Object.extend(new =
Abstract.Insertion('afterBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(true);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.reverse(false).each((function(fragment) {=0A=
      this.element.insertBefore(fragment, this.element.firstChild);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Bottom =3D Class.create();=0A=
Insertion.Bottom.prototype =3D Object.extend(new =
Abstract.Insertion('beforeEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.appendChild(fragment);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.After =3D Class.create();=0A=
Insertion.After.prototype =3D Object.extend(new =
Abstract.Insertion('afterEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartAfter(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment,=0A=
        this.element.nextSibling);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Selector =3D Class.create();=0A=
Selector.prototype =3D {=0A=
  initialize: function(expression) {=0A=
    this.params =3D {classNames: []};=0A=
    this.expression =3D expression.toString().strip();=0A=
    this.parseExpression();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  parseExpression: function() {=0A=
    function abort(message) { throw 'Parse error in selector: ' + =
message; }=0A=
=0A=
    if (this.expression =3D=3D '')  abort('empty expression');=0A=
=0A=
    var params =3D this.params, expr =3D this.expression, match, =
modifier, clause, rest;=0A=
    while (match =3D =
expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))=
)?\]$/i)) {=0A=
      params.attributes =3D params.attributes || [];=0A=
      params.attributes.push({name: match[2], operator: match[3], value: =
match[4] || match[5] || ''});=0A=
      expr =3D match[1];=0A=
    }=0A=
=0A=
    if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A=
=0A=
    while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A=
      modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A=
      switch (modifier) {=0A=
        case '#':       params.id =3D clause; break;=0A=
        case '.':       params.classNames.push(clause); break;=0A=
        case '':=0A=
        case undefined: params.tagName =3D clause.toUpperCase(); break;=0A=
        default:        abort(expr.inspect());=0A=
      }=0A=
      expr =3D rest;=0A=
    }=0A=
=0A=
    if (expr.length > 0) abort(expr.inspect());=0A=
  },=0A=
=0A=
  buildMatchExpression: function() {=0A=
    var params =3D this.params, conditions =3D [], clause;=0A=
=0A=
    if (params.wildcard)=0A=
      conditions.push('true');=0A=
    if (clause =3D params.id)=0A=
      conditions.push('element.readAttribute("id") =3D=3D ' + =
clause.inspect());=0A=
    if (clause =3D params.tagName)=0A=
      conditions.push('element.tagName.toUpperCase() =3D=3D ' + =
clause.inspect());=0A=
    if ((clause =3D params.classNames).length > 0)=0A=
      for (var i =3D 0, length =3D clause.length; i < length; i++)=0A=
        conditions.push('element.hasClassName(' + clause[i].inspect() + =
')');=0A=
    if (clause =3D params.attributes) {=0A=
      clause.each(function(attribute) {=0A=
        var value =3D 'element.readAttribute(' + =
attribute.name.inspect() + ')';=0A=
        var splitValueBy =3D function(delimiter) {=0A=
          return value + ' && ' + value + '.split(' + =
delimiter.inspect() + ')';=0A=
        }=0A=
=0A=
        switch (attribute.operator) {=0A=
          case '=3D':       conditions.push(value + ' =3D=3D ' + =
attribute.value.inspect()); break;=0A=
          case '~=3D':      conditions.push(splitValueBy(' ') + =
'.include(' + attribute.value.inspect() + ')'); break;=0A=
          case '|=3D':      conditions.push(=0A=
                            splitValueBy('-') + '.first().toUpperCase() =
=3D=3D ' + attribute.value.toUpperCase().inspect()=0A=
                          ); break;=0A=
          case '!=3D':      conditions.push(value + ' !=3D ' + =
attribute.value.inspect()); break;=0A=
          case '':=0A=
          case undefined: conditions.push('element.hasAttribute(' + =
attribute.name.inspect() + ')'); break;=0A=
          default:        throw 'Unknown operator ' + attribute.operator =
+ ' in selector';=0A=
        }=0A=
      });=0A=
    }=0A=
=0A=
    return conditions.join(' && ');=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    this.match =3D new Function('element', 'if (!element.tagName) return =
false; \=0A=
      element =3D $(element); \=0A=
      return ' + this.buildMatchExpression());=0A=
  },=0A=
=0A=
  findElements: function(scope) {=0A=
    var element;=0A=
=0A=
    if (element =3D $(this.params.id))=0A=
      if (this.match(element))=0A=
        if (!scope || Element.childOf(element, scope))=0A=
          return [element];=0A=
=0A=
    scope =3D (scope || =
document).getElementsByTagName(this.params.tagName || '*');=0A=
=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D scope.length; i < length; i++)=0A=
      if (this.match(element =3D scope[i]))=0A=
        results.push(Element.extend(element));=0A=
=0A=
    return results;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Selector, {=0A=
  matchElements: function(elements, expression) {=0A=
    var selector =3D new Selector(expression);=0A=
    return =
elements.select(selector.match.bind(selector)).map(Element.extend);=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (typeof expression =3D=3D 'number') index =3D expression, =
expression =3D false;=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    return expressions.map(function(expression) {=0A=
      return =
expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], =
function(results, expr) {=0A=
        var selector =3D new Selector(expr);=0A=
        return results.inject([], function(elements, result) {=0A=
          return elements.concat(selector.findElements(result || =
element));=0A=
        });=0A=
      });=0A=
    }).flatten();=0A=
  }=0A=
});=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements, getHash) {=0A=
    var data =3D elements.inject({}, function(result, element) {=0A=
      if (!element.disabled && element.name) {=0A=
        var key =3D element.name, value =3D $(element).getValue();=0A=
        if (value !=3D undefined) {=0A=
          if (result[key]) {=0A=
            if (result[key].constructor !=3D Array) 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 getHash ? data : Hash.toQueryString(data);=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form, getHash) {=0A=
    return Form.serializeElements(Form.getElements(form), getHash);=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().each(function(element) {=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.disabled =3D '';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return $(form).getElements().find(function(element) {=0A=
      return element.type !=3D 'hidden' && !element.disabled &&=0A=
        ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form, Form.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element.disabled && 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 Hash.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=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select && ( element.tagName.toLowerCase() !=3D 'input' ||=0A=
      !['button', 'reset', 'submit'].include(element.type) ) )=0A=
      element.select();=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form.Element, Form.Element.Methods);=0A=
var Field =3D Form.Element;=0A=
var $F =3D Form.Element.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(element);=0A=
    }=0A=
  },=0A=
=0A=
  inputSelector: function(element) {=0A=
    return element.checked ? element.value : null;=0A=
  },=0A=
=0A=
  textarea: function(element) {=0A=
    return element.value;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    return this[element.type =3D=3D 'select-one' ?=0A=
      'selectOne' : 'selectMany'](element);=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 function() {}=0A=
Abstract.TimedObserver.prototype =3D {=0A=
  initialize: function(element, frequency, callback) {=0A=
    this.frequency =3D frequency;=0A=
    this.element   =3D $(element);=0A=
    this.callback  =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' =
=3D=3D typeof value=0A=
      ? this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value));=0A=
    if (changed) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Observer =3D Class.create();=0A=
Form.Element.Observer.prototype =3D Object.extend(new =
Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create();=0A=
Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D function() {}=0A=
Abstract.EventObserver.prototype =3D {=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    =
Form.getElements(this.element).each(this.registerCallback.bind(this));=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        default:=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.EventObserver =3D Class.create();=0A=
Form.Element.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create();=0A=
Form.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) {=0A=
  var Event =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=0A=
=0A=
  element: function(event) {=0A=
    return event.target || event.srcElement;=0A=
  },=0A=
=0A=
  isLeftClick: function(event) {=0A=
    return (((event.which) && (event.which =3D=3D 1)) ||=0A=
            ((event.button) && (event.button =3D=3D 1)));=0A=
  },=0A=
=0A=
  pointerX: function(event) {=0A=
    return event.pageX || (event.clientX +=0A=
      (document.documentElement.scrollLeft || document.body.scrollLeft));=0A=
  },=0A=
=0A=
  pointerY: function(event) {=0A=
    return event.pageY || (event.clientY +=0A=
      (document.documentElement.scrollTop || document.body.scrollTop));=0A=
  },=0A=
=0A=
  stop: function(event) {=0A=
    if (event.preventDefault) {=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
    } else {=0A=
      event.returnValue =3D false;=0A=
      event.cancelBubble =3D true;=0A=
    }=0A=
  },=0A=
=0A=
  // find the first node with the given tagName, starting from the=0A=
  // node the event was triggered on; traverses the DOM upwards=0A=
  findElement: function(event, tagName) {=0A=
    var element =3D Event.element(event);=0A=
    while (element.parentNode && (!element.tagName ||=0A=
        (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A=
      element =3D element.parentNode;=0A=
    return element;=0A=
  },=0A=
=0A=
  observers: false,=0A=
=0A=
  _observeAndCache: function(element, name, observer, useCapture) {=0A=
    if (!this.observers) this.observers =3D [];=0A=
    if (element.addEventListener) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.addEventListener(name, observer, useCapture);=0A=
    } else if (element.attachEvent) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.attachEvent('on' + name, observer);=0A=
    }=0A=
  },=0A=
=0A=
  unloadCache: function() {=0A=
    if (!Event.observers) return;=0A=
    for (var i =3D 0, length =3D Event.observers.length; i < length; =
i++) {=0A=
      Event.stopObserving.apply(this, Event.observers[i]);=0A=
      Event.observers[i][0] =3D null;=0A=
    }=0A=
    Event.observers =3D false;=0A=
  },=0A=
=0A=
  observe: function(element, name, observer, useCapture) {=0A=
    element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.attachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    Event._observeAndCache(element, name, observer, useCapture);=0A=
  },=0A=
=0A=
  stopObserving: function(element, name, observer, useCapture) {=0A=
    element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.detachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    if (element.removeEventListener) {=0A=
      element.removeEventListener(name, observer, useCapture);=0A=
    } else if (element.detachEvent) {=0A=
      try {=0A=
        element.detachEvent('on' + name, observer);=0A=
      } catch (e) {}=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
/* prevent memory leaks in IE */=0A=
if (navigator.appVersion.match(/\bMSIE\b/))=0A=
  Event.observe(window, 'unload', Event.unloadCache, false);=0A=
var Position =3D {=0A=
  // set to true if needed, warning: firefox performance problems=0A=
  // NOT neeeded for page scrolling, only if draggable contained in=0A=
  // scrollable elements=0A=
  includeScrollOffsets: false,=0A=
=0A=
  // must be called before calling withinIncludingScrolloffset, every =
time the=0A=
  // page is scrolled=0A=
  prepare: function() {=0A=
    this.deltaX =3D  window.pageXOffset=0A=
                || document.documentElement.scrollLeft=0A=
                || document.body.scrollLeft=0A=
                || 0;=0A=
    this.deltaY =3D  window.pageYOffset=0A=
                || document.documentElement.scrollTop=0A=
                || document.body.scrollTop=0A=
                || 0;=0A=
  },=0A=
=0A=
  realOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.scrollTop  || 0;=0A=
      valueL +=3D element.scrollLeft || 0;=0A=
      element =3D element.parentNode;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  cumulativeOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  positionedOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
      if (element) {=0A=
        if(element.tagName=3D=3D'BODY') break;=0A=
        var p =3D Element.getStyle(element, 'position');=0A=
        if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A=
      }=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  offsetParent: function(element) {=0A=
    if (element.offsetParent) return element.offsetParent;=0A=
    if (element =3D=3D document.body) return element;=0A=
=0A=
    while ((element =3D element.parentNode) && element !=3D =
document.body)=0A=
      if (Element.getStyle(element, 'position') !=3D 'static')=0A=
        return element;=0A=
=0A=
    return document.body;=0A=
  },=0A=
=0A=
  // caches x/y coordinate pair to use with overlap=0A=
  within: function(element, x, y) {=0A=
    if (this.includeScrollOffsets)=0A=
      return this.withinIncludingScrolloffsets(element, x, y);=0A=
    this.xcomp =3D x;=0A=
    this.ycomp =3D y;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (y >=3D this.offset[1] &&=0A=
            y <  this.offset[1] + element.offsetHeight &&=0A=
            x >=3D this.offset[0] &&=0A=
            x <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  withinIncludingScrolloffsets: function(element, x, y) {=0A=
    var offsetcache =3D this.realOffset(element);=0A=
=0A=
    this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A=
    this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (this.ycomp >=3D this.offset[1] &&=0A=
            this.ycomp <  this.offset[1] + element.offsetHeight &&=0A=
            this.xcomp >=3D this.offset[0] &&=0A=
            this.xcomp <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  // within must be called directly before=0A=
  overlap: function(mode, element) {=0A=
    if (!mode) return 0;=0A=
    if (mode =3D=3D 'vertical')=0A=
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A=
        element.offsetHeight;=0A=
    if (mode =3D=3D 'horizontal')=0A=
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A=
        element.offsetWidth;=0A=
  },=0A=
=0A=
  page: function(forElement) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
=0A=
    var element =3D forElement;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
=0A=
      // Safari fix=0A=
      if (element.offsetParent=3D=3Ddocument.body)=0A=
        if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A=
=0A=
    } while (element =3D element.offsetParent);=0A=
=0A=
    element =3D forElement;=0A=
    do {=0A=
      if (!window.opera || element.tagName=3D=3D'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  clone: function(source, target) {=0A=
    var options =3D Object.extend({=0A=
      setLeft:    true,=0A=
      setTop:     true,=0A=
      setWidth:   true,=0A=
      setHeight:  true,=0A=
      offsetTop:  0,=0A=
      offsetLeft: 0=0A=
    }, arguments[2] || {})=0A=
=0A=
    // find page position of source=0A=
    source =3D $(source);=0A=
    var p =3D Position.page(source);=0A=
=0A=
    // find coordinate system to use=0A=
    target =3D $(target);=0A=
    var delta =3D [0, 0];=0A=
    var parent =3D null;=0A=
    // delta [0,0] will do fine with position: fixed elements,=0A=
    // position:absolute needs offsetParent deltas=0A=
    if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A=
      parent =3D Position.offsetParent(target);=0A=
      delta =3D Position.page(parent);=0A=
    }=0A=
=0A=
    // correct by body offsets (fixes Safari)=0A=
    if (parent =3D=3D document.body) {=0A=
      delta[0] -=3D document.body.offsetLeft;=0A=
      delta[1] -=3D document.body.offsetTop;=0A=
    }=0A=
=0A=
    // set position=0A=
    if(options.setLeft)   target.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';=0A=
    if(options.setTop)    target.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';=0A=
    if(options.setWidth)  target.style.width =3D source.offsetWidth + =
'px';=0A=
    if(options.setHeight) target.style.height =3D source.offsetHeight + =
'px';=0A=
  },=0A=
=0A=
  absolutize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'absolute') return;=0A=
    Position.prepare();=0A=
=0A=
    var offsets =3D Position.positionedOffset(element);=0A=
    var top     =3D offsets[1];=0A=
    var left    =3D offsets[0];=0A=
    var width   =3D element.clientWidth;=0A=
    var height  =3D element.clientHeight;=0A=
=0A=
    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);=0A=
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);=0A=
    element._originalWidth  =3D element.style.width;=0A=
    element._originalHeight =3D element.style.height;=0A=
=0A=
    element.style.position =3D 'absolute';=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.width  =3D width + 'px';=0A=
    element.style.height =3D height + 'px';=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'relative') return;=0A=
    Position.prepare();=0A=
=0A=
    element.style.position =3D 'relative';=0A=
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);=0A=
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);=0A=
=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.height =3D element._originalHeight;=0A=
    element.style.width  =3D element._originalWidth;=0A=
  }=0A=
}=0A=
=0A=
// Safari returns margins on body which is incorrect if the child is =
absolutely=0A=
// positioned.  For performance reasons, redefine =
Position.cumulativeOffset for=0A=
// KHTML/WebKit only.=0A=
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A=
  Position.cumulativeOffset =3D function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      if (element.offsetParent =3D=3D document.body)=0A=
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;=0A=
=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
=0A=
    return [valueL, valueT];=0A=
  }=0A=
}=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/lib/scriptaculous/scriptaculous.js?load=effects,builder,controls

// script.aculo.us scriptaculous.js v1.7.0, Fri Jan 19 19:16:36 CET 2007=0A=
=0A=
// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// =0A=
// Permission is hereby granted, free of charge, to any person obtaining=0A=
// a copy of this software and associated documentation files (the=0A=
// "Software"), to deal in the Software without restriction, including=0A=
// without limitation the rights to use, copy, modify, merge, publish,=0A=
// distribute, sublicense, and/or sell copies of the Software, and to=0A=
// permit persons to whom the Software is furnished to do so, subject to=0A=
// the following conditions:=0A=
// =0A=
// The above copyright notice and this permission notice shall be=0A=
// included in all copies or substantial portions of the Software.=0A=
//=0A=
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A=
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A=
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A=
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE=0A=
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION=0A=
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION=0A=
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A=
//=0A=
// For details, see the script.aculo.us web site: http://script.aculo.us/=0A=
=0A=
var Scriptaculous =3D {=0A=
  Version: '1.7.0',=0A=
  require: function(libraryName) {=0A=
    // inserting via DOM fails in Safari 2.0, so brute force approach=0A=
    document.write('<script type=3D"text/javascript" =
src=3D"'+libraryName+'"></script>');=0A=
  },=0A=
  load: function() {=0A=
    if((typeof Prototype=3D=3D'undefined') || =0A=
       (typeof Element =3D=3D 'undefined') || =0A=
       (typeof Element.Methods=3D=3D'undefined') ||=0A=
       parseFloat(Prototype.Version.split(".")[0] + "." +=0A=
                  Prototype.Version.split(".")[1]) < 1.5)=0A=
       throw("script.aculo.us requires the Prototype JavaScript =
framework >=3D 1.5.0");=0A=
    =0A=
    $A(document.getElementsByTagName("script")).findAll( function(s) {=0A=
      return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))=0A=
    }).each( function(s) {=0A=
      var path =3D s.src.replace(/scriptaculous\.js(\?.*)?$/,'');=0A=
      var includes =3D s.src.match(/\?.*load=3D([a-z,]*)/);=0A=
      (includes ? includes[1] : =
'builder,effects,dragdrop,controls,slider').split(',').each(=0A=
       function(include) { Scriptaculous.require(path+include+'.js') });=0A=
    });=0A=
  }=0A=
}=0A=
=0A=
Scriptaculous.load();
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/lib/jquery/jquery.js

// prevent execution of jQuery if included more than once=0A=
if(typeof window.jQuery =3D=3D "undefined") {=0A=
/*=0A=
 * jQuery 1.1.3.1 - New Wave Javascript=0A=
 *=0A=
 * Copyright (c) 2007 John Resig (jquery.com)=0A=
 * Dual licensed under the MIT (MIT-LICENSE.txt)=0A=
 * and GPL (GPL-LICENSE.txt) licenses.=0A=
 *=0A=
 * $Date: 2007-07-05 00:43:24 -0400 (Thu, 05 Jul 2007) $=0A=
 * $Rev: 2243 $=0A=
 */=0A=
=0A=
// Global undefined variable=0A=
window.undefined =3D window.undefined;=0A=
var jQuery =3D function(a,c) {=0A=
	// If the context is global, return a new object=0A=
	if ( window =3D=3D this || !this.init )=0A=
		return new jQuery(a,c);=0A=
	=0A=
	return this.init(a,c);=0A=
};=0A=
=0A=
// Map over the $ in case of overwrite=0A=
if ( typeof $ !=3D "undefined" )=0A=
	jQuery._$ =3D $;=0A=
	=0A=
// Map the jQuery namespace to the '$' one=0A=
var $ =3D jQuery;=0A=
=0A=
jQuery.fn =3D jQuery.prototype =3D {=0A=
	init: function(a,c) {=0A=
		// Make sure that a selection was provided=0A=
		a =3D a || document;=0A=
=0A=
		// HANDLE: $(function)=0A=
		// Shortcut for document ready=0A=
		if ( jQuery.isFunction(a) )=0A=
			return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a =
);=0A=
=0A=
		// Handle HTML strings=0A=
		if ( typeof a  =3D=3D "string" ) {=0A=
			// HANDLE: $(html) -> $(array)=0A=
			var m =3D /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a);=0A=
			if ( m )=0A=
				a =3D jQuery.clean( [ m[1] ] );=0A=
=0A=
			// HANDLE: $(expr)=0A=
			else=0A=
				return new jQuery( c ).find( a );=0A=
		}=0A=
=0A=
		return this.setArray(=0A=
			// HANDLE: $(array)=0A=
			a.constructor =3D=3D Array && a ||=0A=
=0A=
			// HANDLE: $(arraylike)=0A=
			// Watch for when an array-like object is passed as the selector=0A=
			(a.jquery || a.length && a !=3D window && !a.nodeType && a[0] !=3D =
undefined && a[0].nodeType) && jQuery.makeArray( a ) ||=0A=
=0A=
			// HANDLE: $(*)=0A=
			[ a ] );=0A=
	},=0A=
	jquery: "1.1.3.1",=0A=
=0A=
	size: function() {=0A=
		return this.length;=0A=
	},=0A=
	=0A=
	length: 0,=0A=
=0A=
	get: function( num ) {=0A=
		return num =3D=3D undefined ?=0A=
=0A=
			// Return a 'clean' array=0A=
			jQuery.makeArray( this ) :=0A=
=0A=
			// Return just the object=0A=
			this[num];=0A=
	},=0A=
	pushStack: function( a ) {=0A=
		var ret =3D jQuery(a);=0A=
		ret.prevObject =3D this;=0A=
		return ret;=0A=
	},=0A=
	setArray: function( a ) {=0A=
		this.length =3D 0;=0A=
		[].push.apply( this, a );=0A=
		return this;=0A=
	},=0A=
	each: function( fn, args ) {=0A=
		return jQuery.each( this, fn, args );=0A=
	},=0A=
	index: function( obj ) {=0A=
		var pos =3D -1;=0A=
		this.each(function(i){=0A=
			if ( this =3D=3D obj ) pos =3D i;=0A=
		});=0A=
		return pos;=0A=
	},=0A=
=0A=
	attr: function( key, value, type ) {=0A=
		var obj =3D key;=0A=
		=0A=
		// Look for the case where we're accessing a style value=0A=
		if ( key.constructor =3D=3D String )=0A=
			if ( value =3D=3D undefined )=0A=
				return this.length && jQuery[ type || "attr" ]( this[0], key ) || =
undefined;=0A=
			else {=0A=
				obj =3D {};=0A=
				obj[ key ] =3D value;=0A=
			}=0A=
		=0A=
		// Check to see if we're setting style values=0A=
		return this.each(function(index){=0A=
			// Set all the styles=0A=
			for ( var prop in obj )=0A=
				jQuery.attr(=0A=
					type ? this.style : this,=0A=
					prop, jQuery.prop(this, obj[prop], type, index, prop)=0A=
				);=0A=
		});=0A=
	},=0A=
=0A=
	css: function( key, value ) {=0A=
		return this.attr( key, value, "curCSS" );=0A=
	},=0A=
=0A=
	text: function(e) {=0A=
		if ( typeof e =3D=3D "string" )=0A=
			return this.empty().append( document.createTextNode( e ) );=0A=
=0A=
		var t =3D "";=0A=
		jQuery.each( e || this, function(){=0A=
			jQuery.each( this.childNodes, function(){=0A=
				if ( this.nodeType !=3D 8 )=0A=
					t +=3D this.nodeType !=3D 1 ?=0A=
						this.nodeValue : jQuery.fn.text([ this ]);=0A=
			});=0A=
		});=0A=
		return t;=0A=
	},=0A=
=0A=
	wrap: function() {=0A=
		// The elements to wrap the target around=0A=
		var a, args =3D arguments;=0A=
=0A=
		// Wrap each of the matched elements individually=0A=
		return this.each(function(){=0A=
			if ( !a )=0A=
				a =3D jQuery.clean(args, this.ownerDocument);=0A=
=0A=
			// Clone the structure that we're using to wrap=0A=
			var b =3D a[0].cloneNode(true);=0A=
=0A=
			// Insert it before the element to be wrapped=0A=
			this.parentNode.insertBefore( b, this );=0A=
=0A=
			// Find the deepest point in the wrap structure=0A=
			while ( b.firstChild )=0A=
				b =3D b.firstChild;=0A=
=0A=
			// Move the matched element to within the wrap structure=0A=
			b.appendChild( this );=0A=
		});=0A=
	},=0A=
	append: function() {=0A=
		return this.domManip(arguments, true, 1, function(a){=0A=
			this.appendChild( a );=0A=
		});=0A=
	},=0A=
	prepend: function() {=0A=
		return this.domManip(arguments, true, -1, function(a){=0A=
			this.insertBefore( a, this.firstChild );=0A=
		});=0A=
	},=0A=
	before: function() {=0A=
		return this.domManip(arguments, false, 1, function(a){=0A=
			this.parentNode.insertBefore( a, this );=0A=
		});=0A=
	},=0A=
	after: function() {=0A=
		return this.domManip(arguments, false, -1, function(a){=0A=
			this.parentNode.insertBefore( a, this.nextSibling );=0A=
		});=0A=
	},=0A=
	end: function() {=0A=
		return this.prevObject || jQuery([]);=0A=
	},=0A=
	find: function(t) {=0A=
		var data =3D jQuery.map(this, function(a){ return jQuery.find(t,a); });=0A=
		return this.pushStack( /[^+>] [^+>]/.test( t ) || t.indexOf("..") > -1 =
?=0A=
			jQuery.unique( data ) : data );=0A=
	},=0A=
	clone: function(deep) {=0A=
		// Need to remove events on the element and its descendants=0A=
		var $this =3D this.add(this.find("*"));=0A=
		$this.each(function() {=0A=
			this._$events =3D {};=0A=
			for (var type in this.$events)=0A=
				this._$events[type] =3D jQuery.extend({},this.$events[type]);=0A=
		}).unbind();=0A=
=0A=
		// Do the clone=0A=
		var r =3D this.pushStack( jQuery.map( this, function(a){=0A=
			return a.cloneNode( deep !=3D undefined ? deep : true );=0A=
		}) );=0A=
=0A=
		// Add the events back to the original and its descendants=0A=
		$this.each(function() {=0A=
			var events =3D this._$events;=0A=
			for (var type in events)=0A=
				for (var handler in events[type])=0A=
					jQuery.event.add(this, type, events[type][handler], =
events[type][handler].data);=0A=
			this._$events =3D null;=0A=
		});=0A=
=0A=
		// Return the cloned set=0A=
		return r;=0A=
	},=0A=
=0A=
	filter: function(t) {=0A=
		return this.pushStack(=0A=
			jQuery.isFunction( t ) &&=0A=
			jQuery.grep(this, function(el, index){=0A=
				return t.apply(el, [index])=0A=
			}) ||=0A=
=0A=
			jQuery.multiFilter(t,this) );=0A=
	},=0A=
=0A=
	not: function(t) {=0A=
		return this.pushStack(=0A=
			t.constructor =3D=3D String &&=0A=
			jQuery.multiFilter(t, this, true) ||=0A=
=0A=
			jQuery.grep(this, function(a) {=0A=
				return ( t.constructor =3D=3D Array || t.jquery )=0A=
					? jQuery.inArray( a, t ) < 0=0A=
					: a !=3D t;=0A=
			})=0A=
		);=0A=
	},=0A=
=0A=
	add: function(t) {=0A=
		return this.pushStack( jQuery.merge(=0A=
			this.get(),=0A=
			t.constructor =3D=3D String ?=0A=
				jQuery(t).get() :=0A=
				t.length !=3D undefined && (!t.nodeName || t.nodeName =3D=3D "FORM") =
?=0A=
					t : [t] )=0A=
		);=0A=
	},=0A=
	is: function(expr) {=0A=
		return expr ? jQuery.multiFilter(expr,this).length > 0 : false;=0A=
	},=0A=
=0A=
	val: function( val ) {=0A=
		return val =3D=3D undefined ?=0A=
			( this.length ? this[0].value : null ) :=0A=
			this.attr( "value", val );=0A=
	},=0A=
=0A=
	html: function( val ) {=0A=
		return val =3D=3D undefined ?=0A=
			( this.length ? this[0].innerHTML : null ) :=0A=
			this.empty().append( val );=0A=
	},=0A=
	domManip: function(args, table, dir, fn){=0A=
		var clone =3D this.length > 1, a; =0A=
=0A=
		return this.each(function(){=0A=
			if ( !a ) {=0A=
				a =3D jQuery.clean(args, this.ownerDocument);=0A=
				if ( dir < 0 )=0A=
					a.reverse();=0A=
			}=0A=
=0A=
			var obj =3D this;=0A=
=0A=
			if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], =
"tr") )=0A=
				obj =3D this.getElementsByTagName("tbody")[0] || =
this.appendChild(document.createElement("tbody"));=0A=
=0A=
			jQuery.each( a, function(){=0A=
				fn.apply( obj, [ clone ? this.cloneNode(true) : this ] );=0A=
			});=0A=
=0A=
		});=0A=
	}=0A=
};=0A=
=0A=
jQuery.extend =3D jQuery.fn.extend =3D function() {=0A=
	// copy reference to target object=0A=
	var target =3D arguments[0], a =3D 1;=0A=
=0A=
	// extend jQuery itself if only one argument is passed=0A=
	if ( arguments.length =3D=3D 1 ) {=0A=
		target =3D this;=0A=
		a =3D 0;=0A=
	}=0A=
	var prop;=0A=
	while ( (prop =3D arguments[a++]) !=3D null )=0A=
		// Extend the base object=0A=
		for ( var i in prop ) target[i] =3D prop[i];=0A=
=0A=
	// Return the modified object=0A=
	return target;=0A=
};=0A=
=0A=
jQuery.extend({=0A=
	noConflict: function() {=0A=
		if ( jQuery._$ )=0A=
			$ =3D jQuery._$;=0A=
		return jQuery;=0A=
	},=0A=
=0A=
	// This may seem like some crazy code, but trust me when I say that this=0A=
	// is the only cross-browser way to do this. --John=0A=
	isFunction: function( fn ) {=0A=
		return !!fn && typeof fn !=3D "string" && !fn.nodeName && =0A=
			fn.constructor !=3D Array && /function/i.test( fn + "" );=0A=
	},=0A=
	=0A=
	// check if an element is in a XML document=0A=
	isXMLDoc: function(elem) {=0A=
		return elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;=0A=
	},=0A=
=0A=
	nodeName: function( elem, name ) {=0A=
		return elem.nodeName && elem.nodeName.toUpperCase() =3D=3D =
name.toUpperCase();=0A=
	},=0A=
	// args is for internal usage only=0A=
	each: function( obj, fn, args ) {=0A=
		if ( obj.length =3D=3D undefined )=0A=
			for ( var i in obj )=0A=
				fn.apply( obj[i], args || [i, obj[i]] );=0A=
		else=0A=
			for ( var i =3D 0, ol =3D obj.length; i < ol; i++ )=0A=
				if ( fn.apply( obj[i], args || [i, obj[i]] ) =3D=3D=3D false ) break;=0A=
		return obj;=0A=
	},=0A=
	=0A=
	prop: function(elem, value, type, index, prop){=0A=
			// Handle executable functions=0A=
			if ( jQuery.isFunction( value ) )=0A=
				value =3D value.call( elem, [index] );=0A=
				=0A=
			// exclude the following css properties to add px=0A=
			var exclude =3D /z-?index|font-?weight|opacity|zoom|line-?height/i;=0A=
=0A=
			// Handle passing in a number to a CSS property=0A=
			return value && value.constructor =3D=3D Number && type =3D=3D =
"curCSS" && !exclude.test(prop) ?=0A=
				value + "px" :=0A=
				value;=0A=
	},=0A=
=0A=
	className: {=0A=
		// internal only, use addClass("class")=0A=
		add: function( elem, c ){=0A=
			jQuery.each( c.split(/\s+/), function(i, cur){=0A=
				if ( !jQuery.className.has( elem.className, cur ) )=0A=
					elem.className +=3D ( elem.className ? " " : "" ) + cur;=0A=
			});=0A=
		},=0A=
=0A=
		// internal only, use removeClass("class")=0A=
		remove: function( elem, c ){=0A=
			elem.className =3D c !=3D undefined ?=0A=
				jQuery.grep( elem.className.split(/\s+/), function(cur){=0A=
					return !jQuery.className.has( c, cur );	=0A=
				}).join(" ") : "";=0A=
		},=0A=
=0A=
		// internal only, use is(".class")=0A=
		has: function( t, c ) {=0A=
			return jQuery.inArray( c, (t.className || t).toString().split(/\s+/) =
) > -1;=0A=
		}=0A=
	},=0A=
	swap: function(e,o,f) {=0A=
		for ( var i in o ) {=0A=
			e.style["old"+i] =3D e.style[i];=0A=
			e.style[i] =3D o[i];=0A=
		}=0A=
		f.apply( e, [] );=0A=
		for ( var i in o )=0A=
			e.style[i] =3D e.style["old"+i];=0A=
	},=0A=
=0A=
	css: function(e,p) {=0A=
		if ( p =3D=3D "height" || p =3D=3D "width" ) {=0A=
			var old =3D {}, oHeight, oWidth, d =3D =
["Top","Bottom","Right","Left"];=0A=
=0A=
			jQuery.each( d, function(){=0A=
				old["padding" + this] =3D 0;=0A=
				old["border" + this + "Width"] =3D 0;=0A=
			});=0A=
=0A=
			jQuery.swap( e, old, function() {=0A=
				if ( jQuery(e).is(':visible') ) {=0A=
					oHeight =3D e.offsetHeight;=0A=
					oWidth =3D e.offsetWidth;=0A=
				} else {=0A=
					e =3D jQuery(e.cloneNode(true))=0A=
						.find(":radio").removeAttr("checked").end()=0A=
						.css({=0A=
							visibility: "hidden", position: "absolute", display: "block", =
right: "0", left: "0"=0A=
						}).appendTo(e.parentNode)[0];=0A=
=0A=
					var parPos =3D jQuery.css(e.parentNode,"position") || "static";=0A=
					if ( parPos =3D=3D "static" )=0A=
						e.parentNode.style.position =3D "relative";=0A=
=0A=
					oHeight =3D e.clientHeight;=0A=
					oWidth =3D e.clientWidth;=0A=
=0A=
					if ( parPos =3D=3D "static" )=0A=
						e.parentNode.style.position =3D "static";=0A=
=0A=
					e.parentNode.removeChild(e);=0A=
				}=0A=
			});=0A=
=0A=
			return p =3D=3D "height" ? oHeight : oWidth;=0A=
		}=0A=
=0A=
		return jQuery.curCSS( e, p );=0A=
	},=0A=
=0A=
	curCSS: function(elem, prop, force) {=0A=
		var ret;=0A=
=0A=
		if (prop =3D=3D "opacity" && jQuery.browser.msie) {=0A=
			ret =3D jQuery.attr(elem.style, "opacity");=0A=
			return ret =3D=3D "" ? "1" : ret;=0A=
		}=0A=
		=0A=
		if (prop.match(/float/i))=0A=
			prop =3D jQuery.styleFloat;=0A=
=0A=
		if (!force && elem.style[prop])=0A=
			ret =3D elem.style[prop];=0A=
=0A=
		else if (document.defaultView && =
document.defaultView.getComputedStyle) {=0A=
=0A=
			if (prop.match(/float/i))=0A=
				prop =3D "float";=0A=
=0A=
			prop =3D prop.replace(/([A-Z])/g,"-$1").toLowerCase();=0A=
			var cur =3D document.defaultView.getComputedStyle(elem, null);=0A=
=0A=
			if ( cur )=0A=
				ret =3D cur.getPropertyValue(prop);=0A=
			else if ( prop =3D=3D "display" )=0A=
				ret =3D "none";=0A=
			else=0A=
				jQuery.swap(elem, { display: "block" }, function() {=0A=
				    var c =3D document.defaultView.getComputedStyle(this, "");=0A=
				    ret =3D c && c.getPropertyValue(prop) || "";=0A=
				});=0A=
=0A=
		} else if (elem.currentStyle) {=0A=
			var newProp =3D prop.replace(/\-(\w)/g,function(m,c){return =
c.toUpperCase();});=0A=
			ret =3D elem.currentStyle[prop] || elem.currentStyle[newProp];=0A=
		}=0A=
=0A=
		return ret;=0A=
	},=0A=
	=0A=
	clean: function(a, doc) {=0A=
		var r =3D [];=0A=
		doc =3D doc || document;=0A=
=0A=
		jQuery.each( a, function(i,arg){=0A=
			if ( !arg ) return;=0A=
=0A=
			if ( arg.constructor =3D=3D Number )=0A=
				arg =3D arg.toString();=0A=
			=0A=
			// Convert html string into DOM nodes=0A=
			if ( typeof arg =3D=3D "string" ) {=0A=
				// Trim whitespace, otherwise indexOf won't work as expected=0A=
				var s =3D jQuery.trim(arg).toLowerCase(), div =3D =
doc.createElement("div"), tb =3D [];=0A=
=0A=
				var wrap =3D=0A=
					// option or optgroup=0A=
					!s.indexOf("<opt") &&=0A=
					[1, "<select>", "</select>"] ||=0A=
					=0A=
					!s.indexOf("<leg") &&=0A=
					[1, "<fieldset>", "</fieldset>"] ||=0A=
					=0A=
					(!s.indexOf("<thead") || !s.indexOf("<tbody") || =
!s.indexOf("<tfoot") || !s.indexOf("<colg")) &&=0A=
					[1, "<table>", "</table>"] ||=0A=
					=0A=
					!s.indexOf("<tr") &&=0A=
					[2, "<table><tbody>", "</tbody></table>"] ||=0A=
					=0A=
				 	// <thead> matched above=0A=
					(!s.indexOf("<td") || !s.indexOf("<th")) &&=0A=
					[3, "<table><tbody><tr>", "</tr></tbody></table>"] ||=0A=
					=0A=
					!s.indexOf("<col") &&=0A=
					[2, "<table><colgroup>", "</colgroup></table>"] ||=0A=
					=0A=
					[0,"",""];=0A=
=0A=
				// Go to html and back, then peel off extra wrappers=0A=
				div.innerHTML =3D wrap[1] + arg + wrap[2];=0A=
				=0A=
				// Move to the right depth=0A=
				while ( wrap[0]-- )=0A=
					div =3D div.firstChild;=0A=
				=0A=
				// Remove IE's autoinserted <tbody> from table fragments=0A=
				if ( jQuery.browser.msie ) {=0A=
					=0A=
					// String was a <table>, *may* have spurious <tbody>=0A=
					if ( !s.indexOf("<table") && s.indexOf("<tbody") < 0 ) =0A=
						tb =3D div.firstChild && div.firstChild.childNodes;=0A=
						=0A=
					// String was a bare <thead> or <tfoot>=0A=
					else if ( wrap[1] =3D=3D "<table>" && s.indexOf("<tbody") < 0 )=0A=
						tb =3D div.childNodes;=0A=
=0A=
					for ( var n =3D tb.length-1; n >=3D 0 ; --n )=0A=
						if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length )=0A=
							tb[n].parentNode.removeChild(tb[n]);=0A=
					=0A=
				}=0A=
				=0A=
				arg =3D jQuery.makeArray( div.childNodes );=0A=
			}=0A=
=0A=
			if ( 0 =3D=3D=3D arg.length && (!jQuery.nodeName(arg, "form") && =
!jQuery.nodeName(arg, "select")) )=0A=
				return;=0A=
=0A=
			if ( arg[0] =3D=3D undefined || jQuery.nodeName(arg, "form") || =
arg.options )=0A=
				r.push( arg );=0A=
			else=0A=
				r =3D jQuery.merge( r, arg );=0A=
=0A=
		});=0A=
=0A=
		return r;=0A=
	},=0A=
	=0A=
	attr: function(elem, name, value){=0A=
		var fix =3D jQuery.isXMLDoc(elem) ? {} : jQuery.props;=0A=
		=0A=
		// Certain attributes only work when accessed via the old DOM 0 way=0A=
		if ( fix[name] ) {=0A=
			if ( value !=3D undefined ) elem[fix[name]] =3D value;=0A=
			return elem[fix[name]];=0A=
=0A=
		} else if ( value =3D=3D undefined && jQuery.browser.msie && =
jQuery.nodeName(elem, "form") && (name =3D=3D "action" || name =3D=3D =
"method") )=0A=
			return elem.getAttributeNode(name).nodeValue;=0A=
=0A=
		// IE elem.getAttribute passes even for style=0A=
		else if ( elem.tagName ) {=0A=
			=0A=
=0A=
			if ( value !=3D undefined ) elem.setAttribute( name, value );=0A=
			if ( jQuery.browser.msie && /href|src/.test(name) && =
!jQuery.isXMLDoc(elem) ) =0A=
				return elem.getAttribute( name, 2 );=0A=
			return elem.getAttribute( name );=0A=
=0A=
		// elem is actually elem.style ... set the style=0A=
		} else {=0A=
			// IE actually uses filters for opacity=0A=
			if ( name =3D=3D "opacity" && jQuery.browser.msie ) {=0A=
				if ( value !=3D undefined ) {=0A=
					// IE has trouble with opacity if it does not have layout=0A=
					// Force it by setting the zoom level=0A=
					elem.zoom =3D 1; =0A=
	=0A=
					// Set the alpha filter to set the opacity=0A=
					elem.filter =3D (elem.filter || "").replace(/alpha\([^)]*\)/,"") +=0A=
						(parseFloat(value).toString() =3D=3D "NaN" ? "" : =
"alpha(opacity=3D" + value * 100 + ")");=0A=
				}=0A=
	=0A=
				return elem.filter ? =0A=
					(parseFloat( elem.filter.match(/opacity=3D([^)]*)/)[1] ) / =
100).toString() : "";=0A=
			}=0A=
			name =3D name.replace(/-([a-z])/ig,function(z,b){return =
b.toUpperCase();});=0A=
			if ( value !=3D undefined ) elem[name] =3D value;=0A=
			return elem[name];=0A=
		}=0A=
	},=0A=
	trim: function(t){=0A=
		return t.replace(/^\s+|\s+$/g, "");=0A=
	},=0A=
=0A=
	makeArray: function( a ) {=0A=
		var r =3D [];=0A=
=0A=
		// Need to use typeof to fight Safari childNodes crashes=0A=
		if ( typeof a !=3D "array" )=0A=
			for ( var i =3D 0, al =3D a.length; i < al; i++ )=0A=
				r.push( a[i] );=0A=
		else=0A=
			r =3D a.slice( 0 );=0A=
=0A=
		return r;=0A=
	},=0A=
=0A=
	inArray: function( b, a ) {=0A=
		for ( var i =3D 0, al =3D a.length; i < al; i++ )=0A=
			if ( a[i] =3D=3D b )=0A=
				return i;=0A=
		return -1;=0A=
	},=0A=
	merge: function(first, second) {=0A=
		// We have to loop this way because IE & Opera overwrite the length=0A=
		// expando of getElementsByTagName=0A=
		for ( var i =3D 0; second[i]; i++ )=0A=
			first.push(second[i]);=0A=
		return first;=0A=
	},=0A=
	unique: function(first) {=0A=
		var r =3D [], num =3D jQuery.mergeNum++;=0A=
=0A=
		for ( var i =3D 0, fl =3D first.length; i < fl; i++ )=0A=
			if ( num !=3D first[i].mergeNum ) {=0A=
				first[i].mergeNum =3D num;=0A=
				r.push(first[i]);=0A=
			}=0A=
=0A=
		return r;=0A=
	},=0A=
=0A=
	mergeNum: 0,=0A=
	grep: function(elems, fn, inv) {=0A=
		// If a string is passed in for the function, make a function=0A=
		// for it (a handy shortcut)=0A=
		if ( typeof fn =3D=3D "string" )=0A=
			fn =3D new Function("a","i","return " + fn);=0A=
=0A=
		var result =3D [];=0A=
=0A=
		// Go through the array, only saving the items=0A=
		// that pass the validator function=0A=
		for ( var i =3D 0, el =3D elems.length; i < el; i++ )=0A=
			if ( !inv && fn(elems[i],i) || inv && !fn(elems[i],i) )=0A=
				result.push( elems[i] );=0A=
=0A=
		return result;=0A=
	},=0A=
	map: function(elems, fn) {=0A=
		// If a string is passed in for the function, make a function=0A=
		// for it (a handy shortcut)=0A=
		if ( typeof fn =3D=3D "string" )=0A=
			fn =3D new Function("a","return " + fn);=0A=
=0A=
		var result =3D [];=0A=
=0A=
		// Go through the array, translating each of the items to their=0A=
		// new value (or values).=0A=
		for ( var i =3D 0, el =3D elems.length; i < el; i++ ) {=0A=
			var val =3D fn(elems[i],i);=0A=
=0A=
			if ( val !=3D=3D null && val !=3D undefined ) {=0A=
				if ( val.constructor !=3D Array ) val =3D [val];=0A=
				result =3D result.concat( val );=0A=
			}=0A=
		}=0A=
=0A=
		return result;=0A=
	}=0A=
});=0A=
 =0A=
/*=0A=
 * Whether the W3C compliant box model is being used.=0A=
 *=0A=
 * @property=0A=
 * @name $.boxModel=0A=
 * @type Boolean=0A=
 * @cat JavaScript=0A=
 */=0A=
new function() {=0A=
	var b =3D navigator.userAgent.toLowerCase();=0A=
=0A=
	// Figure out what browser is being used=0A=
	jQuery.browser =3D {=0A=
		version: (b.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],=0A=
		safari: /webkit/.test(b),=0A=
		opera: /opera/.test(b),=0A=
		msie: /msie/.test(b) && !/opera/.test(b),=0A=
		mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b)=0A=
	};=0A=
=0A=
	// Check to see if the W3C box model is being used=0A=
	jQuery.boxModel =3D !jQuery.browser.msie || document.compatMode =3D=3D =
"CSS1Compat";=0A=
=0A=
	jQuery.styleFloat =3D jQuery.browser.msie ? "styleFloat" : "cssFloat",=0A=
=0A=
	jQuery.props =3D {=0A=
		"for": "htmlFor",=0A=
		"class": "className",=0A=
		"float": jQuery.styleFloat,=0A=
		cssFloat: jQuery.styleFloat,=0A=
		styleFloat: jQuery.styleFloat,=0A=
		innerHTML: "innerHTML",=0A=
		className: "className",=0A=
		value: "value",=0A=
		disabled: "disabled",=0A=
		checked: "checked",=0A=
		readonly: "readOnly",=0A=
		selected: "selected",=0A=
		maxlength: "maxLength"=0A=
	};=0A=
};=0A=
=0A=
jQuery.each({=0A=
	parent: "a.parentNode",=0A=
	parents: "jQuery.parents(a)",=0A=
	next: "jQuery.nth(a,2,'nextSibling')",=0A=
	prev: "jQuery.nth(a,2,'previousSibling')",=0A=
	siblings: "jQuery.sibling(a.parentNode.firstChild,a)",=0A=
	children: "jQuery.sibling(a.firstChild)"=0A=
}, function(i,n){=0A=
	jQuery.fn[ i ] =3D function(a) {=0A=
		var ret =3D jQuery.map(this,n);=0A=
		if ( a && typeof a =3D=3D "string" )=0A=
			ret =3D jQuery.multiFilter(a,ret);=0A=
		return this.pushStack( ret );=0A=
	};=0A=
});=0A=
=0A=
jQuery.each({=0A=
	appendTo: "append",=0A=
	prependTo: "prepend",=0A=
	insertBefore: "before",=0A=
	insertAfter: "after"=0A=
}, function(i,n){=0A=
	jQuery.fn[ i ] =3D function(){=0A=
		var a =3D arguments;=0A=
		return this.each(function(){=0A=
			for ( var j =3D 0, al =3D a.length; j < al; j++ )=0A=
				jQuery(a[j])[n]( this );=0A=
		});=0A=
	};=0A=
});=0A=
=0A=
jQuery.each( {=0A=
	removeAttr: function( key ) {=0A=
		jQuery.attr( this, key, "" );=0A=
		this.removeAttribute( key );=0A=
	},=0A=
	addClass: function(c){=0A=
		jQuery.className.add(this,c);=0A=
	},=0A=
	removeClass: function(c){=0A=
		jQuery.className.remove(this,c);=0A=
	},=0A=
	toggleClass: function( c ){=0A=
		jQuery.className[ jQuery.className.has(this,c) ? "remove" : "add" =
](this, c);=0A=
	},=0A=
	remove: function(a){=0A=
		if ( !a || jQuery.filter( a, [this] ).r.length )=0A=
			this.parentNode.removeChild( this );=0A=
	},=0A=
	empty: function() {=0A=
		while ( this.firstChild )=0A=
			this.removeChild( this.firstChild );=0A=
	}=0A=
}, function(i,n){=0A=
	jQuery.fn[ i ] =3D function() {=0A=
		return this.each( n, arguments );=0A=
	};=0A=
});=0A=
=0A=
jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){=0A=
	jQuery.fn[ n ] =3D function(num,fn) {=0A=
		return this.filter( ":" + n + "(" + num + ")", fn );=0A=
	};=0A=
});=0A=
=0A=
jQuery.each( [ "height", "width" ], function(i,n){=0A=
	jQuery.fn[ n ] =3D function(h) {=0A=
		return h =3D=3D undefined ?=0A=
			( this.length ? jQuery.css( this[0], n ) : null ) :=0A=
			this.css( n, h.constructor =3D=3D String ? h : h + "px" );=0A=
	};=0A=
});=0A=
jQuery.extend({=0A=
	expr: {=0A=
		"": "m[2]=3D=3D'*'||jQuery.nodeName(a,m[2])",=0A=
		"#": "a.getAttribute('id')=3D=3Dm[2]",=0A=
		":": {=0A=
			// Position Checks=0A=
			lt: "i<m[3]-0",=0A=
			gt: "i>m[3]-0",=0A=
			nth: "m[3]-0=3D=3Di",=0A=
			eq: "m[3]-0=3D=3Di",=0A=
			first: "i=3D=3D0",=0A=
			last: "i=3D=3Dr.length-1",=0A=
			even: "i%2=3D=3D0",=0A=
			odd: "i%2",=0A=
=0A=
			// Child Checks=0A=
			"first-child": "a.parentNode.getElementsByTagName('*')[0]=3D=3Da",=0A=
			"last-child": =
"jQuery.nth(a.parentNode.lastChild,1,'previousSibling')=3D=3Da",=0A=
			"only-child": =
"!jQuery.nth(a.parentNode.lastChild,2,'previousSibling')",=0A=
=0A=
			// Parent Checks=0A=
			parent: "a.firstChild",=0A=
			empty: "!a.firstChild",=0A=
=0A=
			// Text Check=0A=
			contains: "(a.textContent||a.innerText||'').indexOf(m[3])>=3D0",=0A=
=0A=
			// Visibility=0A=
			visible: =
'"hidden"!=3Da.type&&jQuery.css(a,"display")!=3D"none"&&jQuery.css(a,"vis=
ibility")!=3D"hidden"',=0A=
			hidden: =
'"hidden"=3D=3Da.type||jQuery.css(a,"display")=3D=3D"none"||jQuery.css(a,=
"visibility")=3D=3D"hidden"',=0A=
=0A=
			// Form attributes=0A=
			enabled: "!a.disabled",=0A=
			disabled: "a.disabled",=0A=
			checked: "a.checked",=0A=
			selected: "a.selected||jQuery.attr(a,'selected')",=0A=
=0A=
			// Form elements=0A=
			text: "'text'=3D=3Da.type",=0A=
			radio: "'radio'=3D=3Da.type",=0A=
			checkbox: "'checkbox'=3D=3Da.type",=0A=
			file: "'file'=3D=3Da.type",=0A=
			password: "'password'=3D=3Da.type",=0A=
			submit: "'submit'=3D=3Da.type",=0A=
			image: "'image'=3D=3Da.type",=0A=
			reset: "'reset'=3D=3Da.type",=0A=
			button: '"button"=3D=3Da.type||jQuery.nodeName(a,"button")',=0A=
			input: "/input|select|textarea|button/i.test(a.nodeName)"=0A=
		},=0A=
		"[": "jQuery.find(m[2],a).length"=0A=
	},=0A=
	=0A=
	// The regular expressions that power the parsing engine=0A=
	parse: [=0A=
		// Match: [@value=3D'test'], [@foo]=0A=
		/^\[ *(@)([\w-]+) *([!*$^~=3D]*) *('?"?)(.*?)\4 *\]/,=0A=
=0A=
		// Match: [div], [div p]=0A=
		/^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/,=0A=
=0A=
		// Match: :contains('foo')=0A=
		/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,=0A=
=0A=
		// Match: :even, :last-chlid, #id, .class=0A=
		new RegExp("^([:.#]*)(" + =0A=
			( jQuery.chars =3D jQuery.browser.safari && jQuery.browser.version < =
"3.0.0" ? "\\w" : "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)" ) + "+)")=0A=
	],=0A=
=0A=
	multiFilter: function( expr, elems, not ) {=0A=
		var old, cur =3D [];=0A=
=0A=
		while ( expr && expr !=3D old ) {=0A=
			old =3D expr;=0A=
			var f =3D jQuery.filter( expr, elems, not );=0A=
			expr =3D f.t.replace(/^\s*,\s*/, "" );=0A=
			cur =3D not ? elems =3D f.r : jQuery.merge( cur, f.r );=0A=
		}=0A=
=0A=
		return cur;=0A=
	},=0A=
	find: function( t, context ) {=0A=
		// Quickly handle non-string expressions=0A=
		if ( typeof t !=3D "string" )=0A=
			return [ t ];=0A=
=0A=
		// Make sure that the context is a DOM Element=0A=
		if ( context && !context.nodeType )=0A=
			context =3D null;=0A=
=0A=
		// Set the correct context (if none is provided)=0A=
		context =3D context || document;=0A=
=0A=
		// Handle the common XPath // expression=0A=
		if ( !t.indexOf("//") ) {=0A=
			context =3D context.documentElement;=0A=
			t =3D t.substr(2,t.length);=0A=
=0A=
		// And the / root expression=0A=
		} else if ( !t.indexOf("/") && !context.ownerDocument ) {=0A=
			context =3D context.documentElement;=0A=
			t =3D t.substr(1,t.length);=0A=
			if ( t.indexOf("/") >=3D 1 )=0A=
				t =3D t.substr(t.indexOf("/"),t.length);=0A=
		}=0A=
=0A=
		// Initialize the search=0A=
		var ret =3D [context], done =3D [], last;=0A=
=0A=
		// Continue while a selector expression exists, and while=0A=
		// we're no longer looping upon ourselves=0A=
		while ( t && last !=3D t ) {=0A=
			var r =3D [];=0A=
			last =3D t;=0A=
=0A=
			t =3D jQuery.trim(t).replace( /^\/\//, "" );=0A=
=0A=
			var foundToken =3D false;=0A=
=0A=
			// An attempt at speeding up child selectors that=0A=
			// point to a specific element tag=0A=
			var re =3D new RegExp("^[/>]\\s*(" + jQuery.chars + "+)");=0A=
			var m =3D re.exec(t);=0A=
=0A=
			if ( m ) {=0A=
				var nodeName =3D m[1].toUpperCase();=0A=
=0A=
				// Perform our own iteration and filter=0A=
				for ( var i =3D 0; ret[i]; i++ )=0A=
					for ( var c =3D ret[i].firstChild; c; c =3D c.nextSibling )=0A=
						if ( c.nodeType =3D=3D 1 && (nodeName =3D=3D "*" || =
c.nodeName.toUpperCase() =3D=3D nodeName.toUpperCase()) )=0A=
							r.push( c );=0A=
=0A=
				ret =3D r;=0A=
				t =3D t.replace( re, "" );=0A=
				if ( t.indexOf(" ") =3D=3D 0 ) continue;=0A=
				foundToken =3D true;=0A=
			} else {=0A=
				re =3D /^((\/?\.\.)|([>\/+~]))\s*([a-z]*)/i;=0A=
=0A=
				if ( (m =3D re.exec(t)) !=3D null ) {=0A=
					r =3D [];=0A=
=0A=
					var nodeName =3D m[4], mergeNum =3D jQuery.mergeNum++;=0A=
					m =3D m[1];=0A=
=0A=
					for ( var j =3D 0, rl =3D ret.length; j < rl; j++ )=0A=
						if ( m.indexOf("..") < 0 ) {=0A=
							var n =3D m =3D=3D "~" || m =3D=3D "+" ? ret[j].nextSibling : =
ret[j].firstChild;=0A=
							for ( ; n; n =3D n.nextSibling )=0A=
								if ( n.nodeType =3D=3D 1 ) {=0A=
									if ( m =3D=3D "~" && n.mergeNum =3D=3D mergeNum ) break;=0A=
									=0A=
									if (!nodeName || n.nodeName.toUpperCase() =3D=3D =
nodeName.toUpperCase() ) {=0A=
										if ( m =3D=3D "~" ) n.mergeNum =3D mergeNum;=0A=
										r.push( n );=0A=
									}=0A=
									=0A=
									if ( m =3D=3D "+" ) break;=0A=
								}=0A=
						} else=0A=
							r.push( ret[j].parentNode );=0A=
=0A=
					ret =3D r;=0A=
=0A=
					// And remove the token=0A=
					t =3D jQuery.trim( t.replace( re, "" ) );=0A=
					foundToken =3D true;=0A=
				}=0A=
			}=0A=
=0A=
			// See if there's still an expression, and that we haven't already=0A=
			// matched a token=0A=
			if ( t && !foundToken ) {=0A=
				// Handle multiple expressions=0A=
				if ( !t.indexOf(",") ) {=0A=
					// Clean the result set=0A=
					if ( context =3D=3D ret[0] ) ret.shift();=0A=
=0A=
					// Merge the result sets=0A=
					done =3D jQuery.merge( done, ret );=0A=
=0A=
					// Reset the context=0A=
					r =3D ret =3D [context];=0A=
=0A=
					// Touch up the selector string=0A=
					t =3D " " + t.substr(1,t.length);=0A=
=0A=
				} else {=0A=
					// Optomize for the case nodeName#idName=0A=
					var re2 =3D new RegExp("^(" + jQuery.chars + "+)(#)(" + =
jQuery.chars + "+)");=0A=
					var m =3D re2.exec(t);=0A=
					=0A=
					// Re-organize the results, so that they're consistent=0A=
					if ( m ) {=0A=
					   m =3D [ 0, m[2], m[3], m[1] ];=0A=
=0A=
					} else {=0A=
						// Otherwise, do a traditional filter check for=0A=
						// ID, class, and element selectors=0A=
						re2 =3D new RegExp("^([#.]?)(" + jQuery.chars + "*)");=0A=
						m =3D re2.exec(t);=0A=
					}=0A=
=0A=
					m[2] =3D m[2].replace(/\\/g, "");=0A=
=0A=
					var elem =3D ret[ret.length-1];=0A=
=0A=
					// Try to do a global search by ID, where we can=0A=
					if ( m[1] =3D=3D "#" && elem && elem.getElementById ) {=0A=
						// Optimization for HTML document case=0A=
						var oid =3D elem.getElementById(m[2]);=0A=
						=0A=
						// Do a quick check for the existence of the actual ID attribute=0A=
						// to avoid selecting by the name attribute in IE=0A=
						// also check to insure id is a string to avoid selecting an =
element with the name of 'id' inside a form=0A=
						if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof =
oid.id =3D=3D "string" && oid.id !=3D m[2] )=0A=
							oid =3D jQuery('[@id=3D"'+m[2]+'"]', elem)[0];=0A=
=0A=
						// Do a quick check for node name (where applicable) so=0A=
						// that div#foo searches will be really fast=0A=
						ret =3D r =3D oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] =
: [];=0A=
					} else {=0A=
						// We need to find all descendant elements=0A=
						for ( var i =3D 0; ret[i]; i++ ) {=0A=
							// Grab the tag name being searched for=0A=
							var tag =3D m[1] !=3D "" || m[0] =3D=3D "" ? "*" : m[2];=0A=
=0A=
							// Handle IE7 being really dumb about <object>s=0A=
							if ( tag =3D=3D "*" && ret[i].nodeName.toLowerCase() =3D=3D =
"object" )=0A=
								tag =3D "param";=0A=
=0A=
							r =3D jQuery.merge( r, ret[i].getElementsByTagName( tag ));=0A=
						}=0A=
=0A=
						// It's faster to filter by class and be done with it=0A=
						if ( m[1] =3D=3D "." )=0A=
							r =3D jQuery.classFilter( r, m[2] );=0A=
=0A=
						// Same with ID filtering=0A=
						if ( m[1] =3D=3D "#" ) {=0A=
							var tmp =3D [];=0A=
=0A=
							// Try to find the element with the ID=0A=
							for ( var i =3D 0; r[i]; i++ )=0A=
								if ( r[i].getAttribute("id") =3D=3D m[2] ) {=0A=
									tmp =3D [ r[i] ];=0A=
									break;=0A=
								}=0A=
=0A=
							r =3D tmp;=0A=
						}=0A=
=0A=
						ret =3D r;=0A=
					}=0A=
=0A=
					t =3D t.replace( re2, "" );=0A=
				}=0A=
=0A=
			}=0A=
=0A=
			// If a selector string still exists=0A=
			if ( t ) {=0A=
				// Attempt to filter it=0A=
				var val =3D jQuery.filter(t,r);=0A=
				ret =3D r =3D val.r;=0A=
				t =3D jQuery.trim(val.t);=0A=
			}=0A=
		}=0A=
=0A=
		// An error occurred with the selector;=0A=
		// just return an empty set instead=0A=
		if ( t )=0A=
			ret =3D [];=0A=
=0A=
		// Remove the root context=0A=
		if ( ret && context =3D=3D ret[0] )=0A=
			ret.shift();=0A=
=0A=
		// And combine the results=0A=
		done =3D jQuery.merge( done, ret );=0A=
=0A=
		return done;=0A=
	},=0A=
=0A=
	classFilter: function(r,m,not){=0A=
		m =3D " " + m + " ";=0A=
		var tmp =3D [];=0A=
		for ( var i =3D 0; r[i]; i++ ) {=0A=
			var pass =3D (" " + r[i].className + " ").indexOf( m ) >=3D 0;=0A=
			if ( !not && pass || not && !pass )=0A=
				tmp.push( r[i] );=0A=
		}=0A=
		return tmp;=0A=
	},=0A=
=0A=
	filter: function(t,r,not) {=0A=
		var last;=0A=
=0A=
		// Look for common filter expressions=0A=
		while ( t  && t !=3D last ) {=0A=
			last =3D t;=0A=
=0A=
			var p =3D jQuery.parse, m;=0A=
=0A=
			for ( var i =3D 0; p[i]; i++ ) {=0A=
				m =3D p[i].exec( t );=0A=
=0A=
				if ( m ) {=0A=
					// Remove what we just matched=0A=
					t =3D t.substring( m[0].length );=0A=
=0A=
					m[2] =3D m[2].replace(/\\/g, "");=0A=
					break;=0A=
				}=0A=
			}=0A=
=0A=
			if ( !m )=0A=
				break;=0A=
=0A=
			// :not() is a special case that can be optimized by=0A=
			// keeping it out of the expression list=0A=
			if ( m[1] =3D=3D ":" && m[2] =3D=3D "not" )=0A=
				r =3D jQuery.filter(m[3], r, true).r;=0A=
=0A=
			// We can get a big speed boost by filtering by class here=0A=
			else if ( m[1] =3D=3D "." )=0A=
				r =3D jQuery.classFilter(r, m[2], not);=0A=
=0A=
			else if ( m[1] =3D=3D "@" ) {=0A=
				var tmp =3D [], type =3D m[3];=0A=
				=0A=
				for ( var i =3D 0, rl =3D r.length; i < rl; i++ ) {=0A=
					var a =3D r[i], z =3D a[ jQuery.props[m[2]] || m[2] ];=0A=
					=0A=
					if ( z =3D=3D null || /href|src/.test(m[2]) )=0A=
						z =3D jQuery.attr(a,m[2]) || '';=0A=
=0A=
					if ( (type =3D=3D "" && !!z ||=0A=
						 type =3D=3D "=3D" && z =3D=3D m[5] ||=0A=
						 type =3D=3D "!=3D" && z !=3D m[5] ||=0A=
						 type =3D=3D "^=3D" && z && !z.indexOf(m[5]) ||=0A=
						 type =3D=3D "$=3D" && z.substr(z.length - m[5].length) =3D=3D =
m[5] ||=0A=
						 (type =3D=3D "*=3D" || type =3D=3D "~=3D") && z.indexOf(m[5]) =
>=3D 0) ^ not )=0A=
							tmp.push( a );=0A=
				}=0A=
				=0A=
				r =3D tmp;=0A=
=0A=
			// We can get a speed boost by handling nth-child here=0A=
			} else if ( m[1] =3D=3D ":" && m[2] =3D=3D "nth-child" ) {=0A=
				var num =3D jQuery.mergeNum++, tmp =3D [],=0A=
					test =3D /(\d*)n\+?(\d*)/.exec(=0A=
						m[3] =3D=3D "even" && "2n" || m[3] =3D=3D "odd" && "2n+1" ||=0A=
						!/\D/.test(m[3]) && "n+" + m[3] || m[3]),=0A=
					first =3D (test[1] || 1) - 0, last =3D test[2] - 0;=0A=
=0A=
				for ( var i =3D 0, rl =3D r.length; i < rl; i++ ) {=0A=
					var node =3D r[i], parentNode =3D node.parentNode;=0A=
=0A=
					if ( num !=3D parentNode.mergeNum ) {=0A=
						var c =3D 1;=0A=
=0A=
						for ( var n =3D parentNode.firstChild; n; n =3D n.nextSibling )=0A=
							if ( n.nodeType =3D=3D 1 )=0A=
								n.nodeIndex =3D c++;=0A=
=0A=
						parentNode.mergeNum =3D num;=0A=
					}=0A=
=0A=
					var add =3D false;=0A=
=0A=
					if ( first =3D=3D 1 ) {=0A=
						if ( last =3D=3D 0 || node.nodeIndex =3D=3D last )=0A=
							add =3D true;=0A=
					} else if ( (node.nodeIndex + last) % first =3D=3D 0 )=0A=
						add =3D true;=0A=
=0A=
					if ( add ^ not )=0A=
						tmp.push( node );=0A=
				}=0A=
=0A=
				r =3D tmp;=0A=
=0A=
			// Otherwise, find the expression to execute=0A=
			} else {=0A=
				var f =3D jQuery.expr[m[1]];=0A=
				if ( typeof f !=3D "string" )=0A=
					f =3D jQuery.expr[m[1]][m[2]];=0A=
=0A=
				// Build a custom macro to enclose it=0A=
				eval("f =3D function(a,i){return " + f + "}");=0A=
=0A=
				// Execute it against the current filter=0A=
				r =3D jQuery.grep( r, f, not );=0A=
			}=0A=
		}=0A=
=0A=
		// Return an array of filtered elements (r)=0A=
		// and the modified expression string (t)=0A=
		return { r: r, t: t };=0A=
	},=0A=
	parents: function( elem ){=0A=
		var matched =3D [];=0A=
		var cur =3D elem.parentNode;=0A=
		while ( cur && cur !=3D document ) {=0A=
			matched.push( cur );=0A=
			cur =3D cur.parentNode;=0A=
		}=0A=
		return matched;=0A=
	},=0A=
	nth: function(cur,result,dir,elem){=0A=
		result =3D result || 1;=0A=
		var num =3D 0;=0A=
=0A=
		for ( ; cur; cur =3D cur[dir] )=0A=
			if ( cur.nodeType =3D=3D 1 && ++num =3D=3D result )=0A=
				break;=0A=
=0A=
		return cur;=0A=
	},=0A=
	sibling: function( n, elem ) {=0A=
		var r =3D [];=0A=
=0A=
		for ( ; n; n =3D n.nextSibling ) {=0A=
			if ( n.nodeType =3D=3D 1 && (!elem || n !=3D elem) )=0A=
				r.push( n );=0A=
		}=0A=
=0A=
		return r;=0A=
	}=0A=
});=0A=
/*=0A=
 * A number of helper functions used for managing events.=0A=
 * Many of the ideas behind this code orignated from =0A=
 * Dean Edwards' addEvent library.=0A=
 */=0A=
jQuery.event =3D {=0A=
=0A=
	// Bind an event to an element=0A=
	// Original by Dean Edwards=0A=
	add: function(element, type, handler, data) {=0A=
		// For whatever reason, IE has trouble passing the window object=0A=
		// around, causing it to be cloned in the process=0A=
		if ( jQuery.browser.msie && element.setInterval !=3D undefined )=0A=
			element =3D window;=0A=
		=0A=
		// Make sure that the function being executed has a unique ID=0A=
		if ( !handler.guid )=0A=
			handler.guid =3D this.guid++;=0A=
			=0A=
		// if data is passed, bind to handler =0A=
		if( data !=3D undefined ) { =0A=
        	// Create temporary function pointer to original handler =0A=
			var fn =3D handler; =0A=
=0A=
			// Create unique handler function, wrapped around original handler =0A=
			handler =3D function() { =0A=
				// Pass arguments and context to original handler =0A=
				return fn.apply(this, arguments); =0A=
			};=0A=
=0A=
			// Store data in unique handler =0A=
			handler.data =3D data;=0A=
=0A=
			// Set the guid of unique handler to the same of original handler, so =
it can be removed =0A=
			handler.guid =3D fn.guid;=0A=
		}=0A=
=0A=
		// Init the element's event structure=0A=
		if (!element.$events)=0A=
			element.$events =3D {};=0A=
		=0A=
		if (!element.$handle)=0A=
			element.$handle =3D function() {=0A=
				// returned undefined or false=0A=
				var val;=0A=
=0A=
				// Handle the second event of a trigger and when=0A=
				// an event is called after a page has unloaded=0A=
				if ( typeof jQuery =3D=3D "undefined" || jQuery.event.triggered )=0A=
				  return val;=0A=
				=0A=
				val =3D jQuery.event.handle.apply(element, arguments);=0A=
				=0A=
				return val;=0A=
			};=0A=
=0A=
		// Get the current list of functions bound to this event=0A=
		var handlers =3D element.$events[type];=0A=
=0A=
		// Init the event handler queue=0A=
		if (!handlers) {=0A=
			handlers =3D element.$events[type] =3D {};	=0A=
			=0A=
			// And bind the global event handler to the element=0A=
			if (element.addEventListener)=0A=
				element.addEventListener(type, element.$handle, false);=0A=
			else=0A=
				element.attachEvent("on" + type, element.$handle);=0A=
		}=0A=
=0A=
		// Add the function to the element's handler list=0A=
		handlers[handler.guid] =3D handler;=0A=
=0A=
		// Remember the function in a global list (for triggering)=0A=
		if (!this.global[type])=0A=
			this.global[type] =3D [];=0A=
		// Only add the element to the global list once=0A=
		if (jQuery.inArray(element, this.global[type]) =3D=3D -1)=0A=
			this.global[type].push( element );=0A=
	},=0A=
=0A=
	guid: 1,=0A=
	global: {},=0A=
=0A=
	// Detach an event or set of events from an element=0A=
	remove: function(element, type, handler) {=0A=
		var events =3D element.$events, ret, index;=0A=
=0A=
		if ( events ) {=0A=
			// type is actually an event object here=0A=
			if ( type && type.type ) {=0A=
				handler =3D type.handler;=0A=
				type =3D type.type;=0A=
			}=0A=
			=0A=
			if ( !type ) {=0A=
				for ( type in events )=0A=
					this.remove( element, type );=0A=
=0A=
			} else if ( events[type] ) {=0A=
				// remove the given handler for the given type=0A=
				if ( handler )=0A=
					delete events[type][handler.guid];=0A=
				=0A=
				// remove all handlers for the given type=0A=
				else=0A=
					for ( handler in element.$events[type] )=0A=
						delete events[type][handler];=0A=
=0A=
				// remove generic event handler if no more handlers exist=0A=
				for ( ret in events[type] ) break;=0A=
				if ( !ret ) {=0A=
					if (element.removeEventListener)=0A=
						element.removeEventListener(type, element.$handle, false);=0A=
					else=0A=
						element.detachEvent("on" + type, element.$handle);=0A=
					ret =3D null;=0A=
					delete events[type];=0A=
					=0A=
					// Remove element from the global event type cache=0A=
					while ( this.global[type] && ( (index =3D jQuery.inArray(element, =
this.global[type])) >=3D 0 ) )=0A=
						delete this.global[type][index];=0A=
				}=0A=
			}=0A=
=0A=
			// Remove the expando if it's no longer used=0A=
			for ( ret in events ) break;=0A=
			if ( !ret )=0A=
				element.$handle =3D element.$events =3D null;=0A=
		}=0A=
	},=0A=
=0A=
	trigger: function(type, data, element) {=0A=
		// Clone the incoming data, if any=0A=
		data =3D jQuery.makeArray(data || []);=0A=
=0A=
		// Handle a global trigger=0A=
		if ( !element )=0A=
			jQuery.each( this.global[type] || [], function(){=0A=
				jQuery.event.trigger( type, data, this );=0A=
			});=0A=
=0A=
		// Handle triggering a single element=0A=
		else {=0A=
			var val, ret, fn =3D jQuery.isFunction( element[ type ] || null );=0A=
			=0A=
			// Pass along a fake event=0A=
			data.unshift( this.fix({ type: type, target: element }) );=0A=
=0A=
			// Trigger the event=0A=
			if ( jQuery.isFunction(element.$handle) && (val =3D =
element.$handle.apply( element, data )) !=3D=3D false )=0A=
				this.triggered =3D true;=0A=
=0A=
			if ( fn && val !=3D=3D false && !jQuery.nodeName(element, 'a') )=0A=
				element[ type ]();=0A=
=0A=
			this.triggered =3D false;=0A=
		}=0A=
	},=0A=
=0A=
	handle: function(event) {=0A=
		// returned undefined or false=0A=
		var val;=0A=
=0A=
		// Empty object is for triggered events with no data=0A=
		event =3D jQuery.event.fix( event || window.event || {} ); =0A=
=0A=
		var c =3D this.$events && this.$events[event.type], args =3D =
[].slice.call( arguments, 1 );=0A=
		args.unshift( event );=0A=
=0A=
		for ( var j in c ) {=0A=
			// Pass in a reference to the handler function itself=0A=
			// So that we can later remove it=0A=
			args[0].handler =3D c[j];=0A=
			args[0].data =3D c[j].data;=0A=
=0A=
			if ( c[j].apply( this, args ) =3D=3D=3D false ) {=0A=
				event.preventDefault();=0A=
				event.stopPropagation();=0A=
				val =3D false;=0A=
			}=0A=
		}=0A=
=0A=
		// Clean up added properties in IE to prevent memory leak=0A=
		if (jQuery.browser.msie)=0A=
			event.target =3D event.preventDefault =3D event.stopPropagation =3D=0A=
				event.handler =3D event.data =3D null;=0A=
=0A=
		return val;=0A=
	},=0A=
=0A=
	fix: function(event) {=0A=
		// store a copy of the original event object =0A=
		// and clone to set read-only properties=0A=
		var originalEvent =3D event;=0A=
		event =3D jQuery.extend({}, originalEvent);=0A=
		=0A=
		// add preventDefault and stopPropagation since =0A=
		// they will not work on the clone=0A=
		event.preventDefault =3D function() {=0A=
			// if preventDefault exists run it on the original event=0A=
			if (originalEvent.preventDefault)=0A=
				return originalEvent.preventDefault();=0A=
			// otherwise set the returnValue property of the original event to =
false (IE)=0A=
			originalEvent.returnValue =3D false;=0A=
		};=0A=
		event.stopPropagation =3D function() {=0A=
			// if stopPropagation exists run it on the original event=0A=
			if (originalEvent.stopPropagation)=0A=
				return originalEvent.stopPropagation();=0A=
			// otherwise set the cancelBubble property of the original event to =
true (IE)=0A=
			originalEvent.cancelBubble =3D true;=0A=
		};=0A=
		=0A=
		// Fix target property, if necessary=0A=
		if ( !event.target && event.srcElement )=0A=
			event.target =3D event.srcElement;=0A=
				=0A=
		// check if target is a textnode (safari)=0A=
		if (jQuery.browser.safari && event.target.nodeType =3D=3D 3)=0A=
			event.target =3D originalEvent.target.parentNode;=0A=
=0A=
		// Add relatedTarget, if necessary=0A=
		if ( !event.relatedTarget && event.fromElement )=0A=
			event.relatedTarget =3D event.fromElement =3D=3D event.target ? =
event.toElement : event.fromElement;=0A=
=0A=
		// Calculate pageX/Y if missing and clientX/Y available=0A=
		if ( event.pageX =3D=3D null && event.clientX !=3D null ) {=0A=
			var e =3D document.documentElement, b =3D document.body;=0A=
			event.pageX =3D event.clientX + (e && e.scrollLeft || b.scrollLeft);=0A=
			event.pageY =3D event.clientY + (e && e.scrollTop || b.scrollTop);=0A=
		}=0A=
			=0A=
		// Add which for key events=0A=
		if ( !event.which && (event.charCode || event.keyCode) )=0A=
			event.which =3D event.charCode || event.keyCode;=0A=
		=0A=
		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for =
Macs)=0A=
		if ( !event.metaKey && event.ctrlKey )=0A=
			event.metaKey =3D event.ctrlKey;=0A=
=0A=
		// Add which for click: 1 =3D=3D left; 2 =3D=3D middle; 3 =3D=3D right=0A=
		// Note: button is not normalized, so don't use it=0A=
		if ( !event.which && event.button )=0A=
			event.which =3D (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( =
event.button & 4 ? 2 : 0 ) ));=0A=
			=0A=
		return event;=0A=
	}=0A=
};=0A=
=0A=
jQuery.fn.extend({=0A=
	bind: function( type, data, fn ) {=0A=
		return type =3D=3D "unload" ? this.one(type, data, fn) : =
this.each(function(){=0A=
			jQuery.event.add( this, type, fn || data, fn && data );=0A=
		});=0A=
	},=0A=
	one: function( type, data, fn ) {=0A=
		return this.each(function(){=0A=
			jQuery.event.add( this, type, function(event) {=0A=
				jQuery(this).unbind(event);=0A=
				return (fn || data).apply( this, arguments);=0A=
			}, fn && data);=0A=
		});=0A=
	},=0A=
	unbind: function( type, fn ) {=0A=
		return this.each(function(){=0A=
			jQuery.event.remove( this, type, fn );=0A=
		});=0A=
	},=0A=
	trigger: function( type, data ) {=0A=
		return this.each(function(){=0A=
			jQuery.event.trigger( type, data, this );=0A=
		});=0A=
	},=0A=
	toggle: function() {=0A=
		// Save reference to arguments for access in closure=0A=
		var a =3D arguments;=0A=
=0A=
		return this.click(function(e) {=0A=
			// Figure out which function to execute=0A=
			this.lastToggle =3D 0 =3D=3D this.lastToggle ? 1 : 0;=0A=
			=0A=
			// Make sure that clicks stop=0A=
			e.preventDefault();=0A=
			=0A=
			// and execute the function=0A=
			return a[this.lastToggle].apply( this, [e] ) || false;=0A=
		});=0A=
	},=0A=
	hover: function(f,g) {=0A=
		=0A=
		// A private function for handling mouse 'hovering'=0A=
		function handleHover(e) {=0A=
			// Check if mouse(over|out) are still within the same parent element=0A=
			var p =3D e.relatedTarget;=0A=
	=0A=
			// Traverse up the tree=0A=
			while ( p && p !=3D this ) try { p =3D p.parentNode } catch(e) { p =
=3D this; };=0A=
			=0A=
			// If we actually just moused on to a sub-element, ignore it=0A=
			if ( p =3D=3D this ) return false;=0A=
			=0A=
			// Execute the right function=0A=
			return (e.type =3D=3D "mouseover" ? f : g).apply(this, [e]);=0A=
		}=0A=
		=0A=
		// Bind the function to the two event listeners=0A=
		return this.mouseover(handleHover).mouseout(handleHover);=0A=
	},=0A=
	ready: function(f) {=0A=
		// If the DOM is already ready=0A=
		if ( jQuery.isReady )=0A=
			// Execute the function immediately=0A=
			f.apply( document, [jQuery] );=0A=
			=0A=
		// Otherwise, remember the function for later=0A=
		else=0A=
			// Add the function to the wait list=0A=
			jQuery.readyList.push( function() { return f.apply(this, [jQuery]) } =
);=0A=
	=0A=
		return this;=0A=
	}=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	/*=0A=
	 * All the code that makes DOM Ready work nicely.=0A=
	 */=0A=
	isReady: false,=0A=
	readyList: [],=0A=
	=0A=
	// Handle when the DOM is ready=0A=
	ready: function() {=0A=
		// Make sure that the DOM is not already loaded=0A=
		if ( !jQuery.isReady ) {=0A=
			// Remember that the DOM is ready=0A=
			jQuery.isReady =3D true;=0A=
			=0A=
			// If there are functions bound, to execute=0A=
			if ( jQuery.readyList ) {=0A=
				// Execute all of them=0A=
				jQuery.each( jQuery.readyList, function(){=0A=
					this.apply( document );=0A=
				});=0A=
				=0A=
				// Reset the list of functions=0A=
				jQuery.readyList =3D null;=0A=
			}=0A=
			// Remove event listener to avoid memory leak=0A=
			if ( jQuery.browser.mozilla || jQuery.browser.opera )=0A=
				document.removeEventListener( "DOMContentLoaded", jQuery.ready, =
false );=0A=
			=0A=
			// Remove script element used by IE hack=0A=
			if( !window.frames.length ) // don't remove if frames are present =
(#1187)=0A=
				jQuery(window).load(function(){ jQuery("#__ie_init").remove(); });=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
new function(){=0A=
=0A=
	jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +=0A=
		"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," + =0A=
		"submit,keydown,keypress,keyup,error").split(","), function(i,o){=0A=
		=0A=
		// Handle event binding=0A=
		jQuery.fn[o] =3D function(f){=0A=
			return f ? this.bind(o, f) : this.trigger(o);=0A=
		};=0A=
			=0A=
	});=0A=
	=0A=
	// If Mozilla is used=0A=
	if ( jQuery.browser.mozilla || jQuery.browser.opera )=0A=
		// Use the handy event callback=0A=
		document.addEventListener( "DOMContentLoaded", jQuery.ready, false );=0A=
	=0A=
	// If IE is used, use the excellent hack by Matthias Miller=0A=
	// =
http://www.outofhanwell.com/blog/index.php?title=3Dthe_window_onload_prob=
lem_revisited=0A=
	else if ( jQuery.browser.msie ) {=0A=
	=0A=
		// Only works if you document.write() it=0A=
		document.write("<scr" + "ipt id=3D__ie_init defer=3Dtrue " + =0A=
			"src=3D//:><\/script>");=0A=
	=0A=
		// Use the defer script hack=0A=
		var script =3D document.getElementById("__ie_init");=0A=
		=0A=
		// script does not exist if jQuery is loaded dynamically=0A=
		if ( script ) =0A=
			script.onreadystatechange =3D function() {=0A=
				if ( this.readyState !=3D "complete" ) return;=0A=
				jQuery.ready();=0A=
			};=0A=
	=0A=
		// Clear from memory=0A=
		script =3D null;=0A=
	=0A=
	// If Safari  is used=0A=
	} else if ( jQuery.browser.safari )=0A=
		// Continually check to see if the document.readyState is valid=0A=
		jQuery.safariTimer =3D setInterval(function(){=0A=
			// loaded and complete are both valid states=0A=
			if ( document.readyState =3D=3D "loaded" || =0A=
				document.readyState =3D=3D "complete" ) {=0A=
	=0A=
				// If either one are found, remove the timer=0A=
				clearInterval( jQuery.safariTimer );=0A=
				jQuery.safariTimer =3D null;=0A=
	=0A=
				// and execute any waiting functions=0A=
				jQuery.ready();=0A=
			}=0A=
		}, 10); =0A=
=0A=
	// A fallback to window.onload, that will always work=0A=
	jQuery.event.add( window, "load", jQuery.ready );=0A=
	=0A=
};=0A=
=0A=
// Clean up after IE to avoid memory leaks=0A=
if (jQuery.browser.msie)=0A=
	jQuery(window).one("unload", function() {=0A=
		var global =3D jQuery.event.global;=0A=
		for ( var type in global ) {=0A=
			var els =3D global[type], i =3D els.length;=0A=
			if ( i && type !=3D 'unload' )=0A=
				do=0A=
					els[i-1] && jQuery.event.remove(els[i-1], type);=0A=
				while (--i);=0A=
		}=0A=
	});=0A=
jQuery.fn.extend({=0A=
	loadIfModified: function( url, params, callback ) {=0A=
		this.load( url, params, callback, 1 );=0A=
	},=0A=
	load: function( url, params, callback, ifModified ) {=0A=
		if ( jQuery.isFunction( url ) )=0A=
			return this.bind("load", url);=0A=
=0A=
		callback =3D callback || function(){};=0A=
=0A=
		// Default to a GET request=0A=
		var type =3D "GET";=0A=
=0A=
		// If the second parameter was provided=0A=
		if ( params )=0A=
			// If it's a function=0A=
			if ( jQuery.isFunction( params ) ) {=0A=
				// We assume that it's the callback=0A=
				callback =3D params;=0A=
				params =3D null;=0A=
=0A=
			// Otherwise, build a param string=0A=
			} else {=0A=
				params =3D jQuery.param( params );=0A=
				type =3D "POST";=0A=
			}=0A=
=0A=
		var self =3D this;=0A=
=0A=
		// Request the remote document=0A=
		jQuery.ajax({=0A=
			url: url,=0A=
			type: type,=0A=
			data: params,=0A=
			ifModified: ifModified,=0A=
			complete: function(res, status){=0A=
				if ( status =3D=3D "success" || !ifModified && status =3D=3D =
"notmodified" )=0A=
					// Inject the HTML into all the matched elements=0A=
					self.attr("innerHTML", res.responseText)=0A=
					  // Execute all the scripts inside of the newly-injected HTML=0A=
					  .evalScripts()=0A=
					  // Execute callback=0A=
					  .each( callback, [res.responseText, status, res] );=0A=
				else=0A=
					callback.apply( self, [res.responseText, status, res] );=0A=
			}=0A=
		});=0A=
		return this;=0A=
	},=0A=
	serialize: function() {=0A=
		return jQuery.param( this );=0A=
	},=0A=
	evalScripts: function() {=0A=
		return this.find("script").each(function(){=0A=
			if ( this.src )=0A=
				jQuery.getScript( this.src );=0A=
			else=0A=
				jQuery.globalEval( this.text || this.textContent || this.innerHTML =
|| "" );=0A=
		}).end();=0A=
	}=0A=
=0A=
});=0A=
=0A=
// Attach a bunch of functions for handling common AJAX events=0A=
=0A=
jQuery.each( =
"ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(",=
"), function(i,o){=0A=
	jQuery.fn[o] =3D function(f){=0A=
		return this.bind(o, f);=0A=
	};=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	get: function( url, data, callback, type, ifModified ) {=0A=
		// shift arguments if data argument was ommited=0A=
		if ( jQuery.isFunction( data ) ) {=0A=
			callback =3D data;=0A=
			data =3D null;=0A=
		}=0A=
		=0A=
		return jQuery.ajax({=0A=
			type: "GET",=0A=
			url: url,=0A=
			data: data,=0A=
			success: callback,=0A=
			dataType: type,=0A=
			ifModified: ifModified=0A=
		});=0A=
	},=0A=
	getIfModified: function( url, data, callback, type ) {=0A=
		return jQuery.get(url, data, callback, type, 1);=0A=
	},=0A=
	getScript: function( url, callback ) {=0A=
		return jQuery.get(url, null, callback, "script");=0A=
	},=0A=
	getJSON: function( url, data, callback ) {=0A=
		return jQuery.get(url, data, callback, "json");=0A=
	},=0A=
	post: function( url, data, callback, type ) {=0A=
		if ( jQuery.isFunction( data ) ) {=0A=
			callback =3D data;=0A=
			data =3D {};=0A=
		}=0A=
=0A=
		return jQuery.ajax({=0A=
			type: "POST",=0A=
			url: url,=0A=
			data: data,=0A=
			success: callback,=0A=
			dataType: type=0A=
		});=0A=
	},=0A=
	ajaxTimeout: function( timeout ) {=0A=
		jQuery.ajaxSettings.timeout =3D timeout;=0A=
	},=0A=
	ajaxSetup: function( settings ) {=0A=
		jQuery.extend( jQuery.ajaxSettings, settings );=0A=
	},=0A=
=0A=
	ajaxSettings: {=0A=
		global: true,=0A=
		type: "GET",=0A=
		timeout: 0,=0A=
		contentType: "application/x-www-form-urlencoded",=0A=
		processData: true,=0A=
		async: true,=0A=
		data: null=0A=
	},=0A=
	=0A=
	// Last-Modified header cache for next request=0A=
	lastModified: {},=0A=
	ajax: function( s ) {=0A=
		// TODO introduce global settings, allowing the client to modify them =
for all requests, not only timeout=0A=
		s =3D jQuery.extend({}, jQuery.ajaxSettings, s);=0A=
=0A=
		// if data available=0A=
		if ( s.data ) {=0A=
			// convert data if not already a string=0A=
			if (s.processData && typeof s.data !=3D "string")=0A=
    			s.data =3D jQuery.param(s.data);=0A=
			// append data to url for get requests=0A=
			if( s.type.toLowerCase() =3D=3D "get" ) {=0A=
				// "?" + data or "&" + data (in case there are already params)=0A=
				s.url +=3D ((s.url.indexOf("?") > -1) ? "&" : "?") + s.data;=0A=
				// IE likes to send both get and post data, prevent this=0A=
				s.data =3D null;=0A=
			}=0A=
		}=0A=
=0A=
		// Watch for a new set of requests=0A=
		if ( s.global && ! jQuery.active++ )=0A=
			jQuery.event.trigger( "ajaxStart" );=0A=
=0A=
		var requestDone =3D false;=0A=
=0A=
		// Create the request object; Microsoft failed to properly=0A=
		// implement the XMLHttpRequest in IE7, so we use the ActiveXObject =
when it is available=0A=
		var xml =3D window.ActiveXObject ? new =
ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();=0A=
=0A=
		// Open the socket=0A=
		xml.open(s.type, s.url, s.async);=0A=
=0A=
		// Set the correct header, if data is being sent=0A=
		if ( s.data )=0A=
			xml.setRequestHeader("Content-Type", s.contentType);=0A=
=0A=
		// Set the If-Modified-Since header, if ifModified mode.=0A=
		if ( s.ifModified )=0A=
			xml.setRequestHeader("If-Modified-Since",=0A=
				jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );=0A=
=0A=
		// Set header so the called script knows that it's an XMLHttpRequest=0A=
		xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");=0A=
=0A=
		// Allow custom headers/mimetypes=0A=
		if( s.beforeSend )=0A=
			s.beforeSend(xml);=0A=
			=0A=
		if ( s.global )=0A=
		    jQuery.event.trigger("ajaxSend", [xml, s]);=0A=
=0A=
		// Wait for a response to come back=0A=
		var onreadystatechange =3D function(isTimeout){=0A=
			// The transfer is complete and the data is available, or the request =
timed out=0A=
			if ( xml && (xml.readyState =3D=3D 4 || isTimeout =3D=3D "timeout") ) =
{=0A=
				requestDone =3D true;=0A=
				=0A=
				// clear poll interval=0A=
				if (ival) {=0A=
					clearInterval(ival);=0A=
					ival =3D null;=0A=
				}=0A=
				=0A=
				var status;=0A=
				try {=0A=
					status =3D jQuery.httpSuccess( xml ) && isTimeout !=3D "timeout" ?=0A=
						s.ifModified && jQuery.httpNotModified( xml, s.url ) ? =
"notmodified" : "success" : "error";=0A=
					// Make sure that the request was successful or notmodified=0A=
					if ( status !=3D "error" ) {=0A=
						// Cache Last-Modified header, if ifModified mode.=0A=
						var modRes;=0A=
						try {=0A=
							modRes =3D xml.getResponseHeader("Last-Modified");=0A=
						} catch(e) {} // swallow exception thrown by FF if header is not =
available=0A=
	=0A=
						if ( s.ifModified && modRes )=0A=
							jQuery.lastModified[s.url] =3D modRes;=0A=
	=0A=
						// process the data (runs the xml through httpData regardless of =
callback)=0A=
						var data =3D jQuery.httpData( xml, s.dataType );=0A=
	=0A=
						// If a local callback was specified, fire it and pass it the data=0A=
						if ( s.success )=0A=
							s.success( data, status );=0A=
	=0A=
						// Fire the global callback=0A=
						if( s.global )=0A=
							jQuery.event.trigger( "ajaxSuccess", [xml, s] );=0A=
					} else=0A=
						jQuery.handleError(s, xml, status);=0A=
				} catch(e) {=0A=
					status =3D "error";=0A=
					jQuery.handleError(s, xml, status, e);=0A=
				}=0A=
=0A=
				// The request was completed=0A=
				if( s.global )=0A=
					jQuery.event.trigger( "ajaxComplete", [xml, s] );=0A=
=0A=
				// Handle the global AJAX counter=0A=
				if ( s.global && ! --jQuery.active )=0A=
					jQuery.event.trigger( "ajaxStop" );=0A=
=0A=
				// Process result=0A=
				if ( s.complete )=0A=
					s.complete(xml, status);=0A=
=0A=
				// Stop memory leaks=0A=
				if(s.async)=0A=
					xml =3D null;=0A=
			}=0A=
		};=0A=
		=0A=
		// don't attach the handler to the request, just poll it instead=0A=
		var ival =3D setInterval(onreadystatechange, 13); =0A=
=0A=
		// Timeout checker=0A=
		if ( s.timeout > 0 )=0A=
			setTimeout(function(){=0A=
				// Check to see if the request is still happening=0A=
				if ( xml ) {=0A=
					// Cancel the request=0A=
					xml.abort();=0A=
=0A=
					if( !requestDone )=0A=
						onreadystatechange( "timeout" );=0A=
				}=0A=
			}, s.timeout);=0A=
			=0A=
		// Send the data=0A=
		try {=0A=
			xml.send(s.data);=0A=
		} catch(e) {=0A=
			jQuery.handleError(s, xml, null, e);=0A=
		}=0A=
		=0A=
		// firefox 1.5 doesn't fire statechange for sync requests=0A=
		if ( !s.async )=0A=
			onreadystatechange();=0A=
		=0A=
		// return XMLHttpRequest to allow aborting the request etc.=0A=
		return xml;=0A=
	},=0A=
=0A=
	handleError: function( s, xml, status, e ) {=0A=
		// If a local callback was specified, fire it=0A=
		if ( s.error ) s.error( xml, status, e );=0A=
=0A=
		// Fire the global callback=0A=
		if ( s.global )=0A=
			jQuery.event.trigger( "ajaxError", [xml, s, e] );=0A=
	},=0A=
=0A=
	// Counter for holding the number of active queries=0A=
	active: 0,=0A=
=0A=
	// Determines if an XMLHttpRequest was successful or not=0A=
	httpSuccess: function( r ) {=0A=
		try {=0A=
			return !r.status && location.protocol =3D=3D "file:" ||=0A=
				( r.status >=3D 200 && r.status < 300 ) || r.status =3D=3D 304 ||=0A=
				jQuery.browser.safari && r.status =3D=3D undefined;=0A=
		} catch(e){}=0A=
		return false;=0A=
	},=0A=
=0A=
	// Determines if an XMLHttpRequest returns NotModified=0A=
	httpNotModified: function( xml, url ) {=0A=
		try {=0A=
			var xmlRes =3D xml.getResponseHeader("Last-Modified");=0A=
=0A=
			// Firefox always returns 200. check Last-Modified date=0A=
			return xml.status =3D=3D 304 || xmlRes =3D=3D =
jQuery.lastModified[url] ||=0A=
				jQuery.browser.safari && xml.status =3D=3D undefined;=0A=
		} catch(e){}=0A=
		return false;=0A=
	},=0A=
=0A=
	/* Get the data out of an XMLHttpRequest.=0A=
	 * Return parsed XML if content-type header is "xml" and type is "xml" =
or omitted,=0A=
	 * otherwise return plain text.=0A=
	 * (String) data - The type of data that you're expecting back,=0A=
	 * (e.g. "xml", "html", "script")=0A=
	 */=0A=
	httpData: function( r, type ) {=0A=
		var ct =3D r.getResponseHeader("content-type");=0A=
		var data =3D !type && ct && ct.indexOf("xml") >=3D 0;=0A=
		data =3D type =3D=3D "xml" || data ? r.responseXML : r.responseText;=0A=
=0A=
		// If the type is "script", eval it in global context=0A=
		if ( type =3D=3D "script" )=0A=
			jQuery.globalEval( data );=0A=
=0A=
		// Get the JavaScript object, if JSON is used.=0A=
		if ( type =3D=3D "json" )=0A=
			data =3D eval("(" + data + ")");=0A=
=0A=
		// evaluate scripts within html=0A=
		if ( type =3D=3D "html" )=0A=
			jQuery("<div>").html(data).evalScripts();=0A=
=0A=
		return data;=0A=
	},=0A=
=0A=
	// Serialize an array of form elements or a set of=0A=
	// key/values into a query string=0A=
	param: function( a ) {=0A=
		var s =3D [];=0A=
=0A=
		// If an array was passed in, assume that it is an array=0A=
		// of form elements=0A=
		if ( a.constructor =3D=3D Array || a.jquery )=0A=
			// Serialize the form elements=0A=
			jQuery.each( a, function(){=0A=
				s.push( encodeURIComponent(this.name) + "=3D" + encodeURIComponent( =
this.value ) );=0A=
			});=0A=
=0A=
		// Otherwise, assume that it's an object of key/value pairs=0A=
		else=0A=
			// Serialize the key/values=0A=
			for ( var j in a )=0A=
				// If the value is an array then the key names need to be repeated=0A=
				if ( a[j] && a[j].constructor =3D=3D Array )=0A=
					jQuery.each( a[j], function(){=0A=
						s.push( encodeURIComponent(j) + "=3D" + encodeURIComponent( this ) =
);=0A=
					});=0A=
				else=0A=
					s.push( encodeURIComponent(j) + "=3D" + encodeURIComponent( a[j] ) =
);=0A=
=0A=
		// Return the resulting serialization=0A=
		return s.join("&");=0A=
	},=0A=
	=0A=
	// evalulates a script in global context=0A=
	// not reliable for safari=0A=
	globalEval: function( data ) {=0A=
		if ( window.execScript )=0A=
			window.execScript( data );=0A=
		else if ( jQuery.browser.safari )=0A=
			// safari doesn't provide a synchronous global eval=0A=
			window.setTimeout( data, 0 );=0A=
		else=0A=
			eval.call( window, data );=0A=
	}=0A=
=0A=
});=0A=
jQuery.fn.extend({=0A=
=0A=
	show: function(speed,callback){=0A=
		return speed ?=0A=
			this.animate({=0A=
				height: "show", width: "show", opacity: "show"=0A=
			}, speed, callback) :=0A=
			=0A=
			this.filter(":hidden").each(function(){=0A=
				this.style.display =3D this.oldblock ? this.oldblock : "";=0A=
				if ( jQuery.css(this,"display") =3D=3D "none" )=0A=
					this.style.display =3D "block";=0A=
			}).end();=0A=
	},=0A=
=0A=
	hide: function(speed,callback){=0A=
		return speed ?=0A=
			this.animate({=0A=
				height: "hide", width: "hide", opacity: "hide"=0A=
			}, speed, callback) :=0A=
			=0A=
			this.filter(":visible").each(function(){=0A=
				this.oldblock =3D this.oldblock || jQuery.css(this,"display");=0A=
				if ( this.oldblock =3D=3D "none" )=0A=
					this.oldblock =3D "block";=0A=
				this.style.display =3D "none";=0A=
			}).end();=0A=
	},=0A=
=0A=
	// Save the old toggle function=0A=
	_toggle: jQuery.fn.toggle,=0A=
	toggle: function( fn, fn2 ){=0A=
		return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?=0A=
			this._toggle( fn, fn2 ) :=0A=
			fn ?=0A=
				this.animate({=0A=
					height: "toggle", width: "toggle", opacity: "toggle"=0A=
				}, fn, fn2) :=0A=
				this.each(function(){=0A=
					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();=0A=
				});=0A=
	},=0A=
	slideDown: function(speed,callback){=0A=
		return this.animate({height: "show"}, speed, callback);=0A=
	},=0A=
	slideUp: function(speed,callback){=0A=
		return this.animate({height: "hide"}, speed, callback);=0A=
	},=0A=
	slideToggle: function(speed, callback){=0A=
		return this.animate({height: "toggle"}, speed, callback);=0A=
	},=0A=
	fadeIn: function(speed, callback){=0A=
		return this.animate({opacity: "show"}, speed, callback);=0A=
	},=0A=
	fadeOut: function(speed, callback){=0A=
		return this.animate({opacity: "hide"}, speed, callback);=0A=
	},=0A=
	fadeTo: function(speed,to,callback){=0A=
		return this.animate({opacity: to}, speed, callback);=0A=
	},=0A=
	animate: function( prop, speed, easing, callback ) {=0A=
		return this.queue(function(){=0A=
			var hidden =3D jQuery(this).is(":hidden"),=0A=
				opt =3D jQuery.speed(speed, easing, callback),=0A=
				self =3D this;=0A=
			=0A=
			for ( var p in prop ) {=0A=
				if ( prop[p] =3D=3D "hide" && hidden || prop[p] =3D=3D "show" && =
!hidden )=0A=
					return jQuery.isFunction(opt.complete) && opt.complete.apply(this);=0A=
=0A=
				if ( p =3D=3D "height" || p =3D=3D "width" ) {=0A=
					// Store display property=0A=
					opt.display =3D jQuery.css(this, "display");=0A=
=0A=
					// Make sure that nothing sneaks out=0A=
					opt.overflow =3D this.style.overflow;=0A=
				}=0A=
			}=0A=
=0A=
			if ( opt.overflow !=3D null )=0A=
				this.style.overflow =3D "hidden";=0A=
=0A=
			this.curAnim =3D jQuery.extend({}, prop);=0A=
			=0A=
			jQuery.each( prop, function(name, val){=0A=
				var e =3D new jQuery.fx( self, opt, name );=0A=
				if ( val.constructor =3D=3D Number )=0A=
					e.custom( e.cur(), val );=0A=
				else=0A=
					e[ val =3D=3D "toggle" ? hidden ? "show" : "hide" : val ]( prop );=0A=
			});=0A=
		});=0A=
	},=0A=
	queue: function(type,fn){=0A=
		if ( !fn ) {=0A=
			fn =3D type;=0A=
			type =3D "fx";=0A=
		}=0A=
	=0A=
		return this.each(function(){=0A=
			if ( !this.queue )=0A=
				this.queue =3D {};=0A=
	=0A=
			if ( !this.queue[type] )=0A=
				this.queue[type] =3D [];=0A=
	=0A=
			this.queue[type].push( fn );=0A=
		=0A=
			if ( this.queue[type].length =3D=3D 1 )=0A=
				fn.apply(this);=0A=
		});=0A=
	}=0A=
=0A=
});=0A=
=0A=
jQuery.extend({=0A=
	=0A=
	speed: function(speed, easing, fn) {=0A=
		var opt =3D speed && speed.constructor =3D=3D Object ? speed : {=0A=
			complete: fn || !fn && easing || =0A=
				jQuery.isFunction( speed ) && speed,=0A=
			duration: speed,=0A=
			easing: fn && easing || easing && easing.constructor !=3D Function && =
easing || (jQuery.easing.swing ? "swing" : "linear")=0A=
		};=0A=
=0A=
		opt.duration =3D (opt.duration && opt.duration.constructor =3D=3D =
Number ? =0A=
			opt.duration : =0A=
			{ slow: 600, fast: 200 }[opt.duration]) || 400;=0A=
	=0A=
		// Queueing=0A=
		opt.old =3D opt.complete;=0A=
		opt.complete =3D function(){=0A=
			jQuery.dequeue(this, "fx");=0A=
			if ( jQuery.isFunction( opt.old ) )=0A=
				opt.old.apply( this );=0A=
		};=0A=
	=0A=
		return opt;=0A=
	},=0A=
	=0A=
	easing: {=0A=
		linear: function( p, n, firstNum, diff ) {=0A=
			return firstNum + diff * p;=0A=
		},=0A=
		swing: function( p, n, firstNum, diff ) {=0A=
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;=0A=
		}=0A=
	},=0A=
	=0A=
	queue: {},=0A=
	=0A=
	dequeue: function(elem,type){=0A=
		type =3D type || "fx";=0A=
	=0A=
		if ( elem.queue && elem.queue[type] ) {=0A=
			// Remove self=0A=
			elem.queue[type].shift();=0A=
	=0A=
			// Get next function=0A=
			var f =3D elem.queue[type][0];=0A=
		=0A=
			if ( f ) f.apply( elem );=0A=
		}=0A=
	},=0A=
=0A=
	timers: [],=0A=
=0A=
	/*=0A=
	 * I originally wrote fx() as a clone of moo.fx and in the process=0A=
	 * of making it small in size the code became illegible to sane=0A=
	 * people. You've been warned.=0A=
	 */=0A=
	=0A=
	fx: function( elem, options, prop ){=0A=
=0A=
		var z =3D this;=0A=
=0A=
		// The styles=0A=
		var y =3D elem.style;=0A=
		=0A=
		// Simple function for setting a style value=0A=
		z.a =3D function(){=0A=
			if ( options.step )=0A=
				options.step.apply( elem, [ z.now ] );=0A=
=0A=
			if ( prop =3D=3D "opacity" )=0A=
				jQuery.attr(y, "opacity", z.now); // Let attr handle opacity=0A=
			else {=0A=
				y[prop] =3D parseInt(z.now) + "px";=0A=
				y.display =3D "block"; // Set display property to block for animation=0A=
			}=0A=
		};=0A=
=0A=
		// Figure out the maximum number to run to=0A=
		z.max =3D function(){=0A=
			return parseFloat( jQuery.css(elem,prop) );=0A=
		};=0A=
=0A=
		// Get the current size=0A=
		z.cur =3D function(){=0A=
			var r =3D parseFloat( jQuery.curCSS(elem, prop) );=0A=
			return r && r > -10000 ? r : z.max();=0A=
		};=0A=
=0A=
		// Start an animation from one number to another=0A=
		z.custom =3D function(from,to){=0A=
			z.startTime =3D (new Date()).getTime();=0A=
			z.now =3D from;=0A=
			z.a();=0A=
=0A=
			jQuery.timers.push(function(){=0A=
				return z.step(from, to);=0A=
			});=0A=
=0A=
			if ( jQuery.timers.length =3D=3D 1 ) {=0A=
				var timer =3D setInterval(function(){=0A=
					var timers =3D jQuery.timers;=0A=
					=0A=
					for ( var i =3D 0; i < timers.length; i++ )=0A=
						if ( !timers[i]() )=0A=
							timers.splice(i--, 1);=0A=
=0A=
					if ( !timers.length )=0A=
						clearInterval( timer );=0A=
				}, 13);=0A=
			}=0A=
		};=0A=
=0A=
		// Simple 'show' function=0A=
		z.show =3D function(){=0A=
			if ( !elem.orig ) elem.orig =3D {};=0A=
=0A=
			// Remember where we started, so that we can go back to it later=0A=
			elem.orig[prop] =3D jQuery.attr( elem.style, prop );=0A=
=0A=
			options.show =3D true;=0A=
=0A=
			// Begin the animation=0A=
			z.custom(0, this.cur());=0A=
=0A=
			// Make sure that we start at a small width/height to avoid any=0A=
			// flash of content=0A=
			if ( prop !=3D "opacity" )=0A=
				y[prop] =3D "1px";=0A=
			=0A=
			// Start by showing the element=0A=
			jQuery(elem).show();=0A=
		};=0A=
=0A=
		// Simple 'hide' function=0A=
		z.hide =3D function(){=0A=
			if ( !elem.orig ) elem.orig =3D {};=0A=
=0A=
			// Remember where we started, so that we can go back to it later=0A=
			elem.orig[prop] =3D jQuery.attr( elem.style, prop );=0A=
=0A=
			options.hide =3D true;=0A=
=0A=
			// Begin the animation=0A=
			z.custom(this.cur(), 0);=0A=
		};=0A=
=0A=
		// Each step of an animation=0A=
		z.step =3D function(firstNum, lastNum){=0A=
			var t =3D (new Date()).getTime();=0A=
=0A=
			if (t > options.duration + z.startTime) {=0A=
				z.now =3D lastNum;=0A=
				z.a();=0A=
=0A=
				if (elem.curAnim) elem.curAnim[ prop ] =3D true;=0A=
=0A=
				var done =3D true;=0A=
				for ( var i in elem.curAnim )=0A=
					if ( elem.curAnim[i] !=3D=3D true )=0A=
						done =3D false;=0A=
=0A=
				if ( done ) {=0A=
					if ( options.display !=3D null ) {=0A=
						// Reset the overflow=0A=
						y.overflow =3D options.overflow;=0A=
					=0A=
						// Reset the display=0A=
						y.display =3D options.display;=0A=
						if ( jQuery.css(elem, "display") =3D=3D "none" )=0A=
							y.display =3D "block";=0A=
					}=0A=
=0A=
					// Hide the element if the "hide" operation was done=0A=
					if ( options.hide )=0A=
						y.display =3D "none";=0A=
=0A=
					// Reset the properties, if the item has been hidden or shown=0A=
					if ( options.hide || options.show )=0A=
						for ( var p in elem.curAnim )=0A=
							jQuery.attr(y, p, elem.orig[p]);=0A=
				}=0A=
=0A=
				// If a callback was provided, execute it=0A=
				if ( done && jQuery.isFunction( options.complete ) )=0A=
					// Execute the complete function=0A=
					options.complete.apply( elem );=0A=
=0A=
				return false;=0A=
			} else {=0A=
				var n =3D t - this.startTime;=0A=
				// Figure out where in the animation we are and set the number=0A=
				var p =3D n / options.duration;=0A=
				=0A=
				// Perform the easing function, defaults to swing=0A=
				z.now =3D jQuery.easing[options.easing](p, n, firstNum, =
(lastNum-firstNum), options.duration);=0A=
=0A=
				// Perform the next step of the animation=0A=
				z.a();=0A=
			}=0A=
=0A=
			return true;=0A=
		};=0A=
	=0A=
	}=0A=
});=0A=
}=0A=

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/lib/thickbox/thickbox.js

/*=0A=
 * Thickbox 3 - One Box To Rule Them All.=0A=
 * By Cody Lindley (http://www.codylindley.com)=0A=
 * Copyright (c) 2007 cody lindley=0A=
 * Licensed under the MIT License: =
http://www.opensource.org/licenses/mit-license.php=0A=
*/=0A=
		  =0A=
var tb_pathToImage =3D "/img/common/ajaxloader.gif";=0A=
=0A=
/*!!!!!!!!!!!!!!!!! edit below this line at your own risk =
!!!!!!!!!!!!!!!!!!!!!!!*/=0A=
=0A=
//on page load call tb_init=0A=
jQuery(document).ready(function(){   =0A=
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to =
apply thickbox=0A=
	imgLoader =3D new Image();// preload image=0A=
	imgLoader.src =3D tb_pathToImage;=0A=
});=0A=
=0A=
//add thickbox to href & area elements that have a class of .thickbox=0A=
function tb_init(domChunk){=0A=
	jQuery(domChunk).click(function(){=0A=
	var t =3D this.title || this.name || null;=0A=
	var a =3D this.href || this.alt;=0A=
	var g =3D this.rel || false;=0A=
	tb_show(t,a,g);=0A=
	this.blur();=0A=
	return false;=0A=
	});=0A=
}=0A=
=0A=
// TSC: A function to call upon exit from the Thickbox.=0A=
var exitFunction =3D null;=0A=
var prevKeyDown =3D null;=0A=
var prevInlineID =3D null;=0A=
var prevInlineHTML =3D null;=0A=
=0A=
function tb_show(caption, url, imageGroup, exitFunc) {//function called =
when the user clicks on a thickbox link=0A=
=0A=
	try {=0A=
		if (typeof document.body.style.maxHeight =3D=3D=3D "undefined") {//if =
IE 6=0A=
			jQuery("body","html").css({height: "100%", width: "100%"});=0A=
			jQuery("html").css("overflow","hidden");=0A=
			if (document.getElementById("TB_HideSelect") =3D=3D=3D null) =
{//iframe to hide select elements in ie6=0A=
				jQuery("body").append("<iframe id=3D'TB_HideSelect'></iframe><div =
id=3D'TB_overlay'></div><div id=3D'TB_window'></div>");=0A=
				jQuery("#TB_overlay").click(tb_remove);=0A=
			}=0A=
		}else{//all others=0A=
			if(document.getElementById("TB_overlay") =3D=3D=3D null){=0A=
				jQuery("body").append("<div id=3D'TB_overlay'></div><div =
id=3D'TB_window'>");=0A=
				jQuery("#TB_overlay").click(tb_remove);=0A=
			}=0A=
		}=0A=
		=0A=
		if(tb_detectMacXFF()){=0A=
			jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png =
overlay so hide flash=0A=
		}else{=0A=
			jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and =
opacity=0A=
		}=0A=
		=0A=
		// TSC: Remember the exit function to call.=0A=
		exitFunction =3D exitFunc;=0A=
		=0A=
		prevKeyDown =3D document.onkeydown;=0A=
		=0A=
		if(caption=3D=3D=3Dnull){caption=3D"";}=0A=
		jQuery("body").append("<div id=3D'TB_load'><img =
src=3D'"+imgLoader.src+"' /></div>");//add loader to the page=0A=
		jQuery('#TB_load').show();//show loader=0A=
		=0A=
		var baseURL;=0A=
	   if(url.indexOf("?")!=3D=3D-1){ //ff there is a query string involved=0A=
			baseURL =3D url.substr(0, url.indexOf("?"));=0A=
	   }else{ =0A=
	   		baseURL =3D url;=0A=
	   }=0A=
	   =0A=
	   var urlString =3D /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;=0A=
	   var urlType =3D baseURL.toLowerCase().match(urlString);=0A=
=0A=
		if(urlType =3D=3D '.jpg' || urlType =3D=3D '.jpeg' || urlType =3D=3D =
'.png' || urlType =3D=3D '.gif' || urlType =3D=3D '.bmp'){//code to show =
images=0A=
				=0A=
			TB_PrevCaption =3D "";=0A=
			TB_PrevURL =3D "";=0A=
			TB_PrevHTML =3D "";=0A=
			TB_NextCaption =3D "";=0A=
			TB_NextURL =3D "";=0A=
			TB_NextHTML =3D "";=0A=
			TB_imageCount =3D "";=0A=
			TB_FoundURL =3D false;=0A=
			if(imageGroup){=0A=
				TB_TempArray =3D jQuery("a[@rel=3D"+imageGroup+"]").get();=0A=
				for (TB_Counter =3D 0; ((TB_Counter < TB_TempArray.length) && =
(TB_NextHTML =3D=3D=3D "")); TB_Counter++) {=0A=
					var urlTypeTemp =3D =
TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);=0A=
						if (!(TB_TempArray[TB_Counter].href =3D=3D url)) {						=0A=
							if (TB_FoundURL) {=0A=
								TB_NextCaption =3D TB_TempArray[TB_Counter].title;=0A=
								TB_NextURL =3D TB_TempArray[TB_Counter].href;=0A=
								TB_NextHTML =3D "<span id=3D'TB_next'>&nbsp;&nbsp;<a =
href=3D'#'>Next &gt;</a></span>";=0A=
							} else {=0A=
								TB_PrevCaption =3D TB_TempArray[TB_Counter].title;=0A=
								TB_PrevURL =3D TB_TempArray[TB_Counter].href;=0A=
								TB_PrevHTML =3D "<span id=3D'TB_prev'>&nbsp;&nbsp;<a =
href=3D'#'>&lt; Prev</a></span>";=0A=
							}=0A=
						} else {=0A=
							TB_FoundURL =3D true;=0A=
							TB_imageCount =3D "Image " + (TB_Counter + 1) +" of "+ =
(TB_TempArray.length);											=0A=
						}=0A=
				}=0A=
			}=0A=
=0A=
			imgPreloader =3D new Image();=0A=
			imgPreloader.onload =3D function(){		=0A=
			imgPreloader.onload =3D null;=0A=
				=0A=
			// Resizing large images - orginal by Christian Montoya edited by me.=0A=
			var pagesize =3D tb_getPageSize();=0A=
			var x =3D pagesize[0] - 150;=0A=
			var y =3D pagesize[1] - 150;=0A=
			var imageWidth =3D imgPreloader.width;=0A=
			var imageHeight =3D imgPreloader.height;=0A=
			if (imageWidth > x) {=0A=
				imageHeight =3D imageHeight * (x / imageWidth); =0A=
				imageWidth =3D x; =0A=
				if (imageHeight > y) { =0A=
					imageWidth =3D imageWidth * (y / imageHeight); =0A=
					imageHeight =3D y; =0A=
				}=0A=
			} else if (imageHeight > y) { =0A=
				imageWidth =3D imageWidth * (y / imageHeight); =0A=
				imageHeight =3D y; =0A=
				if (imageWidth > x) { =0A=
					imageHeight =3D imageHeight * (x / imageWidth); =0A=
					imageWidth =3D x;=0A=
				}=0A=
			}=0A=
			// End Resizing=0A=
			=0A=
			TB_WIDTH =3D imageWidth + 30;=0A=
			TB_HEIGHT =3D imageHeight + 60;=0A=
			// TSC: Modified the default close button for image lightboxes.=0A=
			jQuery("#TB_window").append("<a href=3D'' id=3D'TB_ImageOff' =
title=3D'Close'><img id=3D'TB_Image' src=3D'"+url+"' =
width=3D'"+imageWidth+"' height=3D'"+imageHeight+"' =
alt=3D'"+caption+"'/></a>" + "<div id=3D'TB_caption'>"+caption+"<div =
id=3D'TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + =
"</div></div><div id=3D'TB_closeWindow'><a href=3D'#' =
id=3D'TB_closeWindowButton' title=3D'Close'>Close</a></div>"); 		=0A=
			=0A=
			jQuery("#TB_closeWindowButton").click(tb_remove);=0A=
			=0A=
			if (!(TB_PrevHTML =3D=3D=3D "")) {=0A=
				function goPrev(){=0A=
					=
if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("clic=
k",goPrev);}=0A=
					jQuery("#TB_window").remove();=0A=
					jQuery("body").append("<div id=3D'TB_window'></div>");=0A=
					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);=0A=
					return false;	=0A=
				}=0A=
				jQuery("#TB_prev").click(goPrev);=0A=
			}=0A=
			=0A=
			if (!(TB_NextHTML =3D=3D=3D "")) {		=0A=
				function goNext(){=0A=
					jQuery("#TB_window").remove();=0A=
					jQuery("body").append("<div id=3D'TB_window'></div>");=0A=
					tb_show(TB_NextCaption, TB_NextURL, imageGroup);				=0A=
					return false;	=0A=
				}=0A=
				jQuery("#TB_next").click(goNext);=0A=
				=0A=
			}=0A=
         =0A=
			document.onkeydown =3D function(e){ 	=0A=
				if (e =3D=3D null) { // ie=0A=
					keycode =3D event.keyCode;=0A=
				} else { // mozilla=0A=
					keycode =3D e.which;=0A=
				}=0A=
				if(keycode =3D=3D 27){ // close=0A=
					tb_remove();=0A=
				} else if(keycode =3D=3D 190){ // display previous image=0A=
					if(!(TB_NextHTML =3D=3D "")){=0A=
						document.onkeydown =3D "";=0A=
						goNext();=0A=
					}=0A=
				} else if(keycode =3D=3D 188){ // display next image=0A=
					if(!(TB_PrevHTML =3D=3D "")){=0A=
						document.onkeydown =3D "";=0A=
						goPrev();=0A=
					}=0A=
				}	=0A=
			};=0A=
			=0A=
			tb_position();=0A=
			jQuery("#TB_load").remove();=0A=
			jQuery("#TB_ImageOff").click(tb_remove);=0A=
			jQuery("#TB_window").css({display:"block"}); //for safari using css =
instead of show=0A=
			};=0A=
			=0A=
			imgPreloader.src =3D url;=0A=
		}else{//code to show html pages=0A=
			=0A=
			var queryString =3D url.replace(/^[^\?]+\??/,'');=0A=
			var params =3D tb_parseQuery( queryString );=0A=
=0A=
			TB_WIDTH =3D (params['width']*1) + 30 || 630; //defaults to 630 if no =
paramaters were added to URL=0A=
			TB_HEIGHT =3D (params['height']*1) + 40 || 440; //defaults to 440 if =
no paramaters were added to URL=0A=
			ajaxContentW =3D TB_WIDTH - 30;=0A=
			ajaxContentH =3D TB_HEIGHT - 45;=0A=
			=0A=
			if(url.indexOf('TB_iframe') !=3D -1){				=0A=
					urlNoQuery =3D url.split('TB_');=0A=
					// TSC: Modified the default close button for image lightboxes.		=0A=
					jQuery("#TB_window").append("<div id=3D'TB_title'><div =
id=3D'TB_ajaxWindowTitle'>"+caption+"</div><div =
id=3D'TB_closeAjaxWindow'><a href=3D'#' id=3D'TB_closeWindowButton' =
title=3D'Close'>Close</a></div></div><iframe frameborder=3D'0' =
hspace=3D'0' src=3D'"+urlNoQuery[0]+"' id=3D'TB_iframeContent' =
name=3D'TB_iframeContent' style=3D'width:"+(ajaxContentW + =
29)+"px;height:"+(ajaxContentH + 17)+"px;' onload=3D'tb_showIframe()'> =
</iframe>");=0A=
				}else{=0A=
					if(jQuery("#TB_window").css("display") !=3D "block"){=0A=
						if(params['modal'] !=3D "true"){=0A=
						// TSC: Modified the default close button for image lightboxes.=0A=
						jQuery("#TB_window").append("<div id=3D'TB_title'><div =
id=3D'TB_ajaxWindowTitle'>"+caption+"</div><div =
id=3D'TB_closeAjaxWindow'><a href=3D'#' =
id=3D'TB_closeWindowButton'>Close</a></div></div><div =
id=3D'TB_ajaxContent' =
style=3D'width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");=0A=
						}else{=0A=
						jQuery("#TB_overlay").unbind();=0A=
						jQuery("#TB_window").append("<div id=3D'TB_ajaxContent' =
class=3D'TB_modal' =
style=3D'width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	=0A=
						}=0A=
					}else{=0A=
						jQuery("#TB_ajaxContent")[0].style.width =3D ajaxContentW +"px";=0A=
						jQuery("#TB_ajaxContent")[0].style.height =3D ajaxContentH +"px";=0A=
						jQuery("#TB_ajaxContent")[0].scrollTop =3D 0;=0A=
						jQuery("#TB_ajaxWindowTitle").html(caption);=0A=
					}=0A=
			}=0A=
					=0A=
			jQuery("#TB_closeWindowButton").click(tb_remove);=0A=
			=0A=
				if(url.indexOf('TB_inline') !=3D -1){	=0A=
				   // TSC: Get the inline DOM node, remove it from its current =
parent and add it to=0A=
				   // the thickbox parent.=0A=
				   var domNodes =3D document.getElementById( params['inlineId'] );=0A=
				   prevInlineID =3D domNodes.parentNode.id;=0A=
				   =0A=
				   domNodes.parentNode.removeChild( domNodes );=0A=
				   document.getElementById( "TB_ajaxContent" ).appendChild( domNodes =
);=0A=
					=0A=
					tb_position();=0A=
					jQuery("#TB_load").remove();=0A=
					jQuery("#TB_window").css({display:"block"}); =0A=
				}else if(url.indexOf('TB_iframe') !=3D -1){=0A=
					tb_position();=0A=
					if(frames['TB_iframeContent'] =3D=3D=3D undefined){//be nice to =
safari=0A=
						jQuery("#TB_load").remove();=0A=
						jQuery("#TB_window").css({display:"block"});=0A=
						jQuery(document).keyup( function(e){ var key =3D e.keyCode; if(key =
=3D=3D 27){tb_remove();}});=0A=
					}=0A=
				}else{=0A=
					jQuery("#TB_ajaxContent").load(url +=3D "&random=3D" + (new =
Date().getTime()),function(){//to do a post change this load method=0A=
						tb_position();=0A=
						jQuery("#TB_load").remove();=0A=
						tb_init("#TB_ajaxContent a.thickbox");=0A=
						jQuery("#TB_window").css({display:"block"});=0A=
					});=0A=
				}=0A=
			=0A=
		}=0A=
=0A=
		if(!params['modal']){=0A=
			document.onkeyup =3D function(e){ 	=0A=
				if (e =3D=3D null) { // ie=0A=
					keycode =3D event.keyCode;=0A=
				} else { // mozilla=0A=
					keycode =3D e.which;=0A=
				}=0A=
				if(keycode =3D=3D 27){ // close=0A=
					tb_remove();=0A=
				}	=0A=
			};=0A=
		}=0A=
		=0A=
	} catch(e) {=0A=
		//nothing here=0A=
	}=0A=
}=0A=
=0A=
//helper functions below=0A=
function tb_showIframe(){=0A=
	jQuery("#TB_load").remove();=0A=
	jQuery("#TB_window").css({display:"block"});=0A=
}=0A=
=0A=
function tb_remove() {=0A=
 	jQuery("#TB_imageOff").unbind("click");=0A=
	jQuery("#TB_overlay").unbind("click");=0A=
	jQuery("#TB_closeWindowButton").unbind("click");=0A=
	=
jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_ove=
rlay,#TB_HideSelect').remove();});=0A=
	jQuery("#TB_load").remove();=0A=
	if (typeof document.body.style.maxHeight =3D=3D "undefined") {//if IE 6=0A=
		jQuery("body","html").css({height: "auto", width: "auto"});=0A=
		jQuery("html").css("overflow","");=0A=
	}=0A=
	document.onkeydown =3D prevKeyDown;=0A=
	=0A=
	// TSC: Reset any inline HTML...=0A=
	if ( prevInlineID )=0A=
	{=0A=
      var domNodes =3D document.getElementById( "TB_ajaxContent" =
).firstChild;=0A=
	   =0A=
	   document.getElementById( "TB_ajaxContent" ).removeChild( domNodes ); =
  =0A=
	   document.getElementById( prevInlineID ).appendChild( domNodes );=0A=
	}=0A=
	=0A=
	// TSC: If an exit function has been defined, call it.=0A=
	if ( exitFunction )=0A=
	{=0A=
	   exitFunction();=0A=
	}=0A=
}=0A=
=0A=
/*=0A=
function tb_position() {=0A=
jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) =
+ 'px', width: TB_WIDTH + 'px'});=0A=
	if ( !(jQuery.browser.msie && typeof XMLHttpRequest =3D=3D 'function')) =
{ // take away IE6=0A=
		jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / =
2),10) + 'px'});=0A=
	}=0A=
}=0A=
*/=0A=
=0A=
// TSC: Modifed for positioning TB_window when page is scrolled in IE6=0A=
// =
http://codylindley.com/thickboxforum/comments.php?DiscussionID=3D1128&pag=
e=3D1#Item_6=0A=
function tb_position() {
   jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH /2), =
10) + 'px', width: TB_WIDTH + 'px'});
   var browser =3D navigator.userAgent.toLowerCase();
   var IEVersion;
   var brVerId =3D browser.indexOf('msie');
   if (brVerId > 0) {
      IEVersion =3D browser.substr( brVerId + 5 ,1);
   }
   if (! (IEVersion && IEVersion =3D=3D '6')) {
      jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / =
2),10) + 'px'});
   }
}=0A=
=0A=
function tb_parseQuery ( query ) {=0A=
   var Params =3D {};=0A=
   if ( ! query ) {return Params;}// return empty object=0A=
   var Pairs =3D query.split(/[;&]/);=0A=
   for ( var i =3D 0; i < Pairs.length; i++ ) {=0A=
      var KeyVal =3D Pairs[i].split('=3D');=0A=
      if ( ! KeyVal || KeyVal.length !=3D 2 ) {continue;}=0A=
      var key =3D unescape( KeyVal[0] );=0A=
      var val =3D unescape( KeyVal[1] );=0A=
      val =3D val.replace(/\+/g, ' ');=0A=
      Params[key] =3D val;=0A=
   }=0A=
   return Params;=0A=
}=0A=
=0A=
function tb_getPageSize(){=0A=
	var de =3D document.documentElement;=0A=
	var w =3D window.innerWidth || self.innerWidth || (de&&de.clientWidth) =
|| document.body.clientWidth;=0A=
	var h =3D window.innerHeight || self.innerHeight || =
(de&&de.clientHeight) || document.body.clientHeight;=0A=
	arrayPageSize =3D [w,h];=0A=
	return arrayPageSize;=0A=
}=0A=
=0A=
function tb_detectMacXFF() {=0A=
   var userAgent =3D navigator.userAgent.toLowerCase();=0A=
   if (userAgent.indexOf('mac') !=3D -1 && =
userAgent.indexOf('firefox')!=3D-1) {=0A=
      return true;=0A=
   }=0A=
}=0A=

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/validators.js

/////////////////////////////////////////////////////////////////////////=
/
//
// Javascript Input/Output Validator/Encoder
//
/////////////////////////////////////////////////////////////////////////=
/

// Whitelist pattern used in multiple places
var WHITELISTPATTERN =3D /^([0-9a-zA-Z]|\.|\(|\)|,|!|\$|'| |_|-)+?$/;

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidForUrl( str )
// Accepts: String to validate
// Returns: true on valid, false otherwise
//
// Test to see if a string is an acceptable pattern for passing
// in URLs: playlist/folder titles, etc.
// DO NOT call this function directly call the specific function.
/////////////////////////////////////////////////////////////////////////=
/
function isValidTitle( titleToValidate )
{
   // Trailing periods break URIs
   var lastChar =3D titleToValidate.charAt( titleToValidate.length - 1 =
);
        =20
   if ( lastChar =3D=3D "." )
   {
      return false;
   }

   // Check the length
   if ( titleToValidate.length < 1 || titleToValidate.length > 128 )
   {
      return false;
   }

   // Try to match whitelist characters
   return WHITELISTPATTERN.test(titleToValidate);
  =20
} // end isValidTitle()

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidFolderTitle( str )
// Accepts: String to validate
// Returns: true on valid, false otherwise
//
// Determine validity of a folder title by matching on
// whitelisted characters and testing the length.
/////////////////////////////////////////////////////////////////////////=
/
function isValidFolderTitle( toValidate )
{
   return isValidTitle( toValidate );
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidMediaSetTitle( str )
// Accepts: String to validate
// Returns: true on valid, false otherwise
//
// Determine validity of a given media set title by matching on
// whitelisted characters and testing the length.
/////////////////////////////////////////////////////////////////////////=
/
function isValidMediaSetTitle( mediaSetToValidate )
{
   // Check the length
   if ( mediaSetToValidate.length < 1 || mediaSetToValidate.length > 128 =
)
   {
      return false;
   }

   // Try to match whitelist characters
   return WHITELISTPATTERN.test( mediaSetToValidate );

} // end isValidMediaSetTitle

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidPlaylistTitle( str )
// Accepts: String to validate
// Returns: true on valid, false otherwise
//
// Determine validity of a playlist title by matching on
// whitelisted characters and testing the length.
/////////////////////////////////////////////////////////////////////////=
/
function isValidPlaylistTitle( toValidate )
{
   return isValidTitle(toValidate);
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidInput( str, [bool] )
// Accepts: String to validate, bool allow html or not (e.g. comments)
// Returns: true on valid, false otherwise
//
// Test to see if a string is an acceptable pattern for use in form
// fields in screencast.com.
//
/////////////////////////////////////////////////////////////////////////=
/
function isValidInput ( toValidate, allowLimitedHtml )
{
   if ( allowLimitedHtml )
   {
      // strip out supported html causing the next test to pass
      var allowedHtmlExp =3D =
/<b>|<\/b>|<strong>|<\/strong>|<u>|<\/u>|<i>|<\/i>|<em>|<\/em>|<br>|<br\/=
>|<br \/>/g;
      toValidate =3D toValidate.replace( allowedHtmlExp, '' );
   }

   // Look for remaining unsupported HTML - should allow < or > though =
for math
   var htmlRegExp =3D /<\S.*?>/;
   if ( htmlRegExp.test( toValidate ) )
   {
      return false;
   }
  =20
   return true;
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: encodeForUrl( str )
// Accepts: string to encode
// Returns: encoded string
//
// Encode strings to be passed in a URL
//
/////////////////////////////////////////////////////////////////////////=
/
function encodeForUrl ( toEncode )
{
    return encodeURI(toEncode);
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: decodeForUrl( str )
// Accepts: string to decode
// Returns: decoded string
//
// Dencode strings to be passed in a URL
//
/////////////////////////////////////////////////////////////////////////=
/
function decodeForUrl ( toDecode )
{
   return unescape( toDecode )
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: encodeInput( str )
// Accepts: string to encode
// Returns: encoded string
//
// Encode strings for form data
//
/////////////////////////////////////////////////////////////////////////=
/
function encodeInput ( toEncode )
{
    return encodeURIComponent(toEncode);
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: decodeInput( str )
// Accepts: string to decode
// Returns: decoded string
//
// Decode strings for form data
//
/////////////////////////////////////////////////////////////////////////=
/
function decodeInput ( toDecode )
{
   return unescape( toDecode );
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidEmailString( str )
// Accepts: email address
// Returns: true if valid, flase otherwise
//
// Check for valid email address pattern
//
/////////////////////////////////////////////////////////////////////////=
/
function isValidEmailString( value )
{
   var reg =3D =
/^([a-zA-Z0-9_]|\-|\.)+@(([a-zA-Z0-9_]|\-)+\.)+[a-zA-Z]{2,4}$/;

   if ( !reg.test( value ) )
   {
      return false;
   }

   if ( value.length < 6 || value.length > 129 )
   {
      return false;
   }

   return true;
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidNameString( str )
// Accepts: display name
// Returns: true if valid, flase otherwise
//
// Check for valid display name pattern
//
/////////////////////////////////////////////////////////////////////////=
/  =20
function isValidNameString( value )
{
   var reg =3D =
/^([A-Za-z])([0-9A-Za-z\._\-]){0,18}([0-9A-Za-z_\-]){1}$/;

   return reg.test( value );
}

/////////////////////////////////////////////////////////////////////////=
/
// Function: isValidPasswordString( str )
// Accepts: password
// Returns: true if valid, flase otherwise
//
// Check for valid password pattern
//
/////////////////////////////////////////////////////////////////////////=
/     =20
function isValidPasswordString( value )
{
   if ( value.length < 6 )
   {
      return false;
   }
   else
   {
      return true;
   }
}
 =20
  function checkEmailValue( value, ID )
   {
      if ( !isValidEmailString( value ) )=20
      {=20
         displayErrorBoxEmail();
         showError( ID );
         return false;
      }=20
      else=20
      {=20
         hideErrorBoxEmail();
         showOK( ID );
         return true;
      }
   }
  =20
   function checkStringValue( value, ID )
   {
      if ( !isValidNameString( value ) )=20
      {=20
         displayErrorBoxDisplayName();
         showError( ID );
         return false;
      }=20
      else=20
      {=20
         hideErrorBoxDisplayName();
         showOK( ID );
         return true;
      }
   }
  =20
   function checkPasswordReentry()
   {
      if ( document.getElementById( "password1" ).value =3D=3D =
document.getElementById( "password2" ).value )
      {
         var returnVal =3D true;
        =20
         if ( document.getElementById( "password1" ).value =3D=3D '' )
         {=20
            hideErrorBoxPassword();
            hide( 'password1' );
            hide( 'password2' );
            return returnVal;
         }
        =20
         if ( !isValidPasswordString( document.getElementById( =
"password1" ).value ) )
         {
            displayErrorBoxPassword();
            showError( "password1" );
            returnVal =3D false;
         }
         else
         {
            showOK( "password1" );
         }
        =20
         if ( !isValidPasswordString( document.getElementById( =
"password2" ).value ) )
         {
            displayErrorBoxPassword();
            showError( "password2" );
            returnVal =3D false;
         }
         else
         {
            showOK( "password2" );
         }
        =20
         if ( returnVal )
         {
            hideErrorBoxPassword();
         }
         return returnVal; =20
      }=20
      else
      {
         displayErrorBoxPassword();
         showError( "password1" );
         showError( "password2" );
         return false;
      }
   }
  =20
   function hide( ID )
   {
      showOK( ID );
      document.getElementById( ID + "OK" ).style.display =3D 'none';
   }
  =20
   function showError( ID )
   {
      document.getElementById( ID + "Invalid" ).style.display =3D =
'inline';
      document.getElementById( ID + "OK" ).style.display =3D 'none';
     =20
      Element.addClassName( ID + "Field", "invalidField" );
      Element.addClassName( ID, "invalidEntry" );
   }
  =20
   function showOK( ID )
   {
      document.getElementById( ID + "Invalid" ).style.display =3D =
'none';
      document.getElementById( ID + "OK" ).style.display =3D 'inline';
     =20
      Element.removeClassName( ID + "Field", "invalidField" );
      Element.removeClassName( ID, "invalidEntry" );
   }
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/library/settingsmedia.js

=EF=BB=BF// Retrieve the metadata from the API
function getMetaData()
{
   var mediaSetId =3D getMediaSetIdForFunction();
   var mediaGroupId =3D getMediaGroupIdForFunction();
  =20
   // AjaxPro method in Folder.aspx.cs
   DoBindMetaData( mediaSetId, mediaGroupId, getMetaData_callback );
}

var initialValues =3D null;
var constDefaultText =3D "";

// Take the retrieved dataset and write it out to view/edit views.
function getMetaData_callback( result )
{
   if ( result.value )
   {         =20
      // Check if there is any actual files that have been uploaded...   =
 =20
      if ( result.value.Tables[0] )
      {             =20
         if ( result.value.Tables[0].Rows.length > 0 )
         { =20
            var dr =3D result.value.Tables[0].Rows[0];
           =20
            // Save the initial values to determine whether they have =
changed or not.
            initialValues =3D new function()
            {
               this.HasMetaData =3D dr.HasMetaData;
               this.Title =3D ( dr.Title =3D=3D null ) ? "" : dr.Title;
               this.Description =3D ( dr.Description =3D=3D null || =
dr.Description =3D=3D "" ) ? constDefaultText : dr.Description;
               this.ProjectTitle =3D ( dr.ProjectTitle =3D=3D null ) ? =
"" : dr.ProjectTitle;
               this.ProjectDescription =3D ( dr.ProjectDescription =
=3D=3D null ) ? "" : dr.ProjectDescription;
               this.AuthorAdditionalInfo =3D ( dr.AuthorAdditionalInfo =
=3D=3D null ) ? "" : dr.AuthorAdditionalInfo;
               this.AuthorEmail =3D ( dr.AuthorEmail =3D=3D null ) ? "" =
: dr.AuthorEmail;
               this.AuthorHomepage =3D ( dr.AuthorHomepage =3D=3D null ) =
? "" : dr.AuthorHomepage;
               this.Category =3D ( dr.Category =3D=3D null ) ? "" : =
dr.Category;
               this.Contributor =3D ( dr.Contributor =3D=3D null ) ? "" =
: dr.Contributor;
               this.Coverage =3D ( dr.Coverage =3D=3D null ) ? "" : =
dr.Coverage;
               this.Creator =3D ( dr.Creator =3D=3D null ) ? "" : =
dr.Creator;
               this.Date =3D ( dr.Date =3D=3D null ) ? "" : dr.Date;
               this.Format =3D ( dr.Format =3D=3D null ) ? "" : =
dr.Format;
               this.Keywords =3D ( dr.Keywords =3D=3D null ) ? "" : =
dr.Keywords;
               this.Language =3D ( dr.Language =3D=3D null ) ? "" : =
dr.Language;
               this.Publisher =3D ( dr.Publisher =3D=3D null ) ? "" : =
dr.Publisher;
               this.Relation =3D ( dr.Relation =3D=3D null ) ? "" : =
dr.Relation;
               this.ResourceIdentifier =3D ( dr.ResourceIdentifier =
=3D=3D null ) ? "" : dr.ResourceIdentifier;
               this.ResourceType =3D ( dr.ResourceType =3D=3D null ) ? =
"" : dr.ResourceType;
               this.RightsManagement =3D ( dr.RightsManagement =3D=3D =
null ) ? "" : dr.RightsManagement;
               this.Source =3D ( dr.Source =3D=3D null ) ? "" : =
dr.Source;
               this.Subject =3D ( dr.Subject =3D=3D null ) ? "" : =
dr.Subject;
              =20
               if ( document.getElementById( "showDownloadLink" ) )
               {
                  this.DownloadLink =3D document.getElementById( =
"showDownloadLink" ).checked;
               }
               if ( document.getElementById( "chkCommentVisible" ) )
               {
                  this.IsCommentVisible =3D document.getElementById( =
"chkCommentVisible" ).checked;
               }
               if ( document.getElementById( "chkCommentEnabled" ) )
               {
                  this.IsCommentEnabled =3D document.getElementById( =
"chkCommentEnabled" ).checked;
               }
               if ( document.getElementById( =
"chkCommentEmailNotificationEnabled" ) )
               {
                  this.IsCommentEmailNotificationEnabled =3D =
document.getElementById( "chkCommentEmailNotificationEnabled" ).checked;
               }              =20
            }
                       =20
            if ( dr.Title !=3D null )
            {
               document.getElementById("txt_meta_title").value =3D =
dr.Title;
            }

            if ( dr.Description !=3D null && dr.Description !=3D "" )
            {
               document.getElementById("txt_meta_description").value =3D =
dr.Description ;
            }
            else
            {
               document.getElementById("txt_meta_description").value =3D =
"";
            }
           =20
            // Check if this media has metadata...
            if ( dr.HasMetaData !=3D "true" )
            {
               document.getElementById("metadata").style.display =3D =
"none";
            }
            else
            {
               if ( dr.ProjectTitle !=3D null && dr.ProjectTitle !=3D "" =
)
               {
                  document.getElementById("txt_meta_projectTitle").value =
=3D dr.ProjectTitle;          =20
               }

               if ( dr.ProjectDescription !=3D null )
               {
                  =
document.getElementById("txt_meta_projectDescription").value =3D =
dr.ProjectDescription;          =20
               }

               if ( dr.AuthorAdditionalInfo !=3D null )
               {
                  =
document.getElementById("txt_meta_authoradditionalinfo").value =3D =
dr.AuthorAdditionalInfo;          =20
               }

               if ( dr.AuthorEmail !=3D null && dr.AuthorEmail !=3D "" )
               {
                  document.getElementById("txt_meta_authoremail").value =
=3D dr.AuthorEmail;          =20
               }

               if ( dr.AuthorHomepage !=3D null )
               {
                  =
document.getElementById("txt_meta_authorhomepage").value =3D =
dr.AuthorHomepage;          =20
               }

               if ( dr.Category !=3D null )
               {
                  document.getElementById("txt_meta_category").value =3D =
dr.Category;          =20
               }

               if ( dr.Contributor !=3D null )
               {
                  document.getElementById("txt_meta_contributor").value =
=3D dr.Contributor;          =20
               }

               if ( dr.Coverage !=3D null )
               {
                  document.getElementById("txt_meta_coverage").value =3D =
dr.Coverage;          =20
               }

               if ( dr.Creator !=3D null )
               {
                  document.getElementById("txt_meta_creator").value =3D =
dr.Creator;          =20
               }

               if ( dr.Date !=3D null )
               {
                  document.getElementById("txt_meta_date").value =3D =
dr.Date;          =20
               }

               if ( dr.Format !=3D null )
               {
                  document.getElementById("txt_meta_format").value =3D =
dr.Format;          =20
               }

               if ( dr.Keywords !=3D null )
               {
                  document.getElementById("txt_meta_keywords").value =3D =
dr.Keywords;          =20
               }

               if ( dr.Language !=3D null )
               {
                  document.getElementById("txt_meta_language").value =3D =
dr.Language;          =20
               }

               if ( dr.Publisher !=3D null )
               {
                  document.getElementById("txt_meta_publisher").value =
=3D dr.Publisher;          =20
               }

               if ( dr.Relation !=3D null )
               {
                  document.getElementById("txt_meta_relation").value =3D =
dr.Relation;          =20
               }

               if ( dr.ResourceIdentifier !=3D null )
               {
                  =
document.getElementById("txt_meta_resourceIdentifier").value =3D =
dr.ResourceIdentifier;          =20
               }

               if ( dr.ResourceType !=3D null )
               {
                  document.getElementById("txt_meta_resourceType").value =
=3D dr.ResourceType;          =20
               }

               if ( dr.RightsManagement !=3D null )
               {
                  =
document.getElementById("txt_meta_rightsmanagement").value =3D =
dr.RightsManagement;          =20
               }

               if ( dr.Source !=3D null )
               {
                  document.getElementById("txt_meta_source").value =3D =
dr.Source;          =20
               }

               if ( dr.Subject !=3D null )
               {
                  document.getElementById("txt_meta_subject").value =3D =
dr.Subject;          =20
               }
              =20
               document.getElementById("metadata").style.display =3D =
"block";
            }
         }
      }
   }
}

function setEdited(transport, element)=20
{=20
   document.getElementById( "done" ).style.display =3D "none";
   document.getElementById( "doneButton" ).style.display =3D "none";
   document.getElementById( "save" ).style.display =3D "block";
   document.getElementById( "saveButton" ).style.display =3D "block";
   document.getElementById( "cancel" ).style.display =3D "block";=20
   document.getElementById( "cancelButton" ).style.display =3D "block";
}

function setUnEdited(transport, element)=20
{=20
   document.getElementById( "done" ).style.display =3D "block";
   document.getElementById( "doneButton" ).style.display =3D "block";
   document.getElementById( "save" ).style.display =3D "none";
   document.getElementById( "saveButton" ).style.display =3D "none";
   document.getElementById( "cancel" ).style.display =3D "none";
   document.getElementById( "cancelButton" ).style.display =3D "none";
}

function enableComments()
{
   // show or hide the extra comment options depending on if comments =
are visible on the view page or not.
   if( document.getElementById( "chkCommentVisible" ).checked )
   {
      document.getElementById( "chkCommentEnabled" ).checked =3D true;
      document.getElementById( "chkCommentEmailNotificationEnabled" =
).checked =3D true;
      document.getElementById( "hideCommentOptions" ).style.display =3D =
"block";
   }
   else
   {
      document.getElementById( "chkCommentEnabled" ).checked =3D false;
      document.getElementById( "chkCommentEmailNotificationEnabled" =
).checked =3D false;
      document.getElementById( "hideCommentOptions" ).style.display =3D =
"none";
   }
  =20
   checkForChanges();
}

function checkForChanges()
{
   var changed =3D false;
   if ( initialValues )
   {
      changed =3D ( initialValues.Title !=3D =
document.getElementById("txt_meta_title").value );
      changed =3D changed || ( initialValues.Description !=3D =
document.getElementById("txt_meta_description").value );
      if(initialValues.HasMetaData =3D=3D "true")
      {
         changed =3D changed || ( initialValues.ProjectTitle !=3D =
document.getElementById("txt_meta_projectTitle").value );
         changed =3D changed || ( initialValues.ProjectDescription !=3D =
document.getElementById("txt_meta_projectDescription").value );
         changed =3D changed || ( initialValues.AuthorAdditionalInfo =
!=3D document.getElementById("txt_meta_authoradditionalinfo").value );
         changed =3D changed || ( initialValues.AuthorEmail !=3D =
document.getElementById("txt_meta_authoremail").value );
         changed =3D changed || ( initialValues.AuthorHomepage !=3D =
document.getElementById("txt_meta_authorhomepage").value );
         changed =3D changed || ( initialValues.Category !=3D =
document.getElementById("txt_meta_category").value );
         changed =3D changed || ( initialValues.Contributor !=3D =
document.getElementById("txt_meta_contributor").value );
         changed =3D changed || ( initialValues.Coverage !=3D =
document.getElementById("txt_meta_coverage").value );
         changed =3D changed || ( initialValues.Creator !=3D =
document.getElementById("txt_meta_creator").value );
         changed =3D changed || ( initialValues.Date !=3D =
document.getElementById("txt_meta_date").value );
         changed =3D changed || ( initialValues.Format !=3D =
document.getElementById("txt_meta_format").value );
         changed =3D changed || ( initialValues.Keywords !=3D =
document.getElementById("txt_meta_keywords").value );
         changed =3D changed || ( initialValues.Language !=3D =
document.getElementById("txt_meta_language").value );
         changed =3D changed || ( initialValues.Publisher !=3D =
document.getElementById("txt_meta_publisher").value );
         changed =3D changed || ( initialValues.Relation !=3D =
document.getElementById("txt_meta_relation").value );
         changed =3D changed || ( initialValues.ResourceIdentifier !=3D =
document.getElementById("txt_meta_resourceIdentifier").value );
         changed =3D changed || ( initialValues.ResourceType !=3D =
document.getElementById("txt_meta_resourceType").value );
         changed =3D changed || ( initialValues.RightsManagement !=3D =
document.getElementById("txt_meta_rightsmanagement").value );
         changed =3D changed || ( initialValues.Source !=3D =
document.getElementById("txt_meta_source").value );
         changed =3D changed || ( initialValues.Subject !=3D =
document.getElementById("txt_meta_subject").value );
         changed =3D changed || ( initialValues.DownloadLink !=3D =
document.getElementById( "showDownloadLink" ).checked );
         changed =3D changed || ( initialValues.IsCommentVisible !=3D =
document.getElementById( "chkCommentVisible" ).checked );
         changed =3D changed || ( initialValues.IsCommentEnabled !=3D =
document.getElementById( "chkCommentEnabled" ).checked );
         changed =3D changed || ( =
initialValues.IsCommentEmailNotificationEnabled !=3D =
document.getElementById( "chkCommentEmailNotificationEnabled" ).checked =
);
      }
   }
  =20
   if ( changed )
   {
      setEdited();
   }
   else
   {
      setUnEdited();
   }
}

// Cancel clicked. Rebind from the database. This automatically hides =
the update, shows the view.
function cancelMetaData()
{
   tb_remove();
   doneEditing();
}

/*
 * updateMetaData( bool )
 * preserveLightbox: (optional) true preserve lightbox after updating, =
false (default)
 *                   close lightbox
 * Gather all of the text fields and send the update to the API.
 */
function updateMetaData( preserveLightbox )
{
   if( typeof preserveLightbox =3D=3D 'undefined' )
   {
      preserveLightbox =3D false
   }
  =20
   var mediaSetId =3D getMediaSetIdForFunction();
   var mediaGroupId =3D getMediaGroupIdForFunction();
  =20
   var ds =3D new Ajax.Web.DataSet();
   var dt =3D new Ajax.Web.DataTable();
  =20
   dt.addColumn("Title", "System.String");
   dt.addColumn("Description", "System.String");
   dt.addColumn("ProjectTitle", "System.String");
   dt.addColumn("ProjectDescription", "System.String");
   dt.addColumn("AuthorEmail", "System.String");
   dt.addColumn("AuthorHomepage", "System.String");
   dt.addColumn("AuthorAdditionalInfo", "System.String");
   dt.addColumn("Category", "System.String");
   dt.addColumn("Contributor", "System.String");
   dt.addColumn("Coverage", "System.String");
   dt.addColumn("Creator", "System.String");
   dt.addColumn("Date", "System.String");
   dt.addColumn("Format", "System.String");
   dt.addColumn("Keywords", "System.String");
   dt.addColumn("Language", "System.String");
   dt.addColumn("Publisher", "System.String");
   dt.addColumn("Relation", "System.String");
   dt.addColumn("ResourceIdentifier", "System.String");
   dt.addColumn("ResourceType", "System.String");
   dt.addColumn("RightsManagement", "System.String");
   dt.addColumn("Source", "System.String");
   dt.addColumn("Subject", "System.String");
  =20
   var dr =3D new Object();

   dr.Title =3D ( document.getElementById("txt_meta_title").value ) ? =
document.getElementById("txt_meta_title").value : "";
   dr.Description =3D ( =
document.getElementById("txt_meta_description").value && =
document.getElementById("txt_meta_description").value !=3D =
constDefaultText ) ? =
document.getElementById("txt_meta_description").value : "";
   dr.ProjectTitle =3D ( =
document.getElementById("txt_meta_projectTitle").value ) ? =
document.getElementById("txt_meta_projectTitle").value : "";
   dr.ProjectDescription =3D ( =
document.getElementById("txt_meta_projectDescription").value ) ? =
document.getElementById("txt_meta_projectDescription").value : "";
   dr.AuthorAdditionalInfo =3D ( =
document.getElementById("txt_meta_authoradditionalinfo").value ) ? =
document.getElementById("txt_meta_authoradditionalinfo").value : "";
   dr.AuthorEmail =3D ( =
document.getElementById("txt_meta_authoremail").value ) ? =
document.getElementById("txt_meta_authoremail").value : "";
   dr.AuthorHomepage =3D ( =
document.getElementById("txt_meta_authorhomepage").value ) ? =
document.getElementById("txt_meta_authorhomepage").value : "";
   dr.Category =3D ( document.getElementById("txt_meta_category").value =
) ? document.getElementById("txt_meta_category").value : "";
   dr.Contributor =3D ( =
document.getElementById("txt_meta_contributor").value ) ? =
document.getElementById("txt_meta_contributor").value : "";
   dr.Coverage =3D ( document.getElementById("txt_meta_coverage").value =
) ? document.getElementById("txt_meta_coverage").value : "";
   dr.Creator =3D ( document.getElementById("txt_meta_creator").value ) =
? document.getElementById("txt_meta_creator").value : "";
   dr.Date =3D ( document.getElementById("txt_meta_date").value ) ? =
document.getElementById("txt_meta_date").value : "";
   dr.Format =3D ( document.getElementById("txt_meta_format").value ) ? =
document.getElementById("txt_meta_format").value : "";
   dr.Keywords =3D ( document.getElementById("txt_meta_keywords").value =
) ? document.getElementById("txt_meta_keywords").value : "";
   dr.Language =3D ( document.getElementById("txt_meta_language").value =
) ? document.getElementById("txt_meta_language").value : "";
   dr.Publisher =3D ( =
document.getElementById("txt_meta_publisher").value ) ? =
document.getElementById("txt_meta_publisher").value : "";
   dr.Relation =3D ( document.getElementById("txt_meta_relation").value =
) ? document.getElementById("txt_meta_relation").value : "";
   dr.ResourceIdentifier =3D ( =
document.getElementById("txt_meta_resourceIdentifier").value ) ? =
document.getElementById("txt_meta_resourceIdentifier").value : "";
   dr.ResourceType =3D ( =
document.getElementById("txt_meta_resourceType").value ) ? =
document.getElementById("txt_meta_resourceType").value : "";
   dr.RightsManagement =3D ( =
document.getElementById("txt_meta_rightsmanagement").value ) ? =
document.getElementById("txt_meta_rightsmanagement").value : "";
   dr.Source =3D ( document.getElementById("txt_meta_source").value ) ? =
document.getElementById("txt_meta_source").value : "";
   dr.Subject =3D ( document.getElementById("txt_meta_subject").value ) =
? document.getElementById("txt_meta_subject").value : "";
  =20
   dt.addRow(dr);
   ds.addTable(dt);
  =20
   if ( document.getElementById( "embeddedMediaGuid" ).value !=3D null =
&& document.getElementById( "embeddedMediaGuid" ).value !=3D "")
   {
      =
TechSmith.Screencast.Web.Controls.Lightboxes.SettingsMedia.SetDownloadSta=
tus( document.getElementById( "embeddedMediaGuid" ).value, !( =
document.getElementById( "showDownloadLink" ).checked ) );
   }
  =20
   =
TechSmith.Screencast.Web.Controls.Lightboxes.SettingsMedia.SetIsCommentVi=
sible( mediaSetId, document.getElementById( "chkCommentVisible" =
).checked );
   =
TechSmith.Screencast.Web.Controls.Lightboxes.SettingsMedia.SetIsCommentEn=
abled( mediaSetId, document.getElementById( "chkCommentEnabled" =
).checked );
   =
TechSmith.Screencast.Web.Controls.Lightboxes.SettingsMedia.SetIsCommentEm=
ailNotificationEnabled( mediaSetId, document.getElementById( =
"chkCommentEmailNotificationEnabled" ).checked );
  =20
   // AjaxPro method in Library.aspx or View.aspx depending on calling =
page
   DoUpdateProjectMetaData( mediaSetId, mediaGroupId, ds, =
updateMetaData_callback, preserveLightbox );
}

// Once finished, rebind and show the view, hide the update.
function updateMetaData_callback( result )
{
   // result.context: keep the lightbox open or not
   if ( typeof result.context =3D=3D 'undefined' || result.context =
=3D=3D null || !result.context )
   {
      tb_remove();
   }

   // The doneEditing function operates differently on the view page =
than library page.
   // Ensure it only is called when the view page is actually done =
editing the media.
   var curUrl =3D window.location.toString();
   if (curUrl.search(/\/media\//i) > -1 && !result.context) // view page =
is done
   {
      doneEditing();
   }
}

function onClickBasic()
{
   document.getElementById("basicTable").style.display=3D"block";
   document.getElementById("extendedTable").style.display=3D"none";
   document.getElementById("basicDetailsTab").className=3D"tabSelected";
   =
document.getElementById("extendedDetailsTab").className=3D"tabUnselected"=
;
}
        =20
function onClickExtended()
{
   document.getElementById("basicTable").style.display=3D"none";
   document.getElementById("extendedTable").style.display=3D"block";
   =
document.getElementById("basicDetailsTab").className=3D"tabUnselected";
   =
document.getElementById("extendedDetailsTab").className=3D"tabSelected";
}
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/inc/scripts/lib/swfobject/swfobject.js

/**=0A=
 * SWFObject v1.5.1: Flash Player detection and embed - =
http://blog.deconcept.com/swfobject/=0A=
 *=0A=
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT =
License:=0A=
 * http://www.opensource.org/licenses/mit-license.php=0A=
 *=0A=
 */=0A=
if(typeof deconcept =3D=3D "undefined") var deconcept =3D {};=0A=
if(typeof deconcept.util =3D=3D "undefined") deconcept.util =3D {};=0A=
if(typeof deconcept.SWFObjectUtil =3D=3D "undefined") =
deconcept.SWFObjectUtil =3D {};=0A=
deconcept.SWFObject =3D function(swf, id, w, h, ver, c, quality, =
xiRedirectUrl, redirectUrl, detectKey) {=0A=
	if (!document.getElementById) { return; }=0A=
	this.DETECT_KEY =3D detectKey ? detectKey : 'detectflash';=0A=
	this.skipDetect =3D deconcept.util.getRequestParameter(this.DETECT_KEY);=0A=
	this.params =3D {};=0A=
	this.variables =3D {};=0A=
	this.attributes =3D [];=0A=
	if(swf) { this.setAttribute('swf', swf); }=0A=
	if(id) { this.setAttribute('id', id); }=0A=
	if(w) { this.setAttribute('width', w); }=0A=
	if(h) { this.setAttribute('height', h); }=0A=
	if(ver) { this.setAttribute('version', new =
deconcept.PlayerVersion(ver.toString().split("."))); }=0A=
	this.installedVer =3D deconcept.SWFObjectUtil.getPlayerVersion();=0A=
	if (!window.opera && document.all && this.installedVer.major > 7) {=0A=
		// only add the onunload cleanup if the Flash Player version supports =
External Interface and we are in IE=0A=
		// fixes bug in some fp9 versions see =
http://blog.deconcept.com/2006/07/28/swfobject-143-released/=0A=
		if (!deconcept.unloadSet) {=0A=
			deconcept.SWFObjectUtil.prepUnload =3D function() {=0A=
				__flash_unloadHandler =3D function(){};=0A=
				__flash_savedUnloadHandler =3D function(){};=0A=
				window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);=0A=
			}=0A=
			window.attachEvent("onbeforeunload", =
deconcept.SWFObjectUtil.prepUnload);=0A=
			deconcept.unloadSet =3D true;=0A=
		}=0A=
	}=0A=
	if(c) { this.addParam('bgcolor', c); }=0A=
	var q =3D quality ? quality : 'high';=0A=
	this.addParam('quality', q);=0A=
	this.setAttribute('useExpressInstall', false);=0A=
	this.setAttribute('doExpressInstall', false);=0A=
	var xir =3D (xiRedirectUrl) ? xiRedirectUrl : window.location;=0A=
	this.setAttribute('xiRedirectUrl', xir);=0A=
	this.setAttribute('redirectUrl', '');=0A=
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }=0A=
}=0A=
deconcept.SWFObject.prototype =3D {=0A=
	useExpressInstall: function(path) {=0A=
		this.xiSWFPath =3D !path ? "expressinstall.swf" : path;=0A=
		this.setAttribute('useExpressInstall', true);=0A=
	},=0A=
	setAttribute: function(name, value){=0A=
		this.attributes[name] =3D value;=0A=
	},=0A=
	getAttribute: function(name){=0A=
		return this.attributes[name] || "";=0A=
	},=0A=
	addParam: function(name, value){=0A=
		this.params[name] =3D value;=0A=
	},=0A=
	getParams: function(){=0A=
		return this.params;=0A=
	},=0A=
	addVariable: function(name, value){=0A=
		this.variables[name] =3D value;=0A=
	},=0A=
	getVariable: function(name){=0A=
		return this.variables[name] || "";=0A=
	},=0A=
	getVariables: function(){=0A=
		return this.variables;=0A=
	},=0A=
	getVariablePairs: function(){=0A=
		var variablePairs =3D [];=0A=
		var key;=0A=
		var variables =3D this.getVariables();=0A=
		for(key in variables){=0A=
			variablePairs[variablePairs.length] =3D key +"=3D"+ variables[key];=0A=
		}=0A=
		return variablePairs;=0A=
	},=0A=
	getSWFHTML: function() {=0A=
		var swfNode =3D "";=0A=
		if (navigator.plugins && navigator.mimeTypes && =
navigator.mimeTypes.length) { // netscape plugin architecture=0A=
			if (this.getAttribute("doExpressInstall")) {=0A=
				this.addVariable("MMplayerType", "PlugIn");=0A=
				this.setAttribute('swf', this.xiSWFPath);=0A=
			}=0A=
			swfNode =3D '<embed type=3D"application/x-shockwave-flash" src=3D"'+ =
this.getAttribute('swf') +'" width=3D"'+ this.getAttribute('width') +'" =
height=3D"'+ this.getAttribute('height') +'" style=3D"'+ =
(this.getAttribute('style') || "") +'"';=0A=
			swfNode +=3D ' id=3D"'+ this.getAttribute('id') +'" name=3D"'+ =
this.getAttribute('id') +'" ';=0A=
			var params =3D this.getParams();=0A=
			 for(var key in params){ swfNode +=3D [key] +'=3D"'+ params[key] +'" =
'; }=0A=
			var pairs =3D this.getVariablePairs().join("&");=0A=
			 if (pairs.length > 0){ swfNode +=3D 'flashvars=3D"'+ pairs +'"'; }=0A=
			swfNode +=3D '/>';=0A=
		} else { // PC IE=0A=
			if (this.getAttribute("doExpressInstall")) {=0A=
				this.addVariable("MMplayerType", "ActiveX");=0A=
				this.setAttribute('swf', this.xiSWFPath);=0A=
			}=0A=
			swfNode =3D '<object id=3D"'+ this.getAttribute('id') +'" =
classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=3D"'+ =
this.getAttribute('width') +'" height=3D"'+ this.getAttribute('height') =
+'" style=3D"'+ (this.getAttribute('style') || "") +'">';=0A=
			swfNode +=3D '<param name=3D"movie" value=3D"'+ =
this.getAttribute('swf') +'" />';=0A=
			var params =3D this.getParams();=0A=
			for(var key in params) {=0A=
			 swfNode +=3D '<param name=3D"'+ key +'" value=3D"'+ params[key] +'" =
/>';=0A=
			}=0A=
			var pairs =3D this.getVariablePairs().join("&");=0A=
			if(pairs.length > 0) {swfNode +=3D '<param name=3D"flashvars" =
value=3D"'+ pairs +'" />';}=0A=
			swfNode +=3D "</object>";=0A=
		}=0A=
		return swfNode;=0A=
	},=0A=
	write: function(elementId){=0A=
		if(this.getAttribute('useExpressInstall')) {=0A=
			// check to see if we need to do an express install=0A=
			var expressInstallReqVer =3D new deconcept.PlayerVersion([6,0,65]);=0A=
			if (this.installedVer.versionIsValid(expressInstallReqVer) && =
!this.installedVer.versionIsValid(this.getAttribute('version'))) {=0A=
				this.setAttribute('doExpressInstall', true);=0A=
				this.addVariable("MMredirectURL", =
escape(this.getAttribute('xiRedirectUrl')));=0A=
				document.title =3D document.title.slice(0, 47) + " - Flash Player =
Installation";=0A=
				this.addVariable("MMdoctitle", document.title);=0A=
			}=0A=
		}=0A=
		if(this.skipDetect || this.getAttribute('doExpressInstall') || =
this.installedVer.versionIsValid(this.getAttribute('version'))){=0A=
			var n =3D (typeof elementId =3D=3D 'string') ? =
document.getElementById(elementId) : elementId;=0A=
			n.innerHTML =3D this.getSWFHTML();=0A=
			return true;=0A=
		}else{=0A=
			if(this.getAttribute('redirectUrl') !=3D "") {=0A=
				document.location.replace(this.getAttribute('redirectUrl'));=0A=
			}=0A=
		}=0A=
		return false;=0A=
	}=0A=
}=0A=
=0A=
/* ---- detection functions ---- */=0A=
deconcept.SWFObjectUtil.getPlayerVersion =3D function(){=0A=
	var PlayerVersion =3D new deconcept.PlayerVersion([0,0,0]);=0A=
	if(navigator.plugins && navigator.mimeTypes.length){=0A=
		var x =3D navigator.plugins["Shockwave Flash"];=0A=
		if(x && x.description) {=0A=
			PlayerVersion =3D new =
deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, =
"").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));=0A=
		}=0A=
	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows =
CE") >=3D 0){ // if Windows CE=0A=
		var axo =3D 1;=0A=
		var counter =3D 3;=0A=
		while(axo) {=0A=
			try {=0A=
				counter++;=0A=
				axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);=0A=
//				document.write("player v: "+ counter);=0A=
				PlayerVersion =3D new deconcept.PlayerVersion([counter,0,0]);=0A=
			} catch (e) {=0A=
				axo =3D null;=0A=
			}=0A=
		}=0A=
	} else { // Win IE (non mobile)=0A=
		// do minor version lookup in IE, but avoid fp6 crashing issues=0A=
		// see =
http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-intern=
et-explorer-flash-6/=0A=
		try{=0A=
			var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");=0A=
		}catch(e){=0A=
			try {=0A=
				var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");=0A=
				PlayerVersion =3D new deconcept.PlayerVersion([6,0,21]);=0A=
				axo.AllowScriptAccess =3D "always"; // error if player version < =
6.0.47 (thanks to Michael Williams @ Adobe for this code)=0A=
			} catch(e) {=0A=
				if (PlayerVersion.major =3D=3D 6) {=0A=
					return PlayerVersion;=0A=
				}=0A=
			}=0A=
			try {=0A=
				axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash");=0A=
			} catch(e) {}=0A=
		}=0A=
		if (axo !=3D null) {=0A=
			PlayerVersion =3D new =
deconcept.PlayerVersion(axo.GetVariable("$version").split(" =
")[1].split(","));=0A=
		}=0A=
	}=0A=
	return PlayerVersion;=0A=
}=0A=
deconcept.PlayerVersion =3D function(arrVersion){=0A=
	this.major =3D arrVersion[0] !=3D null ? parseInt(arrVersion[0]) : 0;=0A=
	this.minor =3D arrVersion[1] !=3D null ? parseInt(arrVersion[1]) : 0;=0A=
	this.rev =3D arrVersion[2] !=3D null ? parseInt(arrVersion[2]) : 0;=0A=
}=0A=
deconcept.PlayerVersion.prototype.versionIsValid =3D function(fv){=0A=
	if(this.major < fv.major) return false;=0A=
	if(this.major > fv.major) return true;=0A=
	if(this.minor < fv.minor) return false;=0A=
	if(this.minor > fv.minor) return true;=0A=
	if(this.rev < fv.rev) return false;=0A=
	return true;=0A=
}=0A=
/* ---- get value of query string param ---- */=0A=
deconcept.util =3D {=0A=
	getRequestParameter: function(param) {=0A=
		var q =3D document.location.search || document.location.hash;=0A=
		if (param =3D=3D null) { return q; }=0A=
		if(q) {=0A=
			var pairs =3D q.substring(1).split("&");=0A=
			for (var i=3D0; i < pairs.length; i++) {=0A=
				if (pairs[i].substring(0, pairs[i].indexOf("=3D")) =3D=3D param) {=0A=
					return pairs[i].substring((pairs[i].indexOf("=3D")+1));=0A=
				}=0A=
			}=0A=
		}=0A=
		return "";=0A=
	}=0A=
}=0A=
/* fix for video streaming bug */=0A=
deconcept.SWFObjectUtil.cleanupSWFs =3D function() {=0A=
	var objects =3D document.getElementsByTagName("OBJECT");=0A=
	for (var i =3D objects.length - 1; i >=3D 0; i--) {=0A=
		objects[i].style.display =3D 'none';=0A=
		for (var x in objects[i]) {=0A=
			if (typeof objects[i][x] =3D=3D 'function') {=0A=
				objects[i][x] =3D function(){};=0A=
			}=0A=
		}=0A=
	}=0A=
}=0A=
/* add document.getElementById if needed (mobile IE < 5) */=0A=
if (!document.getElementById && document.all) { document.getElementById =
=3D function(id) { return document.all[id]; }}=0A=
=0A=
/* add some aliases for ease of use/backwards compatibility */=0A=
var getQueryParamValue =3D deconcept.util.getRequestParameter;=0A=
var FlashObject =3D deconcept.SWFObject; // for legacy support=0A=
var SWFObject =3D deconcept.SWFObject;=0A=

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/WebResource.axd?d=taISOg4qEkv06Te5ZJpjQQ2&t=633607744732349038

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            WebForm_ExecuteCallback(callbackObject);
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex =3D -1;
            }
            __pendingCallbacks[i] =3D null;
            var callbackFrameID =3D "__CALLBACKFRAME" + i;
            var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            }
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() !=3D "textarea")) {
            var defaultButton;
            if (__nonMSDOMBrowser) {
               defaultButton =3D document.getElementById(target);
            }
            else {
                defaultButton =3D document.all[target];
            }
            if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
                defaultButton.click();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ajaxpro/prototype.ashx

//--------------------------------------------------------------
// Copyright (C) 2006 Michael Schwarz (http://www.ajaxpro.info).
// All rights reserved.
//--------------------------------------------------------------

// prototype.js
Object.extend =3D function(dest, source, replace) {
	for(var prop in source) {
		if(replace =3D=3D false && dest[prop] !=3D null) { continue; }
		dest[prop] =3D source[prop];
	}
	return dest;
};

Object.extend(Function.prototype, {
	apply: function(o, a) {
		var r, x =3D "__fapply";
		if(typeof o !=3D "object") { o =3D {}; }
		o[x] =3D this;
		var s =3D "r =3D o." + x + "(";
		for(var i=3D0; i<a.length; i++) {
			if(i>0) { s +=3D ","; }
			s +=3D "a[" + i + "]";
		}
		s +=3D ");";
		eval(s);
		delete o[x];
		return r;
	},
	bind: function(o) {
		if(!Function.__objs) {
			Function.__objs =3D [];
			Function.__funcs =3D [];
		}
		var objId =3D o.__oid;
		if(!objId) {
			Function.__objs[objId =3D o.__oid =3D Function.__objs.length] =3D o;
		}

		var me =3D this;
		var funcId =3D me.__fid;
		if(!funcId) {
			Function.__funcs[funcId =3D me.__fid =3D Function.__funcs.length] =3D =
me;
		}

		if(!o.__closures) {
			o.__closures =3D [];
		}

		var closure =3D o.__closures[funcId];
		if(closure) {
			return closure;
		}

		o =3D null;
		me =3D null;

		return Function.__objs[objId].__closures[funcId] =3D function() {
			return Function.__funcs[funcId].apply(Function.__objs[objId], =
arguments);
		};
	}
}, false);

Object.extend(Array.prototype, {
	push: function(o) {
		this[this.length] =3D o;
	},
	addRange: function(items) {
		if(items.length > 0) {
			for(var i=3D0; i<items.length; i++) {
				this.push(items[i]);
			}
		}
	},
	clear: function() {
		this.length =3D 0;
		return this;
	},
	shift: function() {
		if(this.length =3D=3D 0) { return null; }
		var o =3D this[0];
		for(var i=3D0; i<this.length-1; i++) {
			this[i] =3D this[i + 1];
		}
		this.length--;
		return o;
	}
}, false);

Object.extend(String.prototype, {
	trimLeft: function() {
		return this.replace(/^\s*/,"");
	},
	trimRight: function() {
		return this.replace(/\s*$/,"");
	},
	trim: function() {
		return this.trimRight().trimLeft();
	},
	endsWith: function(s) {
		if(this.length =3D=3D 0 || this.length < s.length) { return false; }
		return (this.substr(this.length - s.length) =3D=3D s);
	},
	startsWith: function(s) {
		if(this.length =3D=3D 0 || this.length < s.length) { return false; }
		return (this.substr(0, s.length) =3D=3D s);
	},
	split: function(c) {
		var a =3D [];
		if(this.length =3D=3D 0) return a;
		var p =3D 0;
		for(var i=3D0; i<this.length; i++) {
			if(this.charAt(i) =3D=3D c) {
				a.push(this.substring(p, i));
				p =3D ++i;
			}
		}
		a.push(s.substr(p));
		return a;
	}
}, false);

Object.extend(String, {
	format: function(s) {
		for(var i=3D1; i<arguments.length; i++) {
			s =3D s.replace("{" + (i -1) + "}", arguments[i]);
		}
		return s;
	},
	isNullOrEmpty: function(s) {
		if(s =3D=3D null || s.length =3D=3D 0) {
			return true;
		}
		return false;
	}
}, false);

if(typeof addEvent =3D=3D "undefined")
	addEvent =3D function(o, evType, f, capture) {
		if(o =3D=3D null) { return false; }
		if(o.addEventListener) {
			o.addEventListener(evType, f, capture);
			return true;
		} else if (o.attachEvent) {
			var r =3D o.attachEvent("on" + evType, f);
			return r;
		} else {
			try{ o["on" + evType] =3D f; }catch(e){}
		}
	};
=09
if(typeof removeEvent =3D=3D "undefined")
	removeEvent =3D function(o, evType, f, capture) {
		if(o =3D=3D null) { return false; }
		if(o.removeEventListener) {
			o.removeEventListener(evType, f, capture);
			return true;
		} else if (o.detachEvent) {
			o.detachEvent("on" + evType, f);
		} else {
			try{ o["on" + evType] =3D function(){}; }catch(e){}
		}
	};

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ajaxpro/core.ashx

//--------------------------------------------------------------
// Copyright (C) 2006 Michael Schwarz (http://www.ajaxpro.info).
// All rights reserved.
//--------------------------------------------------------------

// core.js
Object.extend(Function.prototype, {
	getArguments: function() {
		var args =3D [];
		for(var i=3D0; i<this.arguments.length; i++) {
			args.push(this.arguments[i]);
		}
		return args;
	}
}, false);

var MS =3D {"Browser":{}};

Object.extend(MS.Browser, {
	isIE: navigator.userAgent.indexOf('MSIE') !=3D -1,
	isFirefox: navigator.userAgent.indexOf('Firefox') !=3D -1,
	isOpera: window.opera !=3D null
}, false);

var AjaxPro =3D {};

AjaxPro.IFrameXmlHttp =3D function() {};
AjaxPro.IFrameXmlHttp.prototype =3D {
	onreadystatechange: null, headers: [], method: "POST", url: null, =
async: true, iframe: null,
	status: 0, readyState: 0, responseText: null,
	abort: function() {
	},
	readystatechanged: function() {
		var doc =3D this.iframe.contentDocument || this.iframe.document;
		if(doc !=3D null && doc.readyState =3D=3D "complete" && doc.body !=3D =
null && doc.body.res !=3D null) {
			this.status =3D 200;
			this.statusText =3D "OK";
			this.readyState =3D 4;
			this.responseText =3D doc.body.res;
			this.onreadystatechange();
			return;
		}
		setTimeout(this.readystatechanged.bind(this), 10);
	},
	open: function(method, url, async) {
		if(async =3D=3D false) {
			alert("Synchronous call using IFrameXMLHttp is not supported.");
			return;
		}
		if(this.iframe =3D=3D null) {
			var iframeID =3D "hans";
			if (document.createElement && document.documentElement &&
				(window.opera || navigator.userAgent.indexOf('MSIE 5.0') =3D=3D -1))
			{
				var ifr =3D document.createElement('iframe');
				ifr.setAttribute('id', iframeID);
				ifr.style.visibility =3D 'hidden';
				ifr.style.position =3D 'absolute';
				ifr.style.width =3D ifr.style.height =3D ifr.borderWidth =3D '0px';

				this.iframe =3D =
document.getElementsByTagName('body')[0].appendChild(ifr);
			}
			else if (document.body && document.body.insertAdjacentHTML)
			{
				document.body.insertAdjacentHTML('beforeEnd', '<iframe name=3D"' + =
iframeID + '" id=3D"' + iframeID + '" style=3D"border:1px solid =
black;display:none"></iframe>');
			}
			if (window.frames && window.frames[iframeID]) {
				this.iframe =3D window.frames[iframeID];
			}
			this.iframe.name =3D iframeID;
			this.iframe.document.open();
			this.iframe.document.write("<html><body></body></html>");
			this.iframe.document.close();
		}
		this.method =3D method;
		this.url =3D url;
		this.async =3D async;
	},
	setRequestHeader: function(name, value) {
		for(var i=3D0; i<this.headers.length; i++) {
			if(this.headers[i].name =3D=3D name) {
				this.headers[i].value =3D value;
				return;
			}
		}
		this.headers.push({"name":name,"value":value});
	},
	getResponseHeader: function(name, value) {
		return null;
	},
	addInput: function(doc, form, name, value) {
		var ele;
		var tag =3D "input";
		if(value.indexOf("\n") >=3D 0) {
			tag =3D "textarea";
		}
	=09
		if(doc.all) {
			ele =3D doc.createElement("<" + tag + " name=3D\"" + name + "\" />");
		}else{
			ele =3D doc.createElement(tag);
			ele.setAttribute("name", name);
		}
		ele.setAttribute("value", value);
		form.appendChild(ele);
		ele =3D null;
	},
	send: function(data) {
		if(this.iframe =3D=3D null) {
			return;
		}
		var doc =3D this.iframe.contentDocument || this.iframe.document;
		var form =3D doc.createElement("form");
	=09
		doc.body.appendChild(form);
	=09
		form.setAttribute("action", this.url);
		form.setAttribute("method", this.method);
		form.setAttribute("enctype", "application/x-www-form-urlencoded");
	=09
		for(var i=3D0; i<this.headers.length; i++) {
			switch(this.headers[i].name.toLowerCase()) {
				case "content-length":
				case "accept-encoding":
				case "content-type":
					break;
				default:
					this.addInput(doc, form, this.headers[i].name, =
this.headers[i].value);
			}
		}
		this.addInput(doc, form, "data", data);
		form.submit();
	=09
		setTimeout(this.readystatechanged.bind(this), 0);
	}
};

var progids =3D ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
var progid =3D null;

if(typeof ActiveXObject !=3D "undefined") {
	var ie7xmlhttp =3D false;
	if(typeof XMLHttpRequest =3D=3D "object") {
		try{ var o =3D new XMLHttpRequest(); ie7xmlhttp =3D true; }catch(e){}
	}
	if(typeof XMLHttpRequest =3D=3D "undefined" || !ie7xmlhttp) {
		XMLHttpRequest =3D function() {
			var xmlHttp =3D null;
			if(!AjaxPro.noActiveX) {
				if(progid !=3D null) {
					return new ActiveXObject(progid);
				}
				for(var i=3D0; i<progids.length && xmlHttp =3D=3D null; i++) {
					try {
						xmlHttp =3D new ActiveXObject(progids[i]);
						progid =3D progids[i];

					}catch(e){}
				}
			}
			if(xmlHttp =3D=3D null && MS.Browser.isIE) {
				return new AjaxPro.IFrameXmlHttp();
			}
			return xmlHttp;
		};
	}
}

Object.extend(AjaxPro, {
	noOperation: function() {},
	onLoading: function() {},
	onError: function() {},
	onTimeout: function() {},
	onStateChanged: function() {},
	cryptProvider: null,
	queue: null,
	token: "",
	version: "6.10.6.2",
	ID: "AjaxPro",
	noActiveX: false,
	timeoutPeriod: 10*1000,
	queue: null,
	noUtcTime: false,
	m : {
		'\b': '\\b',
		'\t': '\\t',
		'\n': '\\n',
		'\f': '\\f',
		'\r': '\\r',
		'"' : '\\"',
		'\\': '\\\\'
	},
	toJSON: function(o) {=09
		if(o =3D=3D null) {
			return "null";
		}
		var v =3D [];
		var i;
		var c =3D o.constructor;
		if(c =3D=3D Number) {
			return isFinite(o) ? o.toString() : AjaxPro.toJSON(null);
		} else if(c =3D=3D Boolean) {
			return o.toString();
		} else if(c =3D=3D String) {
			if (/["\\\x00-\x1f]/.test(o)) {
				o =3D o.replace(/([\x00-\x1f\\"])/g, function(a, b) {
					var c =3D AjaxPro.m[b];
					if (c) {
						return c;
					}
					c =3D b.charCodeAt();
					return '\\u00' +
						Math.floor(c / 16).toString(16) +
						(c % 16).toString(16);
				});
            }
			return '"' + o + '"';
		} else if (c =3D=3D Array) {
			for(i=3D0; i<o.length; i++) {
				v.push(AjaxPro.toJSON(o[i]));
			}
			return "[" + v.join(",") + "]";
		} else if (c =3D=3D Date) {
			var d =3D {};
			d.__type =3D "System.DateTime";
			if(AjaxPro.noUtcTime =3D=3D true) {
				d.Year =3D o.getFullYear();
				d.Month =3D o.getMonth() +1;
				d.Day =3D o.getDate();
				d.Hour =3D o.getHours();
				d.Minute =3D o.getMinutes();
				d.Second =3D o.getSeconds();
				d.Millisecond =3D o.getMilliseconds();
			} else {
				d.Year =3D o.getUTCFullYear();
				d.Month =3D o.getUTCMonth() +1;
				d.Day =3D o.getUTCDate();
				d.Hour =3D o.getUTCHours();
				d.Minute =3D o.getUTCMinutes();
				d.Second =3D o.getUTCSeconds();
				d.Millisecond =3D o.getUTCMilliseconds();
			}
			return AjaxPro.toJSON(d);
		}
		if(typeof o.toJSON =3D=3D "function") {
			return o.toJSON();
		}
		if(typeof o =3D=3D "object") {
			for(var attr in o) {
				if(typeof o[attr] !=3D "function") {
					v.push('"' + attr + '":' + AjaxPro.toJSON(o[attr]));
				}
			}
			if(v.length>0) {
				return "{" + v.join(",") + "}";
			}
			return "{}";	=09
		}
		return o.toString();
	},
	dispose: function() {
		if(AjaxPro.queue !=3D null) {
			AjaxPro.queue.dispose();
		}
	}
}, false);

addEvent(window, "unload", AjaxPro.dispose);

AjaxPro.Request =3D function(url) {
	this.url =3D url;
	this.xmlHttp =3D null;
};

AjaxPro.Request.prototype =3D {
	url: null,
	callback: null,
	onLoading: AjaxPro.noOperation,
	onError: AjaxPro.noOperation,
	onTimeout: AjaxPro.noOperation,
	onStateChanged: AjaxPro.noOperation,
	args: null,
	context: null,
	isRunning: false,
	abort: function() {
		if(this.timeoutTimer !=3D null) {
			clearTimeout(this.timeoutTimer);
		}
		if(this.xmlHttp) {
			this.xmlHttp.onreadystatechange =3D AjaxPro.noOperation;
			this.xmlHttp.abort();
		}
		if(this.isRunning) {
			this.isRunning =3D false;
			this.onLoading(false);
		}
	},
	dispose: function() {
		this.abort();
	},
	getEmptyRes: function() {
		return {
			error: null,
			value: null,
			request: {method:this.method, args:this.args},
			context: this.context,
			duration: this.duration
		};=09
	},
	endRequest: function(res) {
		this.abort();
		if(res.error !=3D null) {
			this.onError(res.error, this);
		}

		if(typeof this.callback =3D=3D "function") {
			this.callback(res, this);
		}
	},
	mozerror: function() {
		if(this.timeoutTimer !=3D null) {
			clearTimeout(this.timeoutTimer);
		}
		var res =3D this.getEmptyRes();
		res.error =3D {Message:"Unknown",Type:"ConnectFailure",Status:0};
		this.endRequest(res);
	},
	doStateChange: function() {
		this.onStateChanged(this.xmlHttp.readyState, this);

		if(this.xmlHttp.readyState !=3D 4 || !this.isRunning) {
			return;
		}

		this.duration =3D new Date().getTime() - this.__start;

		if(this.timeoutTimer !=3D null) {
			clearTimeout(this.timeoutTimer);
		}

		var res =3D this.getEmptyRes();
		if(this.xmlHttp.status =3D=3D 200 && this.xmlHttp.statusText =3D=3D =
"OK") {
			res =3D this.createResponse(res);
		} else {
			res =3D this.createResponse(res, true);
			res.error =3D =
{Message:this.xmlHttp.statusText,Type:"ConnectFailure",Status:this.xmlHtt=
p.status};
		}
	=09
		this.endRequest(res);
	},
	createResponse: function(r, noContent) {=09
		if(!noContent) {
			var responseText =3D "" + this.xmlHttp.responseText;

			if(AjaxPro.cryptProvider !=3D null && typeof AjaxPro.cryptProvider =
=3D=3D "function") {
				responseText =3D AjaxPro.cryptProvider.decrypt(responseText);
			}

			if(this.xmlHttp.getResponseHeader("Content-Type") =3D=3D "text/xml") =
{
				r.value =3D this.xmlHttp.responseXML;
			} else {
				if(responseText !=3D null && responseText.trim().length > 0) {
					r.json =3D responseText;
					eval("r.value =3D " + responseText + "*" + "/");
				}
			}
		}
		/* if(this.xmlHttp.getResponseHeader("X-" + AjaxPro.ID + "-Cache") =
=3D=3D "server") {
			r.isCached =3D true;
		} */
		return r;
	},
	timeout: function() {
		this.duration =3D new Date().getTime() - this.__start;
		var r =3D this.onTimeout(this.duration, this);
		if(typeof r =3D=3D "undefined" || r !=3D false) {
			this.abort();
		} else {
			this.timeoutTimer =3D setTimeout(this.timeout.bind(this), =
AjaxPro.timeoutPeriod);
		}
	},
	invoke: function(method, args, callback, context) {
		this.__start =3D new Date().getTime();

		if(this.xmlHttp =3D=3D null) {
			this.xmlHttp =3D new XMLHttpRequest();
		}

		this.isRunning =3D true;
		this.method =3D method;
		this.args =3D args;
		this.callback =3D callback;
		this.context =3D context;
	=09
		var async =3D typeof(callback) =3D=3D "function" && callback !=3D =
AjaxPro.noOperation;
	=09
		if(async) {
			if(MS.Browser.isIE) {
				this.xmlHttp.onreadystatechange =3D this.doStateChange.bind(this);
			} else {
				this.xmlHttp.onload =3D this.doStateChange.bind(this);
				this.xmlHttp.onerror =3D this.mozerror.bind(this);
			}
			this.onLoading(true);
		}
	=09
		var json =3D AjaxPro.toJSON(args) + "";
		if(AjaxPro.cryptProvider !=3D null) {
			json =3D AjaxPro.cryptProvider.encrypt(json);
		}
	=09
		this.xmlHttp.open("POST", this.url, async);
		this.xmlHttp.setRequestHeader("Content-Type", "text/plain; =
charset=3Dutf-8");
		this.xmlHttp.setRequestHeader("X-" + AjaxPro.ID + "-Method", method);
	=09
		if(AjaxPro.token !=3D null && AjaxPro.token.length > 0) {
			this.xmlHttp.setRequestHeader("X-" + AjaxPro.ID + "-Token", =
AjaxPro.token);
		}

		if(!MS.Browser.isIE) {
			this.xmlHttp.setRequestHeader("Connection", "close");		// Mozilla Bug =
#246651
		}

		this.timeoutTimer =3D setTimeout(this.timeout.bind(this), =
AjaxPro.timeoutPeriod);

		try{ this.xmlHttp.send(json); }catch(e){}	// IE offline exception

		if(!async) {
			return this.createResponse({error: null,value: null});
		}

		return true;=09
	}
};

AjaxPro.RequestQueue =3D function(conc) {
	this.queue =3D [];
	this.requests =3D [];
	this.timer =3D null;
=09
	if(isNaN(conc)) { conc =3D 2; }

	for(var i=3D0; i<conc; i++) {		// max 2 http connections
		this.requests[i] =3D new AjaxPro.Request();
		this.requests[i].callback =3D function(res) {
			var r =3D res.context;
			res.context =3D r[3][1];

			r[3][0](res, this);
		};
		this.requests[i].callbackHandle =3D =
this.requests[i].callback.bind(this.requests[i]);
	}
};

AjaxPro.RequestQueue.prototype =3D {
	process: function() {
=09
		this.timer =3D null;
		if(this.queue.length =3D=3D 0) {
			return;
		}
		for(var i=3D0; i<this.requests.length && this.queue.length > 0; i++) {
			if(this.requests[i].isRunning =3D=3D false) {
				var r =3D this.queue.shift();

				this.requests[i].url =3D r[0];
				this.requests[i].onLoading =3D r[3].length >2 && r[3][2] !=3D null =
&& typeof r[3][2] =3D=3D "function" ? r[3][2] : AjaxPro.onLoading;
				this.requests[i].onError =3D r[3].length >3 && r[3][3] !=3D null && =
typeof r[3][3] =3D=3D "function" ? r[3][3] : AjaxPro.onError;
				this.requests[i].onTimeout =3D r[3].length >4 && r[3][4] !=3D null =
&& typeof r[3][4] =3D=3D "function" ? r[3][4] : AjaxPro.onTimeout;
				this.requests[i].onStateChanged =3D r[3].length >5 && r[3][5] !=3D =
null && typeof r[3][5] =3D=3D "function" ? r[3][5] : =
AjaxPro.onStateChanged;

				this.requests[i].invoke(r[1], r[2], this.requests[i].callbackHandle, =
r);
				r =3D null;
			}
		}
		if(this.queue.length > 0 && this.timer =3D=3D null) {
			this.timer =3D setTimeout(this.process.bind(this), 0);
		}
	},
	add: function(url, method, args, e) {

// txt +=3D "\r\nqueue.add " + (new Date().getTime() - ss);

		this.queue.push([url, method, args, e]);
/*	=09
		if(this.timer =3D=3D null) {
			this.timer =3D setTimeout(this.process.bind(this), 0);
		}
*/
		this.process();
	},
	abort: function() {
		this.queue.length =3D 0;
		if (this.timer !=3D null) {
			clearTimeout(this.timer);
		}
		this.timer =3D null;
		for(var i=3D0; i<this.requests.length; i++) {
			if(this.requests[i].isRunning =3D=3D true) {
				this.requests[i].abort();
			}
		}
	},
	dispose: function() {
		for(var i=3D0; i<this.requests.length; i++) {
			var r =3D this.requests[i];
			r.dispose();
		}
		this.requests.clear();
	}
};

AjaxPro.queue =3D new AjaxPro.RequestQueue(2);	// 2 http connections

AjaxPro.AjaxClass =3D function(url) {
	this.url =3D url;
};

AjaxPro.AjaxClass.prototype =3D {
	invoke: function(method, args, e) {
=09
		if(e !=3D null) {
			if(e.length !=3D 6) {
				for(;e.length<6;) { e.push(null); }
			}
			if(e[0] !=3D null && typeof(e[0]) =3D=3D "function") {
				return AjaxPro.queue.add(this.url, method, args, e);
			}
		}
		var r =3D new AjaxPro.Request();
		r.url =3D this.url;
		return r.invoke(method, args);
	}
};

------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ajaxpro/converter.ashx

//--------------------------------------------------------------
// Copyright (C) 2006 Michael Schwarz (http://www.ajaxpro.info).
// All rights reserved.
//--------------------------------------------------------------
// Converter.js

// NameValueCollectionConverter
if(typeof Ajax =3D=3D "undefined") Ajax=3D{};
if(typeof Ajax.Web =3D=3D "undefined") Ajax.Web=3D{};
if(typeof Ajax.Web.NameValueCollection =3D=3D "undefined") =
Ajax.Web.NameValueCollection=3D{};

Ajax.Web.NameValueCollection =3D function(items) {
	this.__type =3D "System.Collections.Specialized.NameValueCollection";
	this.keys =3D [];
	this.values =3D [];

	if(items !=3D null && !isNaN(items.length)) {
		for(var i=3D0; i<items.length; i++)
			this.add(items[i][0], items[i][1]);
	}
};
Object.extend(Ajax.Web.NameValueCollection.prototype, {
	add: function(k, v) {
		if(k =3D=3D null || k.constructor !=3D String || v =3D=3D null || =
v.constructor !=3D String)
			return -1;
		this.keys.push(k);
		this.values.push(v);
		return this.values.length -1;
	},
	containsKey: function(key) {
		for(var i=3D0; i<this.keys.length; i++) {
			if(this.keys[i] =3D=3D key) return true;
		}
		return false;
	},
	getKeys: function() {
		return this.keys;
	},
	getValue: function(k) {
		for(var i=3D0; i<this.keys.length && i<this.values.length; i++) {
			if(this.keys[i] =3D=3D k) return this.values[i];
		}
		return null;
	},
	setValue: function(k, v) {
		if(k =3D=3D null || k.constructor !=3D String || v =3D=3D null || =
v.constructor !=3D String)
			return -1;
		for(var i=3D0; i<this.keys.length && i<this.values.length; i++) {
			if(this.keys[i] =3D=3D k) this.values[i] =3D v;
			return i;
		}
		return this.add(k, v);
	},
	toJSON: function() {
		return =
AjaxPro.toJSON({__type:this.__type,keys:this.keys,values:this.values});
	}
}, true);

// DataSetConverter
if(typeof Ajax =3D=3D "undefined") Ajax=3D{};
if(typeof Ajax.Web =3D=3D "undefined") Ajax.Web=3D{};
if(typeof Ajax.Web.DataSet =3D=3D "undefined") Ajax.Web.DataSet=3D{};

Ajax.Web.DataSet =3D function(t) {
	this.__type =3D "System.Data.DataSet,System.Data";
	this.Tables =3D [];
	this.addTable =3D function(t) {
		this.Tables.push(t);
	};
	if(t !=3D null) {
		for(var i=3D0; i<t.length; i++) {
			this.addTable(t[i]);
		}
	}
};

// DataTableConverter
if(typeof Ajax =3D=3D "undefined") Ajax=3D{};
if(typeof Ajax.Web =3D=3D "undefined") Ajax.Web=3D{};
if(typeof Ajax.Web.DataTable =3D=3D "undefined") =
Ajax.Web.DataTable=3D{};

Ajax.Web.DataTable =3D function(c, r) {
	this.__type =3D "System.Data.DataTable,System.Data";
	this.Columns =3D [];
	this.Rows =3D [];
	this.addColumn =3D function(name, type) {
		this.Columns.push({Name:name,__type:type});
	};
	this.toJSON =3D function() {
		var dt =3D {};
		var i;
		dt.Columns =3D [];
		for(i=3D0; i<this.Columns.length; i++)
			dt.Columns.push([this.Columns[i].Name, this.Columns[i].__type]);
		dt.Rows =3D [];
		for(i=3D0; i<this.Rows.length; i++) {
			var row =3D [];
			for(var j=3D0; j<this.Columns.length; j++)
				row.push(this.Rows[i][this.Columns[j].Name]);
			dt.Rows.push(row);
		}
		return AjaxPro.toJSON(dt);
	};
	this.addRow =3D function(row) {
		this.Rows.push(row);
	};
	if(c !=3D null) {
		for(var i=3D0; i<c.length; i++)
			this.addColumn(c[i][0], c[i][1]);
	}
	if(r !=3D null) {
		for(var y=3D0; y<r.length; y++) {
			var row =3D {};
			for(var z=3D0; z<this.Columns.length && z<r[y].length; z++)
				row[this.Columns[z].Name] =3D r[y][z];
			this.addRow(row);
		}
	}
};

// ProfileBaseConverter
if(typeof Ajax =3D=3D "undefined") Ajax=3D{};
if(typeof Ajax.Web =3D=3D "undefined") Ajax.Web=3D{};
if(typeof Ajax.Web.Profile =3D=3D "undefined") Ajax.Web.Profile=3D{};

Ajax.Web.Profile =3D function() {
	this.toJSON =3D function() {
		throw "Ajax.Web.Profile cannot be converted to JSON format.";
	};
	this.setProperty_callback =3D function(res) {
	};
	this.setProperty =3D function(name, object) {
		this[name] =3D object;
		AjaxPro.Services.Profile.SetProfile({name:o}, =
this.setProperty_callback.bind(this));
	};
};

// IDictionaryConverter
if(typeof Ajax =3D=3D "undefined") Ajax=3D{};
if(typeof Ajax.Web =3D=3D "undefined") Ajax.Web=3D{};
if(typeof Ajax.Web.Dictionary =3D=3D "undefined") =
Ajax.Web.Dictionary=3D{};

Ajax.Web.Dictionary =3D function(type,items) {
	this.__type =3D type;
	this.keys =3D [];
	this.values =3D [];

	if(items !=3D null && !isNaN(items.length)) {
		for(var i=3D0; i<items.length; i++)
			this.add(items[i][0], items[i][1]);
	}
};
Object.extend(Ajax.Web.Dictionary.prototype, {
	add: function(k, v) {
		this.keys.push(k);
		this.values.push(v);
		return this.values.length -1;
	},
	containsKey: function(key) {
		for(var i=3D0; i<this.keys.length; i++) {
			if(this.keys[i] =3D=3D key) return true;
		}
		return false;
	},
	getKeys: function() {
		return this.keys;
	},
	getValue: function(key) {
		for(var i=3D0; i<this.keys.length && i<this.values.length; i++) {
			if(this.keys[i] =3D=3D key){ return this.values[i]; }
		}
		return null;
	},
	setValue: function(k, v) {
		for(var i=3D0; i<this.keys.length && i<this.values.length; i++) {
			if(this.keys[i] =3D=3D k){ this.values[i] =3D v; }
			return i;
		}
		return this.add(k, v);
	},
	toJSON: function() {
		return =
AjaxPro.toJSON({__type:this.__type,keys:this.keys,values:this.values});
	}
}, true);


------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ajaxpro/ViewPage,Website.ashx

if(typeof ViewPage =3D=3D "undefined") ViewPage=3D{};
ViewPage_class =3D function() {};
Object.extend(ViewPage_class.prototype, Object.extend(new =
AjaxPro.AjaxClass(), {
	BindMetadata: function(mediaSet, mediaGroup) {
		return this.invoke("BindMetadata", {"mediaSet":mediaSet, =
"mediaGroup":mediaGroup}, this.BindMetadata.getArguments().slice(2));
	},
	UpdateProjectMetadata: function(mediaSet, mediaGroup, ds) {
		return this.invoke("UpdateProjectMetadata", {"mediaSet":mediaSet, =
"mediaGroup":mediaGroup, "ds":ds}, =
this.UpdateProjectMetadata.getArguments().slice(3));
	},
	url: '/ajaxpro/ViewPage,Website.ashx'
}));
ViewPage =3D new ViewPage_class();


------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ScriptResource.axd?d=lytlZa58igFjHJtKh8IIxPWJHrBsLjgyzb-O6ee1HJlcVI1893Hoa4ktnKpegNMJjbTFuca1Roxogg6Ie_iWHRN3G2feGFEw4Sv_cX1N3xI1&t=653e2dd0

=EF=BB=BF//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftAjax.js
Function.__typeName=3D"Function";Function.__class=3Dtrue;Function.createC=
allback=3Dfunction(b,a){return function(){var =
e=3Darguments.length;if(e>0){var d=3D[];for(var =
c=3D0;c<e;c++)d[c]=3Darguments[c];d[e]=3Da;return b.apply(this,d)}return =
b.call(this,a)}};Function.createDelegate=3Dfunction(a,b){return =
function(){return =
b.apply(a,arguments)}};Function.emptyFunction=3DFunction.emptyMethod=3Dfu=
nction(){};Function._validateParams=3Dfunction(e,c){var =
a;a=3DFunction._validateParameterCount(e,c);if(a){a.popStackFrame();retur=
n a}for(var b=3D0;b<e.length;b++){var =
d=3Dc[Math.min(b,c.length-1)],f=3Dd.name;if(d.parameterArray)f+=3D"["+(b-=
c.length+1)+"]";a=3DFunction._validateParameter(e[b],d,f);if(a){a.popStac=
kFrame();return a}}return =
null};Function._validateParameterCount=3Dfunction(e,a){var =
c=3Da.length,d=3D0;for(var =
b=3D0;b<a.length;b++)if(a[b].parameterArray)c=3DNumber.MAX_VALUE;else =
if(!a[b].optional)d++;if(e.length<d||e.length>c){var =
f=3DError.parameterCount();f.popStackFrame();return f}return =
null};Function._validateParameter=3Dfunction(c,a,h){var =
b,g=3Da.type,l=3D!!a.integer,k=3D!!a.domElement,m=3D!!a.mayBeNull;b=3DFun=
ction._validateParameterType(c,g,l,k,m,h);if(b){b.popStackFrame();return =
b}var =
e=3Da.elementType,f=3D!!a.elementMayBeNull;if(g=3D=3D=3DArray&&typeof =
c!=3D=3D"undefined"&&c!=3D=3Dnull&&(e||!f)){var =
j=3D!!a.elementInteger,i=3D!!a.elementDomElement;for(var =
d=3D0;d<c.length;d++){var =
n=3Dc[d];b=3DFunction._validateParameterType(n,e,j,i,f,h+"["+d+"]");if(b)=
{b.popStackFrame();return b}}}return =
null};Function._validateParameterType=3Dfunction(a,c,n,m,k,d){var =
b;if(typeof a=3D=3D=3D"undefined")if(k)return =
null;else{b=3DError.argumentUndefined(d);b.popStackFrame();return =
b}if(a=3D=3D=3Dnull)if(k)return =
null;else{b=3DError.argumentNull(d);b.popStackFrame();return =
b}if(c&&c.__enum){if(typeof =
a!=3D=3D"number"){b=3DError.argumentType(d,Object.getType(a),c);b.popStac=
kFrame();return b}if(a%1=3D=3D=3D0){var =
e=3Dc.prototype;if(!c.__flags||a=3D=3D=3D0){for(var i in =
e)if(e[i]=3D=3D=3Da)return null}else{var l=3Da;for(var i in e){var =
f=3De[i];if(f=3D=3D=3D0)continue;if((f&a)=3D=3D=3Df)l-=3Df;if(l=3D=3D=3D0=
)return =
null}}}b=3DError.argumentOutOfRange(d,a,String.format(Sys.Res.enumInvalid=
Value,a,c.getName()));b.popStackFrame();return b}if(m){var h;if(typeof =
a.nodeType!=3D=3D"number"){var =
g=3Da.ownerDocument||a.document||a;if(g!=3Da){var =
j=3Dg.defaultView||g.parentWindow;h=3Dj!=3Da&&!(j.document&&a.document&&j=
.document=3D=3D=3Da.document)}else h=3Dtypeof =
g.body=3D=3D=3D"undefined"}else =
h=3Da.nodeType=3D=3D=3D3;if(h){b=3DError.argument(d,Sys.Res.argumentDomEl=
ement);b.popStackFrame();return =
b}}if(c&&!c.isInstanceOfType(a)){b=3DError.argumentType(d,Object.getType(=
a),c);b.popStackFrame();return =
b}if(c=3D=3D=3DNumber&&n)if(a%1!=3D=3D0){b=3DError.argumentOutOfRange(d,a=
,Sys.Res.argumentInteger);b.popStackFrame();return b}return =
null};Error.__typeName=3D"Error";Error.__class=3Dtrue;Error.create=3Dfunc=
tion(d,b){var a=3Dnew Error(d);a.message=3Dd;if(b)for(var c in =
b)a[c]=3Db[c];a.popStackFrame();return =
a};Error.argument=3Dfunction(a,c){var b=3D"Sys.ArgumentException: =
"+(c?c:Sys.Res.argument);if(a)b+=3D"\n"+String.format(Sys.Res.paramName,a=
);var =
d=3DError.create(b,{name:"Sys.ArgumentException",paramName:a});d.popStack=
Frame();return d};Error.argumentNull=3Dfunction(a,c){var =
b=3D"Sys.ArgumentNullException: =
"+(c?c:Sys.Res.argumentNull);if(a)b+=3D"\n"+String.format(Sys.Res.paramNa=
me,a);var =
d=3DError.create(b,{name:"Sys.ArgumentNullException",paramName:a});d.popS=
tackFrame();return d};Error.argumentOutOfRange=3Dfunction(c,a,d){var =
b=3D"Sys.ArgumentOutOfRangeException: =
"+(d?d:Sys.Res.argumentOutOfRange);if(c)b+=3D"\n"+String.format(Sys.Res.p=
aramName,c);if(typeof =
a!=3D=3D"undefined"&&a!=3D=3Dnull)b+=3D"\n"+String.format(Sys.Res.actualV=
alue,a);var =
e=3DError.create(b,{name:"Sys.ArgumentOutOfRangeException",paramName:c,ac=
tualValue:a});e.popStackFrame();return =
e};Error.argumentType=3Dfunction(d,c,b,e){var =
a=3D"Sys.ArgumentTypeException: ";if(e)a+=3De;else =
if(c&&b)a+=3DString.format(Sys.Res.argumentTypeWithTypes,c.getName(),b.ge=
tName());else =
a+=3DSys.Res.argumentType;if(d)a+=3D"\n"+String.format(Sys.Res.paramName,=
d);var =
f=3DError.create(a,{name:"Sys.ArgumentTypeException",paramName:d,actualTy=
pe:c,expectedType:b});f.popStackFrame();return =
f};Error.argumentUndefined=3Dfunction(a,c){var =
b=3D"Sys.ArgumentUndefinedException: =
"+(c?c:Sys.Res.argumentUndefined);if(a)b+=3D"\n"+String.format(Sys.Res.pa=
ramName,a);var =
d=3DError.create(b,{name:"Sys.ArgumentUndefinedException",paramName:a});d=
.popStackFrame();return d};Error.format=3Dfunction(a){var =
c=3D"Sys.FormatException: =
"+(a?a:Sys.Res.format),b=3DError.create(c,{name:"Sys.FormatException"});b=
.popStackFrame();return b};Error.invalidOperation=3Dfunction(a){var =
c=3D"Sys.InvalidOperationException: =
"+(a?a:Sys.Res.invalidOperation),b=3DError.create(c,{name:"Sys.InvalidOpe=
rationException"});b.popStackFrame();return =
b};Error.notImplemented=3Dfunction(a){var =
c=3D"Sys.NotImplementedException: =
"+(a?a:Sys.Res.notImplemented),b=3DError.create(c,{name:"Sys.NotImplement=
edException"});b.popStackFrame();return =
b};Error.parameterCount=3Dfunction(a){var =
c=3D"Sys.ParameterCountException: =
"+(a?a:Sys.Res.parameterCount),b=3DError.create(c,{name:"Sys.ParameterCou=
ntException"});b.popStackFrame();return =
b};Error.prototype.popStackFrame=3Dfunction(){if(typeof =
this.stack=3D=3D=3D"undefined"||this.stack=3D=3D=3Dnull||typeof =
this.fileName=3D=3D=3D"undefined"||this.fileName=3D=3D=3Dnull||typeof =
this.lineNumber=3D=3D=3D"undefined"||this.lineNumber=3D=3D=3Dnull)return;=
var =
a=3Dthis.stack.split("\n"),c=3Da[0],e=3Dthis.fileName+":"+this.lineNumber=
;while(typeof =
c!=3D=3D"undefined"&&c!=3D=3Dnull&&c.indexOf(e)=3D=3D=3D-1){a.shift();c=3D=
a[0]}var d=3Da[1];if(typeof =
d=3D=3D=3D"undefined"||d=3D=3D=3Dnull)return;var =
b=3Dd.match(/@(.*):(\d+)$/);if(typeof =
b=3D=3D=3D"undefined"||b=3D=3D=3Dnull)return;this.fileName=3Db[1];this.li=
neNumber=3DparseInt(b[2]);a.shift();this.stack=3Da.join("\n")};Object.__t=
ypeName=3D"Object";Object.__class=3Dtrue;Object.getType=3Dfunction(b){var=
 a=3Db.constructor;if(!a||typeof =
a!=3D=3D"function"||!a.__typeName||a.__typeName=3D=3D=3D"Object")return =
Object;return a};Object.getTypeName=3Dfunction(a){return =
Object.getType(a).getName()};String.__typeName=3D"String";String.__class=3D=
true;String.prototype.endsWith=3Dfunction(a){return =
this.substr(this.length-a.length)=3D=3D=3Da};String.prototype.startsWith=3D=
function(a){return =
this.substr(0,a.length)=3D=3D=3Da};String.prototype.trim=3Dfunction(){ret=
urn =
this.replace(/^\s+|\s+$/g,"")};String.prototype.trimEnd=3Dfunction(){retu=
rn =
this.replace(/\s+$/,"")};String.prototype.trimStart=3Dfunction(){return =
this.replace(/^\s+/,"")};String.format=3Dfunction(){return =
String._toFormattedString(false,arguments)};String.localeFormat=3Dfunctio=
n(){return =
String._toFormattedString(true,arguments)};String._toFormattedString=3Dfu=
nction(l,j){var c=3D"",e=3Dj[0];for(var a=3D0;true;){var =
f=3De.indexOf("{",a),d=3De.indexOf("}",a);if(f<0&&d<0){c+=3De.slice(a);br=
eak}if(d>0&&(d<f||f<0)){c+=3De.slice(a,d+1);a=3Dd+2;continue}c+=3De.slice=
(a,f);a=3Df+1;if(e.charAt(a)=3D=3D=3D"{"){c+=3D"{";a++;continue}if(d<0)br=
eak;var =
h=3De.substring(a,d),g=3Dh.indexOf(":"),k=3DparseInt(g<0?h:h.substring(0,=
g),10)+1,i=3Dg<0?"":h.substring(g+1),b=3Dj[k];if(typeof =
b=3D=3D=3D"undefined"||b=3D=3D=3Dnull)b=3D"";if(b.toFormattedString)c+=3D=
b.toFormattedString(i);else =
if(l&&b.localeFormat)c+=3Db.localeFormat(i);else =
if(b.format)c+=3Db.format(i);else c+=3Db.toString();a=3Dd+1}return =
c};Boolean.__typeName=3D"Boolean";Boolean.__class=3Dtrue;Boolean.parse=3D=
function(b){var a=3Db.trim().toLowerCase();if(a=3D=3D=3D"false")return =
false;if(a=3D=3D=3D"true")return =
true};Date.__typeName=3D"Date";Date.__class=3Dtrue;Date._appendPreOrPostM=
atch=3Dfunction(e,b){var d=3D0,a=3Dfalse;for(var =
c=3D0,g=3De.length;c<g;c++){var f=3De.charAt(c);switch(f){case =
"'":if(a)b.append("'");else d++;a=3Dfalse;break;case =
"\\":if(a)b.append("\\");a=3D!a;break;default:b.append(f);a=3Dfalse}}retu=
rn =
d};Date._expandFormat=3Dfunction(a,b){if(!b)b=3D"F";if(b.length=3D=3D=3D1=
)switch(b){case "d":return a.ShortDatePattern;case "D":return =
a.LongDatePattern;case "t":return a.ShortTimePattern;case "T":return =
a.LongTimePattern;case "F":return a.FullDateTimePattern;case "M":case =
"m":return a.MonthDayPattern;case "s":return =
a.SortableDateTimePattern;case "Y":case "y":return =
a.YearMonthPattern;default:throw =
Error.format(Sys.Res.formatInvalidString)}return =
b};Date._expandYear=3Dfunction(c,a){if(a<100){var b=3D(new =
Date).getFullYear();a+=3Db-b%100;if(a>c.Calendar.TwoDigitYearMax)return =
a-100}return =
a};Date._getParseRegExp=3Dfunction(b,e){if(!b._parseRegExp)b._parseRegExp=
=3D{};else if(b._parseRegExp[e])return b._parseRegExp[e];var =
c=3DDate._expandFormat(b,e);c=3Dc.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])=
/g,"\\\\$1");var a=3Dnew =
Sys.StringBuilder("^"),j=3D[],f=3D0,i=3D0,h=3DDate._getTokenRegExp(),d;wh=
ile((d=3Dh.exec(c))!=3D=3Dnull){var =
l=3Dc.slice(f,d.index);f=3Dh.lastIndex;i+=3DDate._appendPreOrPostMatch(l,=
a);if(i%2=3D=3D=3D1){a.append(d[0]);continue}switch(d[0]){case =
"dddd":case "ddd":case "MMMM":case "MMM":a.append("(\\D+)");break;case =
"tt":case "t":a.append("(\\D*)");break;case =
"yyyy":a.append("(\\d{4})");break;case =
"fff":a.append("(\\d{3})");break;case =
"ff":a.append("(\\d{2})");break;case "f":a.append("(\\d)");break;case =
"dd":case "d":case "MM":case "M":case "yy":case "y":case "HH":case =
"H":case "hh":case "h":case "mm":case "m":case "ss":case =
"s":a.append("(\\d\\d?)");break;case =
"zzz":a.append("([+-]?\\d\\d?:\\d{2})");break;case "zz":case =
"z":a.append("([+-]?\\d\\d?)")}Array.add(j,d[0])}Date._appendPreOrPostMat=
ch(c.slice(f),a);a.append("$");var =
k=3Da.toString().replace(/\s+/g,"\\s+"),g=3D{"regExp":k,"groups":j};b._pa=
rseRegExp[e]=3Dg;return g};Date._getTokenRegExp=3Dfunction(){return =
/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|=
zzz|zz|z/g};Date.parseLocale=3Dfunction(a){return =
Date._parse(a,Sys.CultureInfo.CurrentCulture,arguments)};Date.parseInvari=
ant=3Dfunction(a){return =
Date._parse(a,Sys.CultureInfo.InvariantCulture,arguments)};Date._parse=3D=
function(g,c,h){var e=3Dfalse;for(var a=3D1,i=3Dh.length;a<i;a++){var =
f=3Dh[a];if(f){e=3Dtrue;var b=3DDate._parseExact(g,f,c);if(b)return =
b}}if(!e){var d=3Dc._getDateTimeFormats();for(var =
a=3D0,i=3Dd.length;a<i;a++){var =
b=3DDate._parseExact(g,d[a],c);if(b)return b}}return =
null};Date._parseExact=3Dfunction(s,y,j){s=3Ds.trim();var =
m=3Dj.dateTimeFormat,v=3DDate._getParseRegExp(m,y),x=3D(new =
RegExp(v.regExp)).exec(s);if(x=3D=3D=3Dnull)return null;var =
w=3Dv.groups,f=3Dnull,c=3Dnull,h=3Dnull,g=3Dnull,d=3D0,n=3D0,o=3D0,e=3D0,=
k=3Dnull,r=3Dfalse;for(var p=3D0,z=3Dw.length;p<z;p++){var =
a=3Dx[p+1];if(a)switch(w[p]){case "dd":case =
"d":h=3DparseInt(a,10);if(h<1||h>31)return null;break;case =
"MMMM":c=3Dj._getMonthIndex(a);if(c<0||c>11)return null;break;case =
"MMM":c=3Dj._getAbbrMonthIndex(a);if(c<0||c>11)return null;break;case =
"M":case "MM":var c=3DparseInt(a,10)-1;if(c<0||c>11)return =
null;break;case "y":case =
"yy":f=3DDate._expandYear(m,parseInt(a,10));if(f<0||f>9999)return =
null;break;case "yyyy":f=3DparseInt(a,10);if(f<0||f>9999)return =
null;break;case "h":case =
"hh":d=3DparseInt(a,10);if(d=3D=3D=3D12)d=3D0;if(d<0||d>11)return =
null;break;case "H":case "HH":d=3DparseInt(a,10);if(d<0||d>23)return =
null;break;case "m":case "mm":n=3DparseInt(a,10);if(n<0||n>59)return =
null;break;case "s":case "ss":o=3DparseInt(a,10);if(o<0||o>59)return =
null;break;case "tt":case "t":var =
u=3Da.toUpperCase();r=3Du=3D=3D=3Dm.PMDesignator.toUpperCase();if(!r&&u!=3D=
=3Dm.AMDesignator.toUpperCase())return null;break;case =
"f":e=3DparseInt(a,10)*100;if(e<0||e>999)return null;break;case =
"ff":e=3DparseInt(a,10)*10;if(e<0||e>999)return null;break;case =
"fff":e=3DparseInt(a,10);if(e<0||e>999)return null;break;case =
"dddd":g=3Dj._getDayIndex(a);if(g<0||g>6)return null;break;case =
"ddd":g=3Dj._getAbbrDayIndex(a);if(g<0||g>6)return null;break;case =
"zzz":var q=3Da.split(/:/);if(q.length!=3D=3D2)return null;var =
i=3DparseInt(q[0],10);if(i<-12||i>13)return null;var =
l=3DparseInt(q[1],10);if(l<0||l>59)return =
null;k=3Di*60+(a.startsWith("-")?-l:l);break;case "z":case "zz":var =
i=3DparseInt(a,10);if(i<-12||i>13)return null;k=3Di*60}}var b=3Dnew =
Date;if(f=3D=3D=3Dnull)f=3Db.getFullYear();if(c=3D=3D=3Dnull)c=3Db.getMon=
th();if(h=3D=3D=3Dnull)h=3Db.getDate();b.setFullYear(f,c,h);if(b.getDate(=
)!=3D=3Dh)return null;if(g!=3D=3Dnull&&b.getDay()!=3D=3Dg)return =
null;if(r&&d<12)d+=3D12;b.setHours(d,n,o,e);if(k!=3D=3Dnull){var =
t=3Db.getMinutes()-(k+b.getTimezoneOffset());b.setHours(b.getHours()+pars=
eInt(t/60,10),t%60)}return b};Date.prototype.format=3Dfunction(a){return =
this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Date.prototy=
pe.localeFormat=3Dfunction(a){return =
this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Date.prototype=
._toFormattedString=3Dfunction(e,h){if(!e||e.length=3D=3D=3D0||e=3D=3D=3D=
"i")if(h&&h.name.length>0)return this.toLocaleString();else return =
this.toString();var d=3Dh.dateTimeFormat;e=3DDate._expandFormat(d,e);var =
a=3Dnew Sys.StringBuilder,b;function c(a){if(a<10)return "0"+a;return =
a.toString()}function g(a){if(a<10)return "00"+a;if(a<100)return =
"0"+a;return a.toString()}var =
j=3D0,i=3DDate._getTokenRegExp();for(;true;){var =
l=3Di.lastIndex,f=3Di.exec(e),k=3De.slice(l,f?f.index:e.length);j+=3DDate=
._appendPreOrPostMatch(k,a);if(!f)break;if(j%2=3D=3D=3D1){a.append(f[0]);=
continue}switch(f[0]){case =
"dddd":a.append(d.DayNames[this.getDay()]);break;case =
"ddd":a.append(d.AbbreviatedDayNames[this.getDay()]);break;case =
"dd":a.append(c(this.getDate()));break;case =
"d":a.append(this.getDate());break;case =
"MMMM":a.append(d.MonthNames[this.getMonth()]);break;case =
"MMM":a.append(d.AbbreviatedMonthNames[this.getMonth()]);break;case =
"MM":a.append(c(this.getMonth()+1));break;case =
"M":a.append(this.getMonth()+1);break;case =
"yyyy":a.append(this.getFullYear());break;case =
"yy":a.append(c(this.getFullYear()%100));break;case =
"y":a.append(this.getFullYear()%100);break;case =
"hh":b=3Dthis.getHours()%12;if(b=3D=3D=3D0)b=3D12;a.append(c(b));break;ca=
se =
"h":b=3Dthis.getHours()%12;if(b=3D=3D=3D0)b=3D12;a.append(b);break;case =
"HH":a.append(c(this.getHours()));break;case =
"H":a.append(this.getHours());break;case =
"mm":a.append(c(this.getMinutes()));break;case =
"m":a.append(this.getMinutes());break;case =
"ss":a.append(c(this.getSeconds()));break;case =
"s":a.append(this.getSeconds());break;case =
"tt":a.append(this.getHours()<12?d.AMDesignator:d.PMDesignator);break;cas=
e =
"t":a.append((this.getHours()<12?d.AMDesignator:d.PMDesignator).charAt(0)=
);break;case =
"f":a.append(g(this.getMilliseconds()).charAt(0));break;case =
"ff":a.append(g(this.getMilliseconds()).substr(0,2));break;case =
"fff":a.append(g(this.getMilliseconds()));break;case =
"z":b=3Dthis.getTimezoneOffset()/60;a.append((b<=3D0?"+":"-")+Math.floor(=
Math.abs(b)));break;case =
"zz":b=3Dthis.getTimezoneOffset()/60;a.append((b<=3D0?"+":"-")+c(Math.flo=
or(Math.abs(b))));break;case =
"zzz":b=3Dthis.getTimezoneOffset()/60;a.append((b<=3D0?"+":"-")+c(Math.fl=
oor(Math.abs(b)))+d.TimeSeparator+c(Math.abs(this.getTimezoneOffset()%60)=
))}}return =
a.toString()};Number.__typeName=3D"Number";Number.__class=3Dtrue;Number.p=
arseLocale=3Dfunction(a){return =
Number._parse(a,Sys.CultureInfo.CurrentCulture)};Number.parseInvariant=3D=
function(a){return =
Number._parse(a,Sys.CultureInfo.InvariantCulture)};Number._parse=3Dfuncti=
on(b,o){b=3Db.trim();if(b.match(/^[+-]?infinity$/i))return =
parseFloat(b);if(b.match(/^0x[a-f0-9]+$/i))return parseInt(b);var =
a=3Do.numberFormat,g=3DNumber._parseNumberNegativePattern(b,a,a.NumberNeg=
ativePattern),h=3Dg[0],e=3Dg[1];if(h=3D=3D=3D""&&a.NumberNegativePattern!=
=3D=3D1){g=3DNumber._parseNumberNegativePattern(b,a,1);h=3Dg[0];e=3Dg[1]}=
if(h=3D=3D=3D"")h=3D"+";var =
j,d,f=3De.indexOf("e");if(f<0)f=3De.indexOf("E");if(f<0){d=3De;j=3Dnull}e=
lse{d=3De.substr(0,f);j=3De.substr(f+1)}var =
c,k,m=3Dd.indexOf(a.NumberDecimalSeparator);if(m<0){c=3Dd;k=3Dnull}else{c=
=3Dd.substr(0,m);k=3Dd.substr(m+a.NumberDecimalSeparator.length)}c=3Dc.sp=
lit(a.NumberGroupSeparator).join("");var =
n=3Da.NumberGroupSeparator.replace(/\u00A0/g," =
");if(a.NumberGroupSeparator!=3D=3Dn)c=3Dc.split(n).join("");var =
l=3Dh+c;if(k!=3D=3Dnull)l+=3D"."+k;if(j!=3D=3Dnull){var =
i=3DNumber._parseNumberNegativePattern(j,a,1);if(i[0]=3D=3D=3D"")i[0]=3D"=
+";l+=3D"e"+i[0]+i[1]}if(l.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/))return =
parseFloat(l);return =
Number.NaN};Number._parseNumberNegativePattern=3Dfunction(a,d,e){var =
b=3Dd.NegativeSign,c=3Dd.PositiveSign;switch(e){case 4:b=3D" "+b;c=3D" =
"+c;case 3:if(a.endsWith(b))return =
["-",a.substr(0,a.length-b.length)];else if(a.endsWith(c))return =
["+",a.substr(0,a.length-c.length)];break;case 2:b+=3D" ";c+=3D" ";case =
1:if(a.startsWith(b))return ["-",a.substr(b.length)];else =
if(a.startsWith(c))return ["+",a.substr(c.length)];break;case =
0:if(a.startsWith("(")&&a.endsWith(")"))return =
["-",a.substr(1,a.length-2)]}return =
["",a]};Number.prototype.format=3Dfunction(a){return =
this._toFormattedString(a,Sys.CultureInfo.InvariantCulture)};Number.proto=
type.localeFormat=3Dfunction(a){return =
this._toFormattedString(a,Sys.CultureInfo.CurrentCulture)};Number.prototy=
pe._toFormattedString=3Dfunction(d,j){if(!d||d.length=3D=3D=3D0||d=3D=3D=3D=
"i")if(j&&j.name.length>0)return this.toLocaleString();else return =
this.toString();var o=3D["n %","n%","%n"],n=3D["-n =
%","-n%","-%n"],p=3D["(n)","-n","- n","n-","n -"],m=3D["$n","n$","$ =
n","n $"],l=3D["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n =
$","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];function =
g(a,c,d){for(var b=3Da.length;b<c;b++)a=3Dd?"0"+a:a+"0";return =
a}function i(j,i,l,n,p){var =
h=3Dl[0],k=3D1,o=3DMath.pow(10,i),m=3DMath.round(j*o)/o;if(!isFinite(m))m=
=3Dj;j=3Dm;var =
b=3Dj.toString(),a=3D"",c,e=3Db.split(/e/i);b=3De[0];c=3De.length>1?parse=
Int(e[1]):0;e=3Db.split(".");b=3De[0];a=3De.length>1?e[1]:"";var =
q;if(c>0){a=3Dg(a,c,false);b+=3Da.slice(0,c);a=3Da.substr(c)}else =
if(c<0){c=3D-c;b=3Dg(b,c+1,true);a=3Db.slice(-c,b.length)+a;b=3Db.slice(0=
,-c)}if(i>0){if(a.length>i)a=3Da.slice(0,i);else =
a=3Dg(a,i,false);a=3Dp+a}else a=3D"";var =
d=3Db.length-1,f=3D"";while(d>=3D0){if(h=3D=3D=3D0||h>d)if(f.length>0)ret=
urn b.slice(0,d+1)+n+f+a;else return =
b.slice(0,d+1)+a;if(f.length>0)f=3Db.slice(d-h+1,d+1)+n+f;else =
f=3Db.slice(d-h+1,d+1);d-=3Dh;if(k<l.length){h=3Dl[k];k++}}return =
b.slice(0,d+1)+n+f+a}var =
a=3Dj.numberFormat,e=3DMath.abs(this);if(!d)d=3D"D";var =
b=3D-1;if(d.length>1)b=3DparseInt(d.slice(1),10);var =
c;switch(d.charAt(0)){case "d":case =
"D":c=3D"n";if(b!=3D=3D-1)e=3Dg(""+e,b,true);if(this<0)e=3D-e;break;case =
"c":case "C":if(this<0)c=3Dl[a.CurrencyNegativePattern];else =
c=3Dm[a.CurrencyPositivePattern];if(b=3D=3D=3D-1)b=3Da.CurrencyDecimalDig=
its;e=3Di(Math.abs(this),b,a.CurrencyGroupSizes,a.CurrencyGroupSeparator,=
a.CurrencyDecimalSeparator);break;case "n":case =
"N":if(this<0)c=3Dp[a.NumberNegativePattern];else =
c=3D"n";if(b=3D=3D=3D-1)b=3Da.NumberDecimalDigits;e=3Di(Math.abs(this),b,=
a.NumberGroupSizes,a.NumberGroupSeparator,a.NumberDecimalSeparator);break=
;case "p":case "P":if(this<0)c=3Dn[a.PercentNegativePattern];else =
c=3Do[a.PercentPositivePattern];if(b=3D=3D=3D-1)b=3Da.PercentDecimalDigit=
s;e=3Di(Math.abs(this)*100,b,a.PercentGroupSizes,a.PercentGroupSeparator,=
a.PercentDecimalSeparator);break;default:throw =
Error.format(Sys.Res.formatBadFormatSpecifier)}var =
k=3D/n|\$|-|%/g,f=3D"";for(;true;){var =
q=3Dk.lastIndex,h=3Dk.exec(c);f+=3Dc.slice(q,h?h.index:c.length);if(!h)br=
eak;switch(h[0]){case "n":f+=3De;break;case =
"$":f+=3Da.CurrencySymbol;break;case "-":f+=3Da.NegativeSign;break;case =
"%":f+=3Da.PercentSymbol}}return =
f};RegExp.__typeName=3D"RegExp";RegExp.__class=3Dtrue;Array.__typeName=3D=
"Array";Array.__class=3Dtrue;Array.add=3DArray.enqueue=3Dfunction(a,b){a[=
a.length]=3Db};Array.addRange=3Dfunction(a,b){a.push.apply(a,b)};Array.cl=
ear=3Dfunction(a){a.length=3D0};Array.clone=3Dfunction(a){if(a.length=3D=3D=
=3D1)return [a[0]];else return =
Array.apply(null,a)};Array.contains=3Dfunction(a,b){return =
Array.indexOf(a,b)>=3D0};Array.dequeue=3Dfunction(a){return =
a.shift()};Array.forEach=3Dfunction(b,e,d){for(var =
a=3D0,f=3Db.length;a<f;a++){var c=3Db[a];if(typeof =
c!=3D=3D"undefined")e.call(d,c,a,b)}};Array.indexOf=3Dfunction(d,e,a){if(=
typeof e=3D=3D=3D"undefined")return -1;var =
c=3Dd.length;if(c!=3D=3D0){a=3Da-0;if(isNaN(a))a=3D0;else{if(isFinite(a))=
a=3Da-a%1;if(a<0)a=3DMath.max(0,c+a)}for(var b=3Da;b<c;b++)if(typeof =
d[b]!=3D=3D"undefined"&&d[b]=3D=3D=3De)return b}return =
-1};Array.insert=3Dfunction(a,b,c){a.splice(b,0,c)};Array.parse=3Dfunctio=
n(value){if(!value)return [];return =
eval(value)};Array.remove=3Dfunction(b,c){var =
a=3DArray.indexOf(b,c);if(a>=3D0)b.splice(a,1);return =
a>=3D0};Array.removeAt=3Dfunction(a,b){a.splice(b,1)};if(!window)this.win=
dow=3Dthis;window.Type=3DFunction;Type.prototype.callBaseMethod=3Dfunctio=
n(a,d,b){var c=3Dthis.getBaseMethod(a,d);if(!b)return c.apply(a);else =
return c.apply(a,b)};Type.prototype.getBaseMethod=3Dfunction(d,c){var =
b=3Dthis.getBaseType();if(b){var a=3Db.prototype[c];return a instanceof =
Function?a:null}return =
null};Type.prototype.getBaseType=3Dfunction(){return typeof =
this.__baseType=3D=3D=3D"undefined"?null:this.__baseType};Type.prototype.=
getInterfaces=3Dfunction(){var a=3D[],b=3Dthis;while(b){var =
c=3Db.__interfaces;if(c)for(var d=3D0,f=3Dc.length;d<f;d++){var =
e=3Dc[d];if(!Array.contains(a,e))a[a.length]=3De}b=3Db.__baseType}return =
a};Type.prototype.getName=3Dfunction(){return typeof =
this.__typeName=3D=3D=3D"undefined"?"":this.__typeName};Type.prototype.im=
plementsInterface=3Dfunction(d){this.resolveInheritance();var =
c=3Dd.getName(),a=3Dthis.__interfaceCache;if(a){var e=3Da[c];if(typeof =
e!=3D=3D"undefined")return e}else a=3Dthis.__interfaceCache=3D{};var =
b=3Dthis;while(b){var =
f=3Db.__interfaces;if(f)if(Array.indexOf(f,d)!=3D=3D-1)return =
a[c]=3Dtrue;b=3Db.__baseType}return =
a[c]=3Dfalse};Type.prototype.inheritsFrom=3Dfunction(b){this.resolveInher=
itance();var a=3Dthis.__baseType;while(a){if(a=3D=3D=3Db)return =
true;a=3Da.__baseType}return =
false};Type.prototype.initializeBase=3Dfunction(a,b){this.resolveInherita=
nce();if(this.__baseType)if(!b)this.__baseType.apply(a);else =
this.__baseType.apply(a,b);return =
a};Type.prototype.isImplementedBy=3Dfunction(a){if(typeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;var =
b=3DObject.getType(a);return =
!!(b.implementsInterface&&b.implementsInterface(this))};Type.prototype.is=
InstanceOfType=3Dfunction(b){if(typeof =
b=3D=3D=3D"undefined"||b=3D=3D=3Dnull)return false;if(b instanceof =
this)return true;var a=3DObject.getType(b);return =
!!(a=3D=3D=3Dthis)||a.inheritsFrom&&a.inheritsFrom(this)||a.implementsInt=
erface&&a.implementsInterface(this)};Type.prototype.registerClass=3Dfunct=
ion(c,b,d){this.prototype.constructor=3Dthis;this.__typeName=3Dc;this.__c=
lass=3Dtrue;if(b){this.__baseType=3Db;this.__basePrototypePending=3Dtrue}=
Sys.__upperCaseTypes[c.toUpperCase()]=3Dthis;if(d){this.__interfaces=3D[]=
;for(var a=3D2,f=3Darguments.length;a<f;a++){var =
e=3Darguments[a];this.__interfaces.push(e)}}return =
this};Type.prototype.registerInterface=3Dfunction(a){Sys.__upperCaseTypes=
[a.toUpperCase()]=3Dthis;this.prototype.constructor=3Dthis;this.__typeNam=
e=3Da;this.__interface=3Dtrue;return =
this};Type.prototype.resolveInheritance=3Dfunction(){if(this.__baseProtot=
ypePending){var b=3Dthis.__baseType;b.resolveInheritance();for(var a in =
b.prototype){var =
c=3Db.prototype[a];if(!this.prototype[a])this.prototype[a]=3Dc}delete =
this.__basePrototypePending}};Type.getRootNamespaces=3Dfunction(){return =
Array.clone(Sys.__rootNamespaces)};Type.isClass=3Dfunction(a){if(typeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;return =
!!a.__class};Type.isInterface=3Dfunction(a){if(typeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;return =
!!a.__interface};Type.isNamespace=3Dfunction(a){if(typeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;return =
!!a.__namespace};Type.parse=3Dfunction(typeName,ns){var =
fn;if(ns){fn=3DSys.__upperCaseTypes[ns.getName().toUpperCase()+"."+typeNa=
me.toUpperCase()];return fn||null}if(!typeName)return =
null;if(!Type.__htClasses)Type.__htClasses=3D{};fn=3DType.__htClasses[typ=
eName];if(!fn){fn=3Deval(typeName);Type.__htClasses[typeName]=3Dfn}return=
 fn};Type.registerNamespace=3Dfunction(f){var =
d=3Dwindow,c=3Df.split(".");for(var b=3D0;b<c.length;b++){var =
e=3Dc[b],a=3Dd[e];if(!a){a=3Dd[e]=3D{__namespace:true,__typeName:c.slice(=
0,b+1).join(".")};if(b=3D=3D=3D0)Sys.__rootNamespaces[Sys.__rootNamespace=
s.length]=3Da;a.getName=3Dfunction(){return =
this.__typeName}}d=3Da}};window.Sys=3D{__namespace:true,__typeName:"Sys",=
getName:function(){return =
"Sys"},__upperCaseTypes:{}};Sys.__rootNamespaces=3D[Sys];Sys.IDisposable=3D=
function(){};Sys.IDisposable.prototype=3D{};Sys.IDisposable.registerInter=
face("Sys.IDisposable");Sys.StringBuilder=3Dfunction(a){this._parts=3Dtyp=
eof =
a!=3D=3D"undefined"&&a!=3D=3Dnull&&a!=3D=3D""?[a.toString()]:[];this._val=
ue=3D{};this._len=3D0};Sys.StringBuilder.prototype=3D{append:function(a){=
this._parts[this._parts.length]=3Da},appendLine:function(a){this._parts[t=
his._parts.length]=3Dtypeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull||a=3D=3D=3D""?"\r\n":a+"\r\n"},clea=
r:function(){this._parts=3D[];this._value=3D{};this._len=3D0},isEmpty:fun=
ction(){if(this._parts.length=3D=3D=3D0)return true;return =
this.toString()=3D=3D=3D""},toString:function(a){a=3Da||"";var =
b=3Dthis._parts;if(this._len!=3D=3Db.length){this._value=3D{};this._len=3D=
b.length}var d=3Dthis._value;if(typeof =
d[a]=3D=3D=3D"undefined"){if(a!=3D=3D"")for(var =
c=3D0;c<b.length;)if(typeof =
b[c]=3D=3D=3D"undefined"||b[c]=3D=3D=3D""||b[c]=3D=3D=3Dnull)b.splice(c,1=
);else c++;d[a]=3Dthis._parts.join(a)}return =
d[a]}};Sys.StringBuilder.registerClass("Sys.StringBuilder");if(!window.XM=
LHttpRequest)window.XMLHttpRequest=3Dfunction(){var =
b=3D["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP"];for(var =
a=3D0,c=3Db.length;a<c;a++)try{return new =
ActiveXObject(b[a])}catch(d){}return =
null};Sys.Browser=3D{};Sys.Browser.InternetExplorer=3D{};Sys.Browser.Fire=
fox=3D{};Sys.Browser.Safari=3D{};Sys.Browser.Opera=3D{};Sys.Browser.agent=
=3Dnull;Sys.Browser.hasDebuggerStatement=3Dfalse;Sys.Browser.name=3Dnavig=
ator.appName;Sys.Browser.version=3DparseFloat(navigator.appVersion);Sys.B=
rowser.documentMode=3D0;if(navigator.userAgent.indexOf(" MSIE =
")>-1){Sys.Browser.agent=3DSys.Browser.InternetExplorer;Sys.Browser.versi=
on=3DparseFloat(navigator.userAgent.match(/MSIE =
(\d+\.\d+)/)[1]);if(Sys.Browser.version>=3D8)if(document.documentMode>=3D=
7)Sys.Browser.documentMode=3Ddocument.documentMode;Sys.Browser.hasDebugge=
rStatement=3Dtrue}else if(navigator.userAgent.indexOf(" =
Firefox/")>-1){Sys.Browser.agent=3DSys.Browser.Firefox;Sys.Browser.versio=
n=3DparseFloat(navigator.userAgent.match(/Firefox\/(\d+\.\d+)/)[1]);Sys.B=
rowser.name=3D"Firefox";Sys.Browser.hasDebuggerStatement=3Dtrue}else =
if(navigator.userAgent.indexOf(" =
AppleWebKit/")>-1){Sys.Browser.agent=3DSys.Browser.Safari;Sys.Browser.ver=
sion=3DparseFloat(navigator.userAgent.match(/AppleWebKit\/(\d+(\.\d+)?)/)=
[1]);Sys.Browser.name=3D"Safari"}else =
if(navigator.userAgent.indexOf("Opera/")>-1)Sys.Browser.agent=3DSys.Brows=
er.Opera;Type.registerNamespace("Sys.UI");Sys._Debug=3Dfunction(){};Sys._=
Debug.prototype=3D{_appendConsole:function(a){if(typeof =
Debug!=3D=3D"undefined"&&Debug.writeln)Debug.writeln(a);if(window.console=
&&window.console.log)window.console.log(a);if(window.opera)window.opera.p=
ostError(a);if(window.debugService)window.debugService.trace(a)},_appendT=
race:function(b){var =
a=3Ddocument.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()=
=3D=3D=3D"TEXTAREA")a.value+=3Db+"\n"},assert:function(c,a,b){if(!c){a=3D=
b&&this.assert.caller?String.format(Sys.Res.assertFailedCaller,a,this.ass=
ert.caller):String.format(Sys.Res.assertFailed,a);if(confirm(String.forma=
t(Sys.Res.breakIntoDebugger,a)))this.fail(a)}},clearTrace:function(){var =
a=3Ddocument.getElementById("TraceConsole");if(a&&a.tagName.toUpperCase()=
=3D=3D=3D"TEXTAREA")a.value=3D""},fail:function(message){this._appendCons=
ole(message);if(Sys.Browser.hasDebuggerStatement)eval("debugger")},trace:=
function(a){this._appendConsole(a);this._appendTrace(a)},traceDump:functi=
on(a,b){var =
c=3Dthis._traceDump(a,b,true)},_traceDump:function(a,c,f,b,d){c=3Dc?c:"tr=
aceDump";b=3Db?b:"";if(a=3D=3D=3Dnull){this.trace(b+c+": =
null");return}switch(typeof a){case "undefined":this.trace(b+c+": =
Undefined");break;case "number":case "string":case =
"boolean":this.trace(b+c+": =
"+a);break;default:if(Date.isInstanceOfType(a)||RegExp.isInstanceOfType(a=
)){this.trace(b+c+": "+a.toString());break}if(!d)d=3D[];else =
if(Array.contains(d,a)){this.trace(b+c+": =
...");return}Array.add(d,a);if(a=3D=3Dwindow||a=3D=3D=3Ddocument||window.=
HTMLElement&&a instanceof HTMLElement||typeof =
a.nodeName=3D=3D=3D"string"){var =
k=3Da.tagName?a.tagName:"DomElement";if(a.id)k+=3D" - =
"+a.id;this.trace(b+c+" {"+k+"}")}else{var =
i=3DObject.getTypeName(a);this.trace(b+c+(typeof i=3D=3D=3D"string"?" =
{"+i+"}":""));if(b=3D=3D=3D""||f){b+=3D"    ";var =
e,j,l,g,h;if(Array.isInstanceOfType(a)){j=3Da.length;for(e=3D0;e<j;e++)th=
is._traceDump(a[e],"["+e+"]",f,b,d)}else for(g in =
a){h=3Da[g];if(!Function.isInstanceOfType(h))this._traceDump(h,g,f,b,d)}}=
}Array.remove(d,a)}}};Sys._Debug.registerClass("Sys._Debug");Sys.Debug=3D=
new Sys._Debug;Sys.Debug.isDebug=3Dfalse;function =
Sys$Enum$parse(c,e){var =
a,b,i;if(e){a=3Dthis.__lowerCaseValues;if(!a){this.__lowerCaseValues=3Da=3D=
{};var g=3Dthis.prototype;for(var f in g)a[f.toLowerCase()]=3Dg[f]}}else =
a=3Dthis.prototype;if(!this.__flags){i=3De?c.toLowerCase():c;b=3Da[i.trim=
()];if(typeof b!=3D=3D"number")throw =
Error.argument("value",String.format(Sys.Res.enumInvalidValue,c,this.__ty=
peName));return b}else{var =
h=3D(e?c.toLowerCase():c).split(","),j=3D0;for(var =
d=3Dh.length-1;d>=3D0;d--){var k=3Dh[d].trim();b=3Da[k];if(typeof =
b!=3D=3D"number")throw =
Error.argument("value",String.format(Sys.Res.enumInvalidValue,c.split(","=
)[d].trim(),this.__typeName));j|=3Db}return j}}function =
Sys$Enum$toString(c){if(typeof =
c=3D=3D=3D"undefined"||c=3D=3D=3Dnull)return this.__string;var =
d=3Dthis.prototype,a;if(!this.__flags||c=3D=3D=3D0){for(a in =
d)if(d[a]=3D=3D=3Dc)return a}else{var =
b=3Dthis.__sortedValues;if(!b){b=3D[];for(a in =
d)b[b.length]=3D{key:a,value:d[a]};b.sort(function(a,b){return =
a.value-b.value});this.__sortedValues=3Db}var =
e=3D[],g=3Dc;for(a=3Db.length-1;a>=3D0;a--){var =
h=3Db[a],f=3Dh.value;if(f=3D=3D=3D0)continue;if((f&c)=3D=3D=3Df){e[e.leng=
th]=3Dh.key;g-=3Df;if(g=3D=3D=3D0)break}}if(e.length&&g=3D=3D=3D0)return =
e.reverse().join(", ")}return =
""}Type.prototype.registerEnum=3Dfunction(b,c){Sys.__upperCaseTypes[b.toU=
pperCase()]=3Dthis;for(var a in =
this.prototype)this[a]=3Dthis.prototype[a];this.__typeName=3Db;this.parse=
=3DSys$Enum$parse;this.__string=3Dthis.toString();this.toString=3DSys$Enu=
m$toString;this.__flags=3Dc;this.__enum=3Dtrue};Type.isEnum=3Dfunction(a)=
{if(typeof a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;return =
!!a.__enum};Type.isFlags=3Dfunction(a){if(typeof =
a=3D=3D=3D"undefined"||a=3D=3D=3Dnull)return false;return =
!!a.__flags};Sys.EventHandlerList=3Dfunction(){this._list=3D{}};Sys.Event=
HandlerList.prototype=3D{addHandler:function(b,a){Array.add(this._getEven=
t(b,true),a)},removeHandler:function(c,b){var =
a=3Dthis._getEvent(c);if(!a)return;Array.remove(a,b)},getHandler:function=
(b){var a=3Dthis._getEvent(b);if(!a||a.length=3D=3D=3D0)return =
null;a=3DArray.clone(a);return function(c,d){for(var =
b=3D0,e=3Da.length;b<e;b++)a[b](c,d)}},_getEvent:function(a,b){if(!this._=
list[a]){if(!b)return null;this._list[a]=3D[]}return =
this._list[a]}};Sys.EventHandlerList.registerClass("Sys.EventHandlerList"=
);Sys.EventArgs=3Dfunction(){};Sys.EventArgs.registerClass("Sys.EventArgs=
");Sys.EventArgs.Empty=3Dnew =
Sys.EventArgs;Sys.CancelEventArgs=3Dfunction(){Sys.CancelEventArgs.initia=
lizeBase(this);this._cancel=3Dfalse};Sys.CancelEventArgs.prototype=3D{get=
_cancel:function(){return =
this._cancel},set_cancel:function(a){this._cancel=3Da}};Sys.CancelEventAr=
gs.registerClass("Sys.CancelEventArgs",Sys.EventArgs);Sys.INotifyProperty=
Change=3Dfunction(){};Sys.INotifyPropertyChange.prototype=3D{};Sys.INotif=
yPropertyChange.registerInterface("Sys.INotifyPropertyChange");Sys.Proper=
tyChangedEventArgs=3Dfunction(a){Sys.PropertyChangedEventArgs.initializeB=
ase(this);this._propertyName=3Da};Sys.PropertyChangedEventArgs.prototype=3D=
{get_propertyName:function(){return =
this._propertyName}};Sys.PropertyChangedEventArgs.registerClass("Sys.Prop=
ertyChangedEventArgs",Sys.EventArgs);Sys.INotifyDisposing=3Dfunction(){};=
Sys.INotifyDisposing.prototype=3D{};Sys.INotifyDisposing.registerInterfac=
e("Sys.INotifyDisposing");Sys.Component=3Dfunction(){if(Sys.Application)S=
ys.Application.registerDisposableObject(this)};Sys.Component.prototype=3D=
{_id:null,_initialized:false,_updating:false,get_events:function(){if(!th=
is._events)this._events=3Dnew Sys.EventHandlerList;return =
this._events},get_id:function(){return =
this._id},set_id:function(a){this._id=3Da},get_isInitialized:function(){r=
eturn this._initialized},get_isUpdating:function(){return =
this._updating},add_disposing:function(a){this.get_events().addHandler("d=
isposing",a)},remove_disposing:function(a){this.get_events().removeHandle=
r("disposing",a)},add_propertyChanged:function(a){this.get_events().addHa=
ndler("propertyChanged",a)},remove_propertyChanged:function(a){this.get_e=
vents().removeHandler("propertyChanged",a)},beginUpdate:function(){this._=
updating=3Dtrue},dispose:function(){if(this._events){var =
a=3Dthis._events.getHandler("disposing");if(a)a(this,Sys.EventArgs.Empty)=
}delete =
this._events;Sys.Application.unregisterDisposableObject(this);Sys.Applica=
tion.removeComponent(this)},endUpdate:function(){this._updating=3Dfalse;i=
f(!this._initialized)this.initialize();this.updated()},initialize:functio=
n(){this._initialized=3Dtrue},raisePropertyChanged:function(b){if(!this._=
events)return;var =
a=3Dthis._events.getHandler("propertyChanged");if(a)a(this,new =
Sys.PropertyChangedEventArgs(b))},updated:function(){}};Sys.Component.reg=
isterClass("Sys.Component",null,Sys.IDisposable,Sys.INotifyPropertyChange=
,Sys.INotifyDisposing);function Sys$Component$_setProperties(a,i){var =
d,j=3DObject.getType(a),e=3Dj=3D=3D=3DObject||j=3D=3D=3DSys.UI.DomElement=
,h=3DSys.Component.isInstanceOfType(a)&&!a.get_isUpdating();if(h)a.beginU=
pdate();for(var c in i){var b=3Di[c],f=3De?null:a["get_"+c];if(e||typeof =
f!=3D=3D"function"){var k=3Da[c];if(!b||typeof =
b!=3D=3D"object"||e&&!k)a[c]=3Db;else =
Sys$Component$_setProperties(k,b)}else{var l=3Da["set_"+c];if(typeof =
l=3D=3D=3D"function")l.apply(a,[b]);else if(b instanceof =
Array){d=3Df.apply(a);for(var =
g=3D0,m=3Dd.length,n=3Db.length;g<n;g++,m++)d[m]=3Db[g]}else if(typeof =
b=3D=3D=3D"object"&&Object.getType(b)=3D=3D=3DObject){d=3Df.apply(a);Sys$=
Component$_setProperties(d,b)}}}if(h)a.endUpdate()}function =
Sys$Component$_setReferences(c,b){for(var a in b){var =
e=3Dc["set_"+a],d=3D$find(b[a]);e.apply(c,[d])}}var =
$create=3DSys.Component.create=3Dfunction(h,f,d,c,g){var a=3Dg?new =
h(g):new =
h,b=3DSys.Application,i=3Db.get_isCreatingComponents();a.beginUpdate();if=
(f)Sys$Component$_setProperties(a,f);if(d)for(var e in =
d)a["add_"+e](d[e]);if(a.get_id())b.addComponent(a);if(i){b._createdCompo=
nents[b._createdComponents.length]=3Da;if(c)b._addComponentToSecondPass(a=
,c);else =
a.endUpdate()}else{if(c)Sys$Component$_setReferences(a,c);a.endUpdate()}r=
eturn a};Sys.UI.MouseButton=3Dfunction(){throw =
Error.notImplemented()};Sys.UI.MouseButton.prototype=3D{leftButton:0,midd=
leButton:1,rightButton:2};Sys.UI.MouseButton.registerEnum("Sys.UI.MouseBu=
tton");Sys.UI.Key=3Dfunction(){throw =
Error.notImplemented()};Sys.UI.Key.prototype=3D{backspace:8,tab:9,enter:1=
3,esc:27,space:32,pageUp:33,pageDown:34,end:35,home:36,left:37,up:38,righ=
t:39,down:40,del:127};Sys.UI.Key.registerEnum("Sys.UI.Key");Sys.UI.Point=3D=
function(a,b){this.x=3Da;this.y=3Db};Sys.UI.Point.registerClass("Sys.UI.P=
oint");Sys.UI.Bounds=3Dfunction(c,d,b,a){this.x=3Dc;this.y=3Dd;this.heigh=
t=3Da;this.width=3Db};Sys.UI.Bounds.registerClass("Sys.UI.Bounds");Sys.UI=
.DomEvent=3Dfunction(e){var =
a=3De,b=3Dthis.type=3Da.type.toLowerCase();this.rawEvent=3Da;this.altKey=3D=
a.altKey;if(typeof a.button!=3D=3D"undefined")this.button=3Dtypeof =
a.which!=3D=3D"undefined"?a.button:a.button=3D=3D=3D4?Sys.UI.MouseButton.=
middleButton:a.button=3D=3D=3D2?Sys.UI.MouseButton.rightButton:Sys.UI.Mou=
seButton.leftButton;if(b=3D=3D=3D"keypress")this.charCode=3Da.charCode||a=
.keyCode;else if(a.keyCode&&a.keyCode=3D=3D=3D46)this.keyCode=3D127;else =
this.keyCode=3Da.keyCode;this.clientX=3Da.clientX;this.clientY=3Da.client=
Y;this.ctrlKey=3Da.ctrlKey;this.target=3Da.target?a.target:a.srcElement;i=
f(!b.startsWith("key"))if(typeof a.offsetX!=3D=3D"undefined"&&typeof =
a.offsetY!=3D=3D"undefined"){this.offsetX=3Da.offsetX;this.offsetY=3Da.of=
fsetY}else if(this.target&&this.target.nodeType!=3D=3D3&&typeof =
a.clientX=3D=3D=3D"number"){var =
c=3DSys.UI.DomElement.getLocation(this.target),d=3DSys.UI.DomElement._get=
Window(this.target);this.offsetX=3D(d.pageXOffset||0)+a.clientX-c.x;this.=
offsetY=3D(d.pageYOffset||0)+a.clientY-c.y}this.screenX=3Da.screenX;this.=
screenY=3Da.screenY;this.shiftKey=3Da.shiftKey};Sys.UI.DomEvent.prototype=
=3D{preventDefault:function(){if(this.rawEvent.preventDefault)this.rawEve=
nt.preventDefault();else =
if(window.event)this.rawEvent.returnValue=3Dfalse},stopPropagation:functi=
on(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();els=
e =
if(window.event)this.rawEvent.cancelBubble=3Dtrue}};Sys.UI.DomEvent.regis=
terClass("Sys.UI.DomEvent");var =
$addHandler=3DSys.UI.DomEvent.addHandler=3Dfunction(a,d,e){if(!a._events)=
a._events=3D{};var c=3Da._events[d];if(!c)a._events[d]=3Dc=3D[];var =
b;if(a.addEventListener){b=3Dfunction(b){return e.call(a,new =
Sys.UI.DomEvent(b))};a.addEventListener(d,b,false)}else =
if(a.attachEvent){b=3Dfunction(){var =
b=3D{};try{b=3DSys.UI.DomElement._getWindow(a).event}catch(c){}return =
e.call(a,new =
Sys.UI.DomEvent(b))};a.attachEvent("on"+d,b)}c[c.length]=3D{handler:e,bro=
wserHandler:b}},$addHandlers=3DSys.UI.DomEvent.addHandlers=3Dfunction(e,d=
,c){for(var b in d){var =
a=3Dd[b];if(c)a=3DFunction.createDelegate(c,a);$addHandler(e,b,a)}},$clea=
rHandlers=3DSys.UI.DomEvent.clearHandlers=3Dfunction(a){if(a._events){var=
 e=3Da._events;for(var b in e){var d=3De[b];for(var =
c=3Dd.length-1;c>=3D0;c--)$removeHandler(a,b,d[c].handler)}a._events=3Dnu=
ll}},$removeHandler=3DSys.UI.DomEvent.removeHandler=3Dfunction(a,e,f){var=
 d=3Dnull,c=3Da._events[e];for(var =
b=3D0,g=3Dc.length;b<g;b++)if(c[b].handler=3D=3D=3Df){d=3Dc[b].browserHan=
dler;break}if(a.removeEventListener)a.removeEventListener(e,d,false);else=
 =
if(a.detachEvent)a.detachEvent("on"+e,d);c.splice(b,1)};Sys.UI.DomElement=
=3Dfunction(){};Sys.UI.DomElement.registerClass("Sys.UI.DomElement");Sys.=
UI.DomElement.addCssClass=3Dfunction(a,b){if(!Sys.UI.DomElement.containsC=
ssClass(a,b))if(a.className=3D=3D=3D"")a.className=3Db;else =
a.className+=3D" =
"+b};Sys.UI.DomElement.containsCssClass=3Dfunction(b,a){return =
Array.contains(b.className.split(" =
"),a)};Sys.UI.DomElement.getBounds=3Dfunction(a){var =
b=3DSys.UI.DomElement.getLocation(a);return new =
Sys.UI.Bounds(b.x,b.y,a.offsetWidth||0,a.offsetHeight||0)};var =
$get=3DSys.UI.DomElement.getElementById=3Dfunction(f,e){if(!e)return =
document.getElementById(f);if(e.getElementById)return =
e.getElementById(f);var c=3D[],d=3De.childNodes;for(var =
b=3D0;b<d.length;b++){var =
a=3Dd[b];if(a.nodeType=3D=3D1)c[c.length]=3Da}while(c.length){a=3Dc.shift=
();if(a.id=3D=3Df)return =
a;d=3Da.childNodes;for(b=3D0;b<d.length;b++){a=3Dd[b];if(a.nodeType=3D=3D=
1)c[c.length]=3Da}}return null};switch(Sys.Browser.agent){case =
Sys.Browser.InternetExplorer:Sys.UI.DomElement.getLocation=3Dfunction(a){=
if(a.self||a.nodeType=3D=3D=3D9)return new Sys.UI.Point(0,0);var =
b=3Da.getBoundingClientRect();if(!b)return new Sys.UI.Point(0,0);var =
d=3Da.ownerDocument.documentElement,e=3Db.left-2+d.scrollLeft,f=3Db.top-2=
+d.scrollTop;try{var =
c=3Da.ownerDocument.parentWindow.frameElement||null;if(c){var =
g=3Dc.frameBorder=3D=3D=3D"0"||c.frameBorder=3D=3D=3D"no"?2:0;e+=3Dg;f+=3D=
g}}catch(h){}return new Sys.UI.Point(e,f)};break;case =
Sys.Browser.Safari:Sys.UI.DomElement.getLocation=3Dfunction(c){if(c.windo=
w&&c.window=3D=3D=3Dc||c.nodeType=3D=3D=3D9)return new =
Sys.UI.Point(0,0);var f=3D0,g=3D0,j=3Dnull,e=3Dnull,b;for(var =
a=3Dc;a;j=3Da,(e=3Db,a=3Da.offsetParent)){b=3DSys.UI.DomElement._getCurre=
ntStyle(a);var =
d=3Da.tagName?a.tagName.toUpperCase():null;if((a.offsetLeft||a.offsetTop)=
&&(d!=3D=3D"BODY"||(!e||e.position!=3D=3D"absolute"))){f+=3Da.offsetLeft;=
g+=3Da.offsetTop}}b=3DSys.UI.DomElement._getCurrentStyle(c);var =
h=3Db?b.position:null;if(!h||h!=3D=3D"absolute")for(var =
a=3Dc.parentNode;a;a=3Da.parentNode){d=3Da.tagName?a.tagName.toUpperCase(=
):null;if(d!=3D=3D"BODY"&&d!=3D=3D"HTML"&&(a.scrollLeft||a.scrollTop)){f-=
=3Da.scrollLeft||0;g-=3Da.scrollTop||0}b=3DSys.UI.DomElement._getCurrentS=
tyle(a);var =
i=3Db?b.position:null;if(i&&i=3D=3D=3D"absolute")break}return new =
Sys.UI.Point(f,g)};break;case =
Sys.Browser.Opera:Sys.UI.DomElement.getLocation=3Dfunction(b){if(b.window=
&&b.window=3D=3D=3Db||b.nodeType=3D=3D=3D9)return new =
Sys.UI.Point(0,0);var d=3D0,e=3D0,i=3Dnull;for(var =
a=3Db;a;i=3Da,a=3Da.offsetParent){var =
f=3Da.tagName;d+=3Da.offsetLeft||0;e+=3Da.offsetTop||0}var =
g=3Db.style.position,c=3Dg&&g!=3D=3D"static";for(var =
a=3Db.parentNode;a;a=3Da.parentNode){f=3Da.tagName?a.tagName.toUpperCase(=
):null;if(f!=3D=3D"BODY"&&f!=3D=3D"HTML"&&(a.scrollLeft||a.scrollTop)&&(c=
&&(a.style.overflow=3D=3D=3D"scroll"||a.style.overflow=3D=3D=3D"auto"))){=
d-=3Da.scrollLeft||0;e-=3Da.scrollTop||0}var =
h=3Da&&a.style?a.style.position:null;c=3Dc||h&&h!=3D=3D"static"}return =
new =
Sys.UI.Point(d,e)};break;default:Sys.UI.DomElement.getLocation=3Dfunction=
(d){if(d.window&&d.window=3D=3D=3Dd||d.nodeType=3D=3D=3D9)return new =
Sys.UI.Point(0,0);var e=3D0,f=3D0,i=3Dnull,g=3Dnull,b=3Dnull;for(var =
a=3Dd;a;i=3Da,(g=3Db,a=3Da.offsetParent)){var =
c=3Da.tagName?a.tagName.toUpperCase():null;b=3DSys.UI.DomElement._getCurr=
entStyle(a);if((a.offsetLeft||a.offsetTop)&&!(c=3D=3D=3D"BODY"&&(!g||g.po=
sition!=3D=3D"absolute"))){e+=3Da.offsetLeft;f+=3Da.offsetTop}if(i!=3D=3D=
null&&b){if(c!=3D=3D"TABLE"&&c!=3D=3D"TD"&&c!=3D=3D"HTML"){e+=3DparseInt(=
b.borderLeftWidth)||0;f+=3DparseInt(b.borderTopWidth)||0}if(c=3D=3D=3D"TA=
BLE"&&(b.position=3D=3D=3D"relative"||b.position=3D=3D=3D"absolute")){e+=3D=
parseInt(b.marginLeft)||0;f+=3DparseInt(b.marginTop)||0}}}b=3DSys.UI.DomE=
lement._getCurrentStyle(d);var =
h=3Db?b.position:null;if(!h||h!=3D=3D"absolute")for(var =
a=3Dd.parentNode;a;a=3Da.parentNode){c=3Da.tagName?a.tagName.toUpperCase(=
):null;if(c!=3D=3D"BODY"&&c!=3D=3D"HTML"&&(a.scrollLeft||a.scrollTop)){e-=
=3Da.scrollLeft||0;f-=3Da.scrollTop||0;b=3DSys.UI.DomElement._getCurrentS=
tyle(a);if(b){e+=3DparseInt(b.borderLeftWidth)||0;f+=3DparseInt(b.borderT=
opWidth)||0}}}return new =
Sys.UI.Point(e,f)}}Sys.UI.DomElement.removeCssClass=3Dfunction(d,c){var =
a=3D" "+d.className+" ",b=3Da.indexOf(" "+c+" =
");if(b>=3D0)d.className=3D(a.substr(0,b)+" =
"+a.substring(b+c.length+1,a.length)).trim()};Sys.UI.DomElement.setLocati=
on=3Dfunction(b,c,d){var =
a=3Db.style;a.position=3D"absolute";a.left=3Dc+"px";a.top=3Dd+"px"};Sys.U=
I.DomElement.toggleCssClass=3Dfunction(b,a){if(Sys.UI.DomElement.contains=
CssClass(b,a))Sys.UI.DomElement.removeCssClass(b,a);else =
Sys.UI.DomElement.addCssClass(b,a)};Sys.UI.DomElement.getVisibilityMode=3D=
function(a){return =
a._visibilityMode=3D=3D=3DSys.UI.VisibilityMode.hide?Sys.UI.VisibilityMod=
e.hide:Sys.UI.VisibilityMode.collapse};Sys.UI.DomElement.setVisibilityMod=
e=3Dfunction(a,b){Sys.UI.DomElement._ensureOldDisplayMode(a);if(a._visibi=
lityMode!=3D=3Db){a._visibilityMode=3Db;if(Sys.UI.DomElement.getVisible(a=
)=3D=3D=3Dfalse)if(a._visibilityMode=3D=3D=3DSys.UI.VisibilityMode.hide)a=
.style.display=3Da._oldDisplayMode;else =
a.style.display=3D"none";a._visibilityMode=3Db}};Sys.UI.DomElement.getVis=
ible=3Dfunction(b){var =
a=3Db.currentStyle||Sys.UI.DomElement._getCurrentStyle(b);if(!a)return =
true;return =
a.visibility!=3D=3D"hidden"&&a.display!=3D=3D"none"};Sys.UI.DomElement.se=
tVisible=3Dfunction(a,b){if(b!=3D=3DSys.UI.DomElement.getVisible(a)){Sys.=
UI.DomElement._ensureOldDisplayMode(a);a.style.visibility=3Db?"visible":"=
hidden";if(b||a._visibilityMode=3D=3D=3DSys.UI.VisibilityMode.hide)a.styl=
e.display=3Da._oldDisplayMode;else =
a.style.display=3D"none"}};Sys.UI.DomElement._ensureOldDisplayMode=3Dfunc=
tion(a){if(!a._oldDisplayMode){var =
b=3Da.currentStyle||Sys.UI.DomElement._getCurrentStyle(a);a._oldDisplayMo=
de=3Db?b.display:null;if(!a._oldDisplayMode||a._oldDisplayMode=3D=3D=3D"n=
one")switch(a.tagName.toUpperCase()){case "DIV":case "P":case =
"ADDRESS":case "BLOCKQUOTE":case "BODY":case "COL":case "COLGROUP":case =
"DD":case "DL":case "DT":case "FIELDSET":case "FORM":case "H1":case =
"H2":case "H3":case "H4":case "H5":case "H6":case "HR":case =
"IFRAME":case "LEGEND":case "OL":case "PRE":case "TABLE":case "TD":case =
"TH":case "TR":case "UL":a._oldDisplayMode=3D"block";break;case =
"LI":a._oldDisplayMode=3D"list-item";break;default:a._oldDisplayMode=3D"i=
nline"}}};Sys.UI.DomElement._getWindow=3Dfunction(a){var =
b=3Da.ownerDocument||a.document||a;return =
b.defaultView||b.parentWindow};Sys.UI.DomElement._getCurrentStyle=3Dfunct=
ion(a){if(a.nodeType=3D=3D=3D3)return null;var =
c=3DSys.UI.DomElement._getWindow(a);if(a.documentElement)a=3Da.documentEl=
ement;var =
b=3Dc&&a!=3D=3Dc&&c.getComputedStyle?c.getComputedStyle(a,null):a.current=
Style||a.style;if(!b&&Sys.Browser.agent=3D=3D=3DSys.Browser.Safari&&a.sty=
le){var =
g=3Da.style.display,f=3Da.style.position;a.style.position=3D"absolute";a.=
style.display=3D"block";var =
e=3Dc.getComputedStyle(a,null);a.style.display=3Dg;a.style.position=3Df;b=
=3D{};for(var d in e)b[d]=3De[d];b.display=3D"none"}return =
b};Sys.IContainer=3Dfunction(){};Sys.IContainer.prototype=3D{};Sys.IConta=
iner.registerInterface("Sys.IContainer");Sys._ScriptLoader=3Dfunction(){t=
his._scriptsToLoad=3Dnull;this._sessions=3D[];this._scriptLoadedDelegate=3D=
Function.createDelegate(this,this._scriptLoadedHandler)};Sys._ScriptLoade=
r.prototype=3D{dispose:function(){this._stopSession();this._loading=3Dfal=
se;if(this._events)delete =
this._events;this._sessions=3Dnull;this._currentSession=3Dnull;this._scri=
ptLoadedDelegate=3Dnull},loadScripts:function(d,b,c,a){var =
e=3D{allScriptsLoadedCallback:b,scriptLoadFailedCallback:c,scriptLoadTime=
outCallback:a,scriptsToLoad:this._scriptsToLoad,scriptTimeout:d};this._sc=
riptsToLoad=3Dnull;this._sessions[this._sessions.length]=3De;if(!this._lo=
ading)this._nextSession()},notifyScriptLoaded:function(){if(!this._loadin=
g)return;this._currentTask._notified++;if(Sys.Browser.agent=3D=3D=3DSys.B=
rowser.Safari)if(this._currentTask._notified=3D=3D=3D1)window.setTimeout(=
Function.createDelegate(this,function(){this._scriptLoadedHandler(this._c=
urrentTask.get_scriptElement(),true)}),0)},queueCustomScriptTag:function(=
a){if(!this._scriptsToLoad)this._scriptsToLoad=3D[];Array.add(this._scrip=
tsToLoad,a)},queueScriptBlock:function(a){if(!this._scriptsToLoad)this._s=
criptsToLoad=3D[];Array.add(this._scriptsToLoad,{text:a})},queueScriptRef=
erence:function(a){if(!this._scriptsToLoad)this._scriptsToLoad=3D[];Array=
.add(this._scriptsToLoad,{src:a})},_createScriptElement:function(c){var =
a=3Ddocument.createElement("script");a.type=3D"text/javascript";for(var =
b in c)a[b]=3Dc[b];return a},_loadScriptsInternal:function(){var =
b=3Dthis._currentSession;if(b.scriptsToLoad&&b.scriptsToLoad.length>0){va=
r =
c=3DArray.dequeue(b.scriptsToLoad),a=3Dthis._createScriptElement(c);if(a.=
text&&Sys.Browser.agent=3D=3D=3DSys.Browser.Safari){a.innerHTML=3Da.text;=
delete a.text}if(typeof c.src=3D=3D=3D"string"){this._currentTask=3Dnew =
Sys._ScriptLoaderTask(a,this._scriptLoadedDelegate);this._currentTask.exe=
cute()}else{document.getElementsByTagName("head")[0].appendChild(a);Sys._=
ScriptLoader._clearScript(a);this._loadScriptsInternal()}}else{this._stop=
Session();var =
d=3Db.allScriptsLoadedCallback;if(d)d(this);this._nextSession()}},_nextSe=
ssion:function(){if(this._sessions.length=3D=3D=3D0){this._loading=3Dfals=
e;this._currentSession=3Dnull;return}this._loading=3Dtrue;var =
a=3DArray.dequeue(this._sessions);this._currentSession=3Da;if(a.scriptTim=
eout>0)this._timeoutCookie=3Dwindow.setTimeout(Function.createDelegate(th=
is,this._scriptLoadTimeoutHandler),a.scriptTimeout*1000);this._loadScript=
sInternal()},_raiseError:function(a){var =
c=3Dthis._currentSession.scriptLoadFailedCallback,b=3Dthis._currentTask.g=
et_scriptElement();this._stopSession();if(c){c(this,b,a);this._nextSessio=
n()}else{this._loading=3Dfalse;throw =
Sys._ScriptLoader._errorScriptLoadFailed(b.src,a)}},_scriptLoadedHandler:=
function(a,b){if(b&&this._currentTask._notified)if(this._currentTask._not=
ified>1)this._raiseError(true);else{Array.add(Sys._ScriptLoader._getLoade=
dScripts(),a.src);this._currentTask.dispose();this._currentTask=3Dnull;th=
is._loadScriptsInternal()}else =
this._raiseError(false)},_scriptLoadTimeoutHandler:function(){var =
a=3Dthis._currentSession.scriptLoadTimeoutCallback;this._stopSession();if=
(a)a(this);this._nextSession()},_stopSession:function(){if(this._timeoutC=
ookie){window.clearTimeout(this._timeoutCookie);this._timeoutCookie=3Dnul=
l}if(this._currentTask){this._currentTask.dispose();this._currentTask=3Dn=
ull}}};Sys._ScriptLoader.registerClass("Sys._ScriptLoader",null,Sys.IDisp=
osable);Sys._ScriptLoader.getInstance=3Dfunction(){var =
a=3DSys._ScriptLoader._activeInstance;if(!a)a=3DSys._ScriptLoader._active=
Instance=3Dnew Sys._ScriptLoader;return =
a};Sys._ScriptLoader.isScriptLoaded=3Dfunction(b){var =
a=3Ddocument.createElement("script");a.src=3Db;return =
Array.contains(Sys._ScriptLoader._getLoadedScripts(),a.src)};Sys._ScriptL=
oader.readLoadedScripts=3Dfunction(){if(!Sys._ScriptLoader._referencedScr=
ipts){var =
b=3DSys._ScriptLoader._referencedScripts=3D[],c=3Ddocument.getElementsByT=
agName("script");for(i=3Dc.length-1;i>=3D0;i--){var =
d=3Dc[i],a=3Dd.src;if(a.length)if(!Array.contains(b,a))Array.add(b,a)}}};=
Sys._ScriptLoader._clearScript=3Dfunction(a){if(!Sys.Debug.isDebug)a.pare=
ntNode.removeChild(a)};Sys._ScriptLoader._errorScriptLoadFailed=3Dfunctio=
n(b,d){var a;if(d)a=3DSys.Res.scriptLoadMultipleCallbacks;else =
a=3DSys.Res.scriptLoadFailed;var e=3D"Sys.ScriptLoadFailedException: =
"+String.format(a,b),c=3DError.create(e,{name:"Sys.ScriptLoadFailedExcept=
ion","scriptUrl":b});c.popStackFrame();return =
c};Sys._ScriptLoader._getLoadedScripts=3Dfunction(){if(!Sys._ScriptLoader=
._referencedScripts){Sys._ScriptLoader._referencedScripts=3D[];Sys._Scrip=
tLoader.readLoadedScripts()}return =
Sys._ScriptLoader._referencedScripts};Sys._ScriptLoaderTask=3Dfunction(b,=
a){this._scriptElement=3Db;this._completedCallback=3Da;this._notified=3D0=
};Sys._ScriptLoaderTask.prototype=3D{get_scriptElement:function(){return =
this._scriptElement},dispose:function(){if(this._disposed)return;this._di=
sposed=3Dtrue;this._removeScriptElementHandlers();Sys._ScriptLoader._clea=
rScript(this._scriptElement);this._scriptElement=3Dnull},execute:function=
(){this._addScriptElementHandlers();document.getElementsByTagName("head")=
[0].appendChild(this._scriptElement)},_addScriptElementHandlers:function(=
){this._scriptLoadDelegate=3DFunction.createDelegate(this,this._scriptLoa=
dHandler);if(Sys.Browser.agent!=3D=3DSys.Browser.InternetExplorer){this._=
scriptElement.readyState=3D"loaded";$addHandler(this._scriptElement,"load=
",this._scriptLoadDelegate)}else =
$addHandler(this._scriptElement,"readystatechange",this._scriptLoadDelega=
te);if(this._scriptElement.addEventListener){this._scriptErrorDelegate=3D=
Function.createDelegate(this,this._scriptErrorHandler);this._scriptElemen=
t.addEventListener("error",this._scriptErrorDelegate,false)}},_removeScri=
ptElementHandlers:function(){if(this._scriptLoadDelegate){var =
a=3Dthis.get_scriptElement();if(Sys.Browser.agent!=3D=3DSys.Browser.Inter=
netExplorer)$removeHandler(a,"load",this._scriptLoadDelegate);else =
$removeHandler(a,"readystatechange",this._scriptLoadDelegate);if(this._sc=
riptErrorDelegate){this._scriptElement.removeEventListener("error",this._=
scriptErrorDelegate,false);this._scriptErrorDelegate=3Dnull}this._scriptL=
oadDelegate=3Dnull}},_scriptErrorHandler:function(){if(this._disposed)ret=
urn;this._completedCallback(this.get_scriptElement(),false)},_scriptLoadH=
andler:function(){if(this._disposed)return;var =
a=3Dthis.get_scriptElement();if(a.readyState!=3D=3D"loaded"&&a.readyState=
!=3D=3D"complete")return;var =
b=3Dthis;window.setTimeout(function(){b._completedCallback(a,true)},0)}};=
Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask",null,Sys.IDis=
posable);Sys.ApplicationLoadEventArgs=3Dfunction(b,a){Sys.ApplicationLoad=
EventArgs.initializeBase(this);this._components=3Db;this._isPartialLoad=3D=
a};Sys.ApplicationLoadEventArgs.prototype=3D{get_components:function(){re=
turn this._components},get_isPartialLoad:function(){return =
this._isPartialLoad}};Sys.ApplicationLoadEventArgs.registerClass("Sys.App=
licationLoadEventArgs",Sys.EventArgs);Sys.HistoryEventArgs=3Dfunction(a){=
Sys.HistoryEventArgs.initializeBase(this);this._state=3Da};Sys.HistoryEve=
ntArgs.prototype=3D{get_state:function(){return =
this._state}};Sys.HistoryEventArgs.registerClass("Sys.HistoryEventArgs",S=
ys.EventArgs);Sys._Application=3Dfunction(){Sys._Application.initializeBa=
se(this);this._disposableObjects=3D[];this._components=3D{};this._created=
Components=3D[];this._secondPassComponents=3D[];this._appLoadHandler=3Dnu=
ll;this._beginRequestHandler=3Dnull;this._clientId=3Dnull;this._currentEn=
try=3D"";this._endRequestHandler=3Dnull;this._history=3Dnull;this._enable=
History=3Dfalse;this._historyFrame=3Dnull;this._historyInitialized=3Dfals=
e;this._historyInitialLength=3D0;this._historyLength=3D0;this._historyPoi=
ntIsNew=3Dfalse;this._ignoreTimer=3Dfalse;this._initialState=3Dnull;this.=
_state=3D{};this._timerCookie=3D0;this._timerHandler=3Dnull;this._uniqueI=
d=3Dnull;this._unloadHandlerDelegate=3DFunction.createDelegate(this,this.=
_unloadHandler);this._loadHandlerDelegate=3DFunction.createDelegate(this,=
this._loadHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._unloa=
dHandlerDelegate);Sys.UI.DomEvent.addHandler(window,"load",this._loadHand=
lerDelegate)};Sys._Application.prototype=3D{_creatingComponents:false,_di=
sposing:false,get_isCreatingComponents:function(){return =
this._creatingComponents},get_stateString:function(){var =
a=3Dwindow.location.hash;if(this._isSafari2()){var =
b=3Dthis._getHistory();if(b)a=3Db[window.history.length-this._historyInit=
ialLength]}if(a.length>0&&a.charAt(0)=3D=3D=3D"#")a=3Da.substring(1);if(S=
ys.Browser.agent=3D=3D=3DSys.Browser.Firefox)a=3Dthis._serializeState(thi=
s._deserializeState(a,true));return =
a},get_enableHistory:function(){return =
this._enableHistory},set_enableHistory:function(a){this._enableHistory=3D=
a},add_init:function(a){if(this._initialized)a(this,Sys.EventArgs.Empty);=
else =
this.get_events().addHandler("init",a)},remove_init:function(a){this.get_=
events().removeHandler("init",a)},add_load:function(a){this.get_events().=
addHandler("load",a)},remove_load:function(a){this.get_events().removeHan=
dler("load",a)},add_navigate:function(a){this.get_events().addHandler("na=
vigate",a)},remove_navigate:function(a){this.get_events().removeHandler("=
navigate",a)},add_unload:function(a){this.get_events().addHandler("unload=
",a)},remove_unload:function(a){this.get_events().removeHandler("unload",=
a)},addComponent:function(a){this._components[a.get_id()]=3Da},addHistory=
Point:function(c,f){this._ensureHistory();var b=3Dthis._state;for(var a =
in c){var d=3Dc[a];if(d=3D=3D=3Dnull){if(typeof =
b[a]!=3D=3D"undefined")delete b[a]}else b[a]=3Dd}var =
e=3Dthis._serializeState(b);this._historyPointIsNew=3Dtrue;this._setState=
(e,f);this._raiseNavigate()},beginCreateComponents:function(){this._creat=
ingComponents=3Dtrue},dispose:function(){if(!this._disposing){this._dispo=
sing=3Dtrue;if(this._timerCookie){window.clearTimeout(this._timerCookie);=
delete =
this._timerCookie}if(this._endRequestHandler){Sys.WebForms.PageRequestMan=
ager.getInstance().remove_endRequest(this._endRequestHandler);delete =
this._endRequestHandler}if(this._beginRequestHandler){Sys.WebForms.PageRe=
questManager.getInstance().remove_beginRequest(this._beginRequestHandler)=
;delete =
this._beginRequestHandler}if(window.pageUnload)window.pageUnload(this,Sys=
.EventArgs.Empty);var =
c=3Dthis.get_events().getHandler("unload");if(c)c(this,Sys.EventArgs.Empt=
y);var b=3DArray.clone(this._disposableObjects);for(var =
a=3D0,e=3Db.length;a<e;a++)b[a].dispose();Array.clear(this._disposableObj=
ects);Sys.UI.DomEvent.removeHandler(window,"unload",this._unloadHandlerDe=
legate);if(this._loadHandlerDelegate){Sys.UI.DomEvent.removeHandler(windo=
w,"load",this._loadHandlerDelegate);this._loadHandlerDelegate=3Dnull}var =
d=3DSys._ScriptLoader.getInstance();if(d)d.dispose();Sys._Application.cal=
lBaseMethod(this,"dispose")}},endCreateComponents:function(){var =
b=3Dthis._secondPassComponents;for(var a=3D0,d=3Db.length;a<d;a++){var =
c=3Db[a].component;Sys$Component$_setReferences(c,b[a].references);c.endU=
pdate()}this._secondPassComponents=3D[];this._creatingComponents=3Dfalse}=
,findComponent:function(b,a){return =
a?Sys.IContainer.isInstanceOfType(a)?a.findComponent(b):a[b]||null:Sys.Ap=
plication._components[b]||null},getComponents:function(){var =
a=3D[],b=3Dthis._components;for(var c in b)a[a.length]=3Db[c];return =
a},initialize:function(){if(!this._initialized&&!this._initializing){this=
._initializing=3Dtrue;window.setTimeout(Function.createDelegate(this,this=
._doInitialize),0)}},notifyScriptLoaded:function(){var =
a=3DSys._ScriptLoader.getInstance();if(a)a.notifyScriptLoaded()},register=
DisposableObject:function(a){if(!this._disposing)this._disposableObjects[=
this._disposableObjects.length]=3Da},raiseLoad:function(){var =
b=3Dthis.get_events().getHandler("load"),a=3Dnew =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents),!this._=
initializing);if(b)b(this,a);if(window.pageLoad)window.pageLoad(this,a);t=
his._createdComponents=3D[]},removeComponent:function(b){var =
a=3Db.get_id();if(a)delete =
this._components[a]},setServerId:function(a,b){this._clientId=3Da;this._u=
niqueId=3Db},setServerState:function(a){this._ensureHistory();this._state=
.__s=3Da;this._updateHiddenField(a)},unregisterDisposableObject:function(=
a){if(!this._disposing)Array.remove(this._disposableObjects,a)},_addCompo=
nentToSecondPass:function(b,a){this._secondPassComponents[this._secondPas=
sComponents.length]=3D{component:b,references:a}},_deserializeState:funct=
ion(a,i){var e=3D{};a=3Da||"";var =
b=3Da.indexOf("&&");if(b!=3D=3D-1&&b+2<a.length){e.__s=3Da.substr(b+2);a=3D=
a.substr(0,b)}var g=3Da.split("&");for(var =
f=3D0,k=3Dg.length;f<k;f++){var =
d=3Dg[f],c=3Dd.indexOf("=3D");if(c!=3D=3D-1&&c+1<d.length){var =
j=3Dd.substr(0,c),h=3Dd.substr(c+1);e[j]=3Di?h:decodeURIComponent(h)}}ret=
urn =
e},_doInitialize:function(){Sys._Application.callBaseMethod(this,"initial=
ize");var =
b=3Dthis.get_events().getHandler("init");if(b){this.beginCreateComponents=
();b(this,Sys.EventArgs.Empty);this.endCreateComponents()}if(Sys.WebForms=
){this._beginRequestHandler=3DFunction.createDelegate(this,this._onPageRe=
questManagerBeginRequest);Sys.WebForms.PageRequestManager.getInstance().a=
dd_beginRequest(this._beginRequestHandler);this._endRequestHandler=3DFunc=
tion.createDelegate(this,this._onPageRequestManagerEndRequest);Sys.WebFor=
ms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandle=
r)}var =
a=3Dthis.get_stateString();if(a!=3D=3Dthis._currentEntry)this._navigate(a=
);this.raiseLoad();this._initializing=3Dfalse},_enableHistoryInScriptMana=
ger:function(){this._enableHistory=3Dtrue},_ensureHistory:function(){if(!=
this._historyInitialized&&this._enableHistory){if(Sys.Browser.agent=3D=3D=
=3DSys.Browser.InternetExplorer&&Sys.Browser.documentMode<8){this._histor=
yFrame=3Ddocument.getElementById("__historyFrame");this._ignoreIFrame=3Dt=
rue}if(this._isSafari2()){var =
a=3Ddocument.getElementById("__history");this._setHistory([window.locatio=
n.hash]);this._historyInitialLength=3Dwindow.history.length}this._timerHa=
ndler=3DFunction.createDelegate(this,this._onIdle);this._timerCookie=3Dwi=
ndow.setTimeout(this._timerHandler,100);try{this._initialState=3Dthis._de=
serializeState(this.get_stateString())}catch(b){}this._historyInitialized=
=3Dtrue}},_getHistory:function(){var =
a=3Ddocument.getElementById("__history");if(!a)return "";var =
b=3Da.value;return =
b?Sys.Serialization.JavaScriptSerializer.deserialize(b,true):""},_isSafar=
i2:function(){return =
Sys.Browser.agent=3D=3D=3DSys.Browser.Safari&&Sys.Browser.version<=3D419.=
3},_loadHandler:function(){if(this._loadHandlerDelegate){Sys.UI.DomEvent.=
removeHandler(window,"load",this._loadHandlerDelegate);this._loadHandlerD=
elegate=3Dnull}this.initialize()},_navigate:function(c){this._ensureHisto=
ry();var b=3Dthis._deserializeState(c);if(this._uniqueId){var =
d=3Dthis._state.__s||"",a=3Db.__s||"";if(a!=3D=3Dd){this._updateHiddenFie=
ld(a);__doPostBack(this._uniqueId,a);this._state=3Db;return}}this._setSta=
te(c);this._state=3Db;this._raiseNavigate()},_onIdle:function(){delete =
this._timerCookie;var =
a=3Dthis.get_stateString();if(a!=3D=3Dthis._currentEntry){if(!this._ignor=
eTimer){this._historyPointIsNew=3Dfalse;this._navigate(a);this._historyLe=
ngth=3Dwindow.history.length}}else =
this._ignoreTimer=3Dfalse;this._timerCookie=3Dwindow.setTimeout(this._tim=
erHandler,100)},_onIFrameLoad:function(a){this._ensureHistory();if(!this.=
_ignoreIFrame){this._historyPointIsNew=3Dfalse;this._navigate(a)}this._ig=
noreIFrame=3Dfalse},_onPageRequestManagerBeginRequest:function(){this._ig=
noreTimer=3Dtrue},_onPageRequestManagerEndRequest:function(e,d){var =
b=3Dd.get_dataItems()[this._clientId],a=3Ddocument.getElementById("__EVEN=
TTARGET");if(a&&a.value=3D=3D=3Dthis._uniqueId)a.value=3D"";if(typeof =
b!=3D=3D"undefined"){this.setServerState(b);this._historyPointIsNew=3Dtru=
e}else this._ignoreTimer=3Dfalse;var =
c=3Dthis._serializeState(this._state);if(c!=3D=3Dthis._currentEntry){this=
._ignoreTimer=3Dtrue;this._setState(c);this._raiseNavigate()}},_raiseNavi=
gate:function(){var =
c=3Dthis.get_events().getHandler("navigate"),b=3D{};for(var a in =
this._state)if(a!=3D=3D"__s")b[a]=3Dthis._state[a];var d=3Dnew =
Sys.HistoryEventArgs(b);if(c)c(this,d)},_serializeState:function(d){var =
b=3D[];for(var a in d){var e=3Dd[a];if(a=3D=3D=3D"__s")var c=3De;else =
b[b.length]=3Da+"=3D"+encodeURIComponent(e)}return =
b.join("&")+(c?"&&"+c:"")},_setHistory:function(b){var =
a=3Ddocument.getElementById("__history");if(a)a.value=3DSys.Serialization=
.JavaScriptSerializer.serialize(b)},_setState:function(a,c){a=3Da||"";if(=
a!=3D=3Dthis._currentEntry){if(window.theForm){var =
e=3Dwindow.theForm.action,f=3De.indexOf("#");window.theForm.action=3D(f!=3D=
=3D-1?e.substring(0,f):e)+"#"+a}if(this._historyFrame&&this._historyPoint=
IsNew){this._ignoreIFrame=3Dtrue;this._historyPointIsNew=3Dfalse;var =
d=3Dthis._historyFrame.contentWindow.document;d.open("javascript:'<html><=
/html>'");d.write("<html><head><title>"+(c||document.title)+"</title><scr=
i"+'pt =
type=3D"text/javascript">parent.Sys.Application._onIFrameLoad(\''+a+"');<=
/scri"+"pt></head><body></body></html>");d.close()}this._ignoreTimer=3Dfa=
lse;var =
h=3Dthis.get_stateString();this._currentEntry=3Da;if(a!=3D=3Dh){if(this._=
isSafari2()){var =
g=3Dthis._getHistory();g[window.history.length-this._historyInitialLength=
+1]=3Da;this._setHistory(g);this._historyLength=3Dwindow.history.length+1=
;var =
b=3Ddocument.createElement("form");b.method=3D"get";b.action=3D"#"+a;docu=
ment.appendChild(b);b.submit();document.removeChild(b)}else =
window.location.hash=3Da;if(typeof =
c!=3D=3D"undefined"&&c!=3D=3Dnull)document.title=3Dc}}},_unloadHandler:fu=
nction(){this.dispose()},_updateHiddenField:function(b){if(this._clientId=
){var =
a=3Ddocument.getElementById(this._clientId);if(a)a.value=3Db}}};Sys._Appl=
ication.registerClass("Sys._Application",Sys.Component,Sys.IContainer);Sy=
s.Application=3Dnew Sys._Application;var =
$find=3DSys.Application.findComponent;Type.registerNamespace("Sys.Net");S=
ys.Net.WebRequestExecutor=3Dfunction(){this._webRequest=3Dnull;this._resu=
ltObject=3Dnull};Sys.Net.WebRequestExecutor.prototype=3D{get_webRequest:f=
unction(){return =
this._webRequest},_set_webRequest:function(a){this._webRequest=3Da},get_s=
tarted:function(){throw =
Error.notImplemented()},get_responseAvailable:function(){throw =
Error.notImplemented()},get_timedOut:function(){throw =
Error.notImplemented()},get_aborted:function(){throw =
Error.notImplemented()},get_responseData:function(){throw =
Error.notImplemented()},get_statusCode:function(){throw =
Error.notImplemented()},get_statusText:function(){throw =
Error.notImplemented()},get_xml:function(){throw =
Error.notImplemented()},get_object:function(){if(!this._resultObject)this=
._resultObject=3DSys.Serialization.JavaScriptSerializer.deserialize(this.=
get_responseData());return =
this._resultObject},executeRequest:function(){throw =
Error.notImplemented()},abort:function(){throw =
Error.notImplemented()},getResponseHeader:function(){throw =
Error.notImplemented()},getAllResponseHeaders:function(){throw =
Error.notImplemented()}};Sys.Net.WebRequestExecutor.registerClass("Sys.Ne=
t.WebRequestExecutor");Sys.Net.XMLDOM=3Dfunction(d){if(!window.DOMParser)=
{var c=3D["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument"];for(var =
b=3D0,f=3Dc.length;b<f;b++)try{var a=3Dnew =
ActiveXObject(c[b]);a.async=3Dfalse;a.loadXML(d);a.setProperty("Selection=
Language","XPath");return a}catch(g){}}else try{var e=3Dnew =
window.DOMParser;return e.parseFromString(d,"text/xml")}catch(g){}return =
null};Sys.Net.XMLHttpExecutor=3Dfunction(){Sys.Net.XMLHttpExecutor.initia=
lizeBase(this);var =
a=3Dthis;this._xmlHttpRequest=3Dnull;this._webRequest=3Dnull;this._respon=
seAvailable=3Dfalse;this._timedOut=3Dfalse;this._timer=3Dnull;this._abort=
ed=3Dfalse;this._started=3Dfalse;this._onReadyStateChange=3Dfunction(){if=
(a._xmlHttpRequest.readyState=3D=3D=3D4){try{if(typeof =
a._xmlHttpRequest.status=3D=3D=3D"undefined")return}catch(b){return}a._cl=
earTimer();a._responseAvailable=3Dtrue;try{a._webRequest.completed(Sys.Ev=
entArgs.Empty)}finally{if(a._xmlHttpRequest!=3Dnull){a._xmlHttpRequest.on=
readystatechange=3DFunction.emptyMethod;a._xmlHttpRequest=3Dnull}}}};this=
._clearTimer=3Dfunction(){if(a._timer!=3Dnull){window.clearTimeout(a._tim=
er);a._timer=3Dnull}};this._onTimeout=3Dfunction(){if(!a._responseAvailab=
le){a._clearTimer();a._timedOut=3Dtrue;a._xmlHttpRequest.onreadystatechan=
ge=3DFunction.emptyMethod;a._xmlHttpRequest.abort();a._webRequest.complet=
ed(Sys.EventArgs.Empty);a._xmlHttpRequest=3Dnull}}};Sys.Net.XMLHttpExecut=
or.prototype=3D{get_timedOut:function(){return =
this._timedOut},get_started:function(){return =
this._started},get_responseAvailable:function(){return =
this._responseAvailable},get_aborted:function(){return =
this._aborted},executeRequest:function(){this._webRequest=3Dthis.get_webR=
equest();var =
c=3Dthis._webRequest.get_body(),a=3Dthis._webRequest.get_headers();this._=
xmlHttpRequest=3Dnew =
XMLHttpRequest;this._xmlHttpRequest.onreadystatechange=3Dthis._onReadySta=
teChange;var =
e=3Dthis._webRequest.get_httpVerb();this._xmlHttpRequest.open(e,this._web=
Request.getResolvedUrl(),true);if(a)for(var b in a){var =
f=3Da[b];if(typeof =
f!=3D=3D"function")this._xmlHttpRequest.setRequestHeader(b,f)}if(e.toLowe=
rCase()=3D=3D=3D"post"){if(a=3D=3D=3Dnull||!a["Content-Type"])this._xmlHt=
tpRequest.setRequestHeader("Content-Type","application/x-www-form-urlenco=
ded; charset=3Dutf-8");if(!c)c=3D""}var =
d=3Dthis._webRequest.get_timeout();if(d>0)this._timer=3Dwindow.setTimeout=
(Function.createDelegate(this,this._onTimeout),d);this._xmlHttpRequest.se=
nd(c);this._started=3Dtrue},getResponseHeader:function(b){var =
a;try{a=3Dthis._xmlHttpRequest.getResponseHeader(b)}catch(c){}if(!a)a=3D"=
";return a},getAllResponseHeaders:function(){return =
this._xmlHttpRequest.getAllResponseHeaders()},get_responseData:function()=
{return this._xmlHttpRequest.responseText},get_statusCode:function(){var =
a=3D0;try{a=3Dthis._xmlHttpRequest.status}catch(b){}return =
a},get_statusText:function(){return =
this._xmlHttpRequest.statusText},get_xml:function(){var =
a=3Dthis._xmlHttpRequest.responseXML;if(!a||!a.documentElement){a=3DSys.N=
et.XMLDOM(this._xmlHttpRequest.responseText);if(!a||!a.documentElement)re=
turn null}else =
if(navigator.userAgent.indexOf("MSIE")!=3D=3D-1)a.setProperty("SelectionL=
anguage","XPath");if(a.documentElement.namespaceURI=3D=3D=3D"http://www.m=
ozilla.org/newlayout/xml/parsererror.xml"&&a.documentElement.tagName=3D=3D=
=3D"parsererror")return =
null;if(a.documentElement.firstChild&&a.documentElement.firstChild.tagNam=
e=3D=3D=3D"parsererror")return null;return =
a},abort:function(){if(this._aborted||this._responseAvailable||this._time=
dOut)return;this._aborted=3Dtrue;this._clearTimer();if(this._xmlHttpReque=
st&&!this._responseAvailable){this._xmlHttpRequest.onreadystatechange=3DF=
unction.emptyMethod;this._xmlHttpRequest.abort();this._xmlHttpRequest=3Dn=
ull;this._webRequest.completed(Sys.EventArgs.Empty)}}};Sys.Net.XMLHttpExe=
cutor.registerClass("Sys.Net.XMLHttpExecutor",Sys.Net.WebRequestExecutor)=
;Sys.Net._WebRequestManager=3Dfunction(){this._defaultTimeout=3D0;this._d=
efaultExecutorType=3D"Sys.Net.XMLHttpExecutor"};Sys.Net._WebRequestManage=
r.prototype=3D{add_invokingRequest:function(a){this._get_eventHandlerList=
().addHandler("invokingRequest",a)},remove_invokingRequest:function(a){th=
is._get_eventHandlerList().removeHandler("invokingRequest",a)},add_comple=
tedRequest:function(a){this._get_eventHandlerList().addHandler("completed=
Request",a)},remove_completedRequest:function(a){this._get_eventHandlerLi=
st().removeHandler("completedRequest",a)},_get_eventHandlerList:function(=
){if(!this._events)this._events=3Dnew Sys.EventHandlerList;return =
this._events},get_defaultTimeout:function(){return =
this._defaultTimeout},set_defaultTimeout:function(a){this._defaultTimeout=
=3Da},get_defaultExecutorType:function(){return =
this._defaultExecutorType},set_defaultExecutorType:function(a){this._defa=
ultExecutorType=3Da},executeRequest:function(webRequest){var =
executor=3DwebRequest.get_executor();if(!executor){var =
failed=3Dfalse;try{var =
executorType=3Deval(this._defaultExecutorType);executor=3Dnew =
executorType}catch(a){failed=3Dtrue}webRequest.set_executor(executor)}if(=
executor.get_aborted())return;var evArgs=3Dnew =
Sys.Net.NetworkRequestEventArgs(webRequest),handler=3Dthis._get_eventHand=
lerList().getHandler("invokingRequest");if(handler)handler(this,evArgs);i=
f(!evArgs.get_cancel())executor.executeRequest()}};Sys.Net._WebRequestMan=
ager.registerClass("Sys.Net._WebRequestManager");Sys.Net.WebRequestManage=
r=3Dnew =
Sys.Net._WebRequestManager;Sys.Net.NetworkRequestEventArgs=3Dfunction(a){=
Sys.Net.NetworkRequestEventArgs.initializeBase(this);this._webRequest=3Da=
};Sys.Net.NetworkRequestEventArgs.prototype=3D{get_webRequest:function(){=
return =
this._webRequest}};Sys.Net.NetworkRequestEventArgs.registerClass("Sys.Net=
.NetworkRequestEventArgs",Sys.CancelEventArgs);Sys.Net.WebRequest=3Dfunct=
ion(){this._url=3D"";this._headers=3D{};this._body=3Dnull;this._userConte=
xt=3Dnull;this._httpVerb=3Dnull;this._executor=3Dnull;this._invokeCalled=3D=
false;this._timeout=3D0};Sys.Net.WebRequest.prototype=3D{add_completed:fu=
nction(a){this._get_eventHandlerList().addHandler("completed",a)},remove_=
completed:function(a){this._get_eventHandlerList().removeHandler("complet=
ed",a)},completed:function(b){var =
a=3DSys.Net.WebRequestManager._get_eventHandlerList().getHandler("complet=
edRequest");if(a)a(this._executor,b);a=3Dthis._get_eventHandlerList().get=
Handler("completed");if(a)a(this._executor,b)},_get_eventHandlerList:func=
tion(){if(!this._events)this._events=3Dnew Sys.EventHandlerList;return =
this._events},get_url:function(){return =
this._url},set_url:function(a){this._url=3Da},get_headers:function(){retu=
rn =
this._headers},get_httpVerb:function(){if(this._httpVerb=3D=3D=3Dnull){if=
(this._body=3D=3D=3Dnull)return "GET";return "POST"}return =
this._httpVerb},set_httpVerb:function(a){this._httpVerb=3Da},get_body:fun=
ction(){return =
this._body},set_body:function(a){this._body=3Da},get_userContext:function=
(){return =
this._userContext},set_userContext:function(a){this._userContext=3Da},get=
_executor:function(){return =
this._executor},set_executor:function(a){this._executor=3Da;this._executo=
r._set_webRequest(this)},get_timeout:function(){if(this._timeout=3D=3D=3D=
0)return Sys.Net.WebRequestManager.get_defaultTimeout();return =
this._timeout},set_timeout:function(a){this._timeout=3Da},getResolvedUrl:=
function(){return =
Sys.Net.WebRequest._resolveUrl(this._url)},invoke:function(){Sys.Net.WebR=
equestManager.executeRequest(this);this._invokeCalled=3Dtrue}};Sys.Net.We=
bRequest._resolveUrl=3Dfunction(b,a){if(b&&b.indexOf("://")!=3D=3D-1)retu=
rn b;if(!a||a.length=3D=3D=3D0){var =
d=3Ddocument.getElementsByTagName("base")[0];if(d&&d.href&&d.href.length>=
0)a=3Dd.href;else a=3Ddocument.URL}var =
c=3Da.indexOf("?");if(c!=3D=3D-1)a=3Da.substr(0,c);c=3Da.indexOf("#");if(=
c!=3D=3D-1)a=3Da.substr(0,c);a=3Da.substr(0,a.lastIndexOf("/")+1);if(!b||=
b.length=3D=3D=3D0)return a;if(b.charAt(0)=3D=3D=3D"/"){var =
e=3Da.indexOf("://"),g=3Da.indexOf("/",e+3);return =
a.substr(0,g)+b}else{var f=3Da.lastIndexOf("/");return =
a.substr(0,f+1)+b}};Sys.Net.WebRequest._createQueryString=3Dfunction(d,b)=
{if(!b)b=3DencodeURIComponent;var a=3Dnew =
Sys.StringBuilder,f=3D0;for(var c in d){var e=3Dd[c];if(typeof =
e=3D=3D=3D"function")continue;var =
g=3DSys.Serialization.JavaScriptSerializer.serialize(e);if(f!=3D=3D0)a.ap=
pend("&");a.append(c);a.append("=3D");a.append(b(g));f++}return =
a.toString()};Sys.Net.WebRequest._createUrl=3Dfunction(a,b){if(!b)return =
a;var d=3DSys.Net.WebRequest._createQueryString(b);if(d.length>0){var =
c=3D"?";if(a&&a.indexOf("?")!=3D=3D-1)c=3D"&";return a+c+d}else return =
a};Sys.Net.WebRequest.registerClass("Sys.Net.WebRequest");Sys.Net.WebServ=
iceProxy=3Dfunction(){};Sys.Net.WebServiceProxy.prototype=3D{get_timeout:=
function(){return this._timeout},set_timeout:function(a){if(a<0)throw =
Error.argumentOutOfRange("value",a,Sys.Res.invalidTimeout);this._timeout=3D=
a},get_defaultUserContext:function(){return =
this._userContext},set_defaultUserContext:function(a){this._userContext=3D=
a},get_defaultSucceededCallback:function(){return =
this._succeeded},set_defaultSucceededCallback:function(a){this._succeeded=
=3Da},get_defaultFailedCallback:function(){return =
this._failed},set_defaultFailedCallback:function(a){this._failed=3Da},get=
_path:function(){return =
this._path},set_path:function(a){this._path=3Da},_invoke:function(d,e,g,f=
,c,b,a){if(c=3D=3D=3Dnull||typeof =
c=3D=3D=3D"undefined")c=3Dthis.get_defaultSucceededCallback();if(b=3D=3D=3D=
null||typeof =
b=3D=3D=3D"undefined")b=3Dthis.get_defaultFailedCallback();if(a=3D=3D=3Dn=
ull||typeof =
a=3D=3D=3D"undefined")a=3Dthis.get_defaultUserContext();return =
Sys.Net.WebServiceProxy.invoke(d,e,g,f,c,b,a,this.get_timeout())}};Sys.Ne=
t.WebServiceProxy.registerClass("Sys.Net.WebServiceProxy");Sys.Net.WebSer=
viceProxy.invoke=3Dfunction(k,a,j,d,i,c,f,h){var b=3Dnew =
Sys.Net.WebRequest;b.get_headers()["Content-Type"]=3D"application/json; =
charset=3Dutf-8";if(!d)d=3D{};var =
g=3Dd;if(!j||!g)g=3D{};b.set_url(Sys.Net.WebRequest._createUrl(k+"/"+enco=
deURIComponent(a),g));var =
e=3Dnull;if(!j){e=3DSys.Serialization.JavaScriptSerializer.serialize(d);i=
f(e=3D=3D=3D"{}")e=3D""}b.set_body(e);b.add_completed(l);if(h&&h>0)b.set_=
timeout(h);b.invoke();function l(d){if(d.get_responseAvailable()){var =
g=3Dd.get_statusCode(),b=3Dnull;try{var =
e=3Dd.getResponseHeader("Content-Type");if(e.startsWith("application/json=
"))b=3Dd.get_object();else =
if(e.startsWith("text/xml"))b=3Dd.get_xml();else =
b=3Dd.get_responseData()}catch(m){}var =
k=3Dd.getResponseHeader("jsonerror"),h=3Dk=3D=3D=3D"true";if(h){if(b)b=3D=
new =
Sys.Net.WebServiceError(false,b.Message,b.StackTrace,b.ExceptionType)}els=
e =
if(e.startsWith("application/json"))b=3Db.d;if(g<200||g>=3D300||h){if(c){=
if(!b||!h)b=3Dnew =
Sys.Net.WebServiceError(false,String.format(Sys.Res.webServiceFailedNoMsg=
,a),"","");b._statusCode=3Dg;c(b,f,a)}}else if(i)i(b,f,a)}else{var =
j;if(d.get_timedOut())j=3DString.format(Sys.Res.webServiceTimedOut,a);els=
e j=3DString.format(Sys.Res.webServiceFailedNoMsg,a);if(c)c(new =
Sys.Net.WebServiceError(d.get_timedOut(),j,"",""),f,a)}}return =
b};Sys.Net.WebServiceProxy._generateTypedConstructor=3Dfunction(a){return=
 function(b){if(b)for(var c in =
b)this[c]=3Db[c];this.__type=3Da}};Sys.Net.WebServiceError=3Dfunction(c,d=
,b,a){this._timedOut=3Dc;this._message=3Dd;this._stackTrace=3Db;this._exc=
eptionType=3Da;this._statusCode=3D-1};Sys.Net.WebServiceError.prototype=3D=
{get_timedOut:function(){return =
this._timedOut},get_statusCode:function(){return =
this._statusCode},get_message:function(){return =
this._message},get_stackTrace:function(){return =
this._stackTrace},get_exceptionType:function(){return =
this._exceptionType}};Sys.Net.WebServiceError.registerClass("Sys.Net.WebS=
erviceError");Type.registerNamespace("Sys.Services");Sys.Services._Profil=
eService=3Dfunction(){Sys.Services._ProfileService.initializeBase(this);t=
his.properties=3D{}};Sys.Services._ProfileService.DefaultWebServicePath=3D=
"";Sys.Services._ProfileService.prototype=3D{_defaultLoadCompletedCallbac=
k:null,_defaultSaveCompletedCallback:null,_path:"",_timeout:0,get_default=
LoadCompletedCallback:function(){return =
this._defaultLoadCompletedCallback},set_defaultLoadCompletedCallback:func=
tion(a){this._defaultLoadCompletedCallback=3Da},get_defaultSaveCompletedC=
allback:function(){return =
this._defaultSaveCompletedCallback},set_defaultSaveCompletedCallback:func=
tion(a){this._defaultSaveCompletedCallback=3Da},get_path:function(){retur=
n this._path||""},load:function(c,d,e,f){var =
b,a;if(!c){a=3D"GetAllPropertiesForCurrentUser";b=3D{authenticatedUserOnl=
y:false}}else{a=3D"GetPropertiesForCurrentUser";b=3D{properties:this._clo=
nePropertyNames(c),authenticatedUserOnly:false}}this._invoke(this._get_pa=
th(),a,false,b,Function.createDelegate(this,this._onLoadComplete),Functio=
n.createDelegate(this,this._onLoadFailed),[d,e,f])},save:function(d,b,c,e=
){var =
a=3Dthis._flattenProperties(d,this.properties);this._invoke(this._get_pat=
h(),"SetPropertiesForCurrentUser",false,{values:a.value,authenticatedUser=
Only:false},Function.createDelegate(this,this._onSaveComplete),Function.c=
reateDelegate(this,this._onSaveFailed),[b,c,e,a.count])},_clonePropertyNa=
mes:function(e){var c=3D[],d=3D{};for(var b=3D0;b<e.length;b++){var =
a=3De[b];if(!d[a]){Array.add(c,a);d[a]=3Dtrue}}return =
c},_flattenProperties:function(a,i,j){var =
b=3D{},e,d,g=3D0;if(a&&a.length=3D=3D=3D0)return =
{value:b,count:0};for(var c in =
i){e=3Di[c];d=3Dj?j+"."+c:c;if(Sys.Services.ProfileGroup.isInstanceOfType=
(e)){var =
k=3Dthis._flattenProperties(a,e,d),h=3Dk.value;g+=3Dk.count;for(var f in =
h){var l=3Dh[f];b[f]=3Dl}}else =
if(!a||Array.indexOf(a,d)!=3D=3D-1){b[d]=3De;g++}}return =
{value:b,count:g}},_get_path:function(){var =
a=3Dthis.get_path();if(!a.length)a=3DSys.Services._ProfileService.Default=
WebServicePath;if(!a||!a.length)throw =
Error.invalidOperation(Sys.Res.servicePathNotSet);return =
a},_onLoadComplete:function(a,e,g){if(typeof a!=3D=3D"object")throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
g,"Object"));var c=3Dthis._unflattenProperties(a);for(var b in =
c)this.properties[b]=3Dc[b];var =
d=3De[0]||this.get_defaultLoadCompletedCallback()||this.get_defaultSuccee=
dedCallback();if(d){var =
f=3De[2]||this.get_defaultUserContext();d(a.length,f,"Sys.Services.Profil=
eService.load")}},_onLoadFailed:function(d,b){var =
a=3Db[1]||this.get_defaultFailedCallback();if(a){var =
c=3Db[2]||this.get_defaultUserContext();a(d,c,"Sys.Services.ProfileServic=
e.load")}},_onSaveComplete:function(a,b,f){var =
c=3Db[3];if(a!=3D=3Dnull)if(a instanceof Array)c-=3Da.length;else =
if(typeof a=3D=3D=3D"number")c=3Da;else throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
f,"Array"));var =
d=3Db[0]||this.get_defaultSaveCompletedCallback()||this.get_defaultSuccee=
dedCallback();if(d){var =
e=3Db[2]||this.get_defaultUserContext();d(c,e,"Sys.Services.ProfileServic=
e.save")}},_onSaveFailed:function(d,b){var =
a=3Db[1]||this.get_defaultFailedCallback();if(a){var =
c=3Db[2]||this.get_defaultUserContext();a(d,c,"Sys.Services.ProfileServic=
e.save")}},_unflattenProperties:function(e){var c=3D{},d,f,h=3D0;for(var =
a in e){h++;f=3De[a];d=3Da.indexOf(".");if(d!=3D=3D-1){var =
g=3Da.substr(0,d);a=3Da.substr(d+1);var =
b=3Dc[g];if(!b||!Sys.Services.ProfileGroup.isInstanceOfType(b)){b=3Dnew =
Sys.Services.ProfileGroup;c[g]=3Db}b[a]=3Df}else =
c[a]=3Df}e.length=3Dh;return =
c}};Sys.Services._ProfileService.registerClass("Sys.Services._ProfileServ=
ice",Sys.Net.WebServiceProxy);Sys.Services.ProfileService=3Dnew =
Sys.Services._ProfileService;Sys.Services.ProfileGroup=3Dfunction(a){if(a=
)for(var b in =
a)this[b]=3Da[b]};Sys.Services.ProfileGroup.registerClass("Sys.Services.P=
rofileGroup");Sys.Services._AuthenticationService=3Dfunction(){Sys.Servic=
es._AuthenticationService.initializeBase(this)};Sys.Services._Authenticat=
ionService.DefaultWebServicePath=3D"";Sys.Services._AuthenticationService=
.prototype=3D{_defaultLoginCompletedCallback:null,_defaultLogoutCompleted=
Callback:null,_path:"",_timeout:0,_authenticated:false,get_defaultLoginCo=
mpletedCallback:function(){return =
this._defaultLoginCompletedCallback},set_defaultLoginCompletedCallback:fu=
nction(a){this._defaultLoginCompletedCallback=3Da},get_defaultLogoutCompl=
etedCallback:function(){return =
this._defaultLogoutCompletedCallback},set_defaultLogoutCompletedCallback:=
function(a){this._defaultLogoutCompletedCallback=3Da},get_isLoggedIn:func=
tion(){return this._authenticated},get_path:function(){return =
this._path||""},login:function(c,b,a,h,f,d,e,g){this._invoke(this._get_pa=
th(),"Login",false,{userName:c,password:b,createPersistentCookie:a},Funct=
ion.createDelegate(this,this._onLoginComplete),Function.createDelegate(th=
is,this._onLoginFailed),[c,b,a,h,f,d,e,g])},logout:function(c,a,b,d){this=
._invoke(this._get_path(),"Logout",false,{},Function.createDelegate(this,=
this._onLogoutComplete),Function.createDelegate(this,this._onLogoutFailed=
),[c,a,b,d])},_get_path:function(){var =
a=3Dthis.get_path();if(!a.length)a=3DSys.Services._AuthenticationService.=
DefaultWebServicePath;if(!a||!a.length)throw =
Error.invalidOperation(Sys.Res.servicePathNotSet);return =
a},_onLoginComplete:function(e,c,f){if(typeof e!=3D=3D"boolean")throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
f,"Boolean"));var =
b=3Dc[4],d=3Dc[7]||this.get_defaultUserContext(),a=3Dc[5]||this.get_defau=
ltLoginCompletedCallback()||this.get_defaultSucceededCallback();if(e){thi=
s._authenticated=3Dtrue;if(a)a(true,d,"Sys.Services.AuthenticationService=
.login");if(typeof =
b!=3D=3D"undefined"&&b!=3D=3Dnull)window.location.href=3Db}else =
if(a)a(false,d,"Sys.Services.AuthenticationService.login")},_onLoginFaile=
d:function(d,b){var a=3Db[6]||this.get_defaultFailedCallback();if(a){var =
c=3Db[7]||this.get_defaultUserContext();a(d,c,"Sys.Services.Authenticatio=
nService.login")}},_onLogoutComplete:function(f,a,e){if(f!=3D=3Dnull)thro=
w =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
e,"null"));var =
b=3Da[0],d=3Da[3]||this.get_defaultUserContext(),c=3Da[1]||this.get_defau=
ltLogoutCompletedCallback()||this.get_defaultSucceededCallback();this._au=
thenticated=3Dfalse;if(c)c(null,d,"Sys.Services.AuthenticationService.log=
out");if(!b)window.location.reload();else =
window.location.href=3Db},_onLogoutFailed:function(c,b){var =
a=3Db[2]||this.get_defaultFailedCallback();if(a)a(c,b[3],"Sys.Services.Au=
thenticationService.logout")},_setAuthenticated:function(a){this._authent=
icated=3Da}};Sys.Services._AuthenticationService.registerClass("Sys.Servi=
ces._AuthenticationService",Sys.Net.WebServiceProxy);Sys.Services.Authent=
icationService=3Dnew =
Sys.Services._AuthenticationService;Sys.Services._RoleService=3Dfunction(=
){Sys.Services._RoleService.initializeBase(this);this._roles=3D[]};Sys.Se=
rvices._RoleService.DefaultWebServicePath=3D"";Sys.Services._RoleService.=
prototype=3D{_defaultLoadCompletedCallback:null,_rolesIndex:null,_timeout=
:0,_path:"",get_defaultLoadCompletedCallback:function(){return =
this._defaultLoadCompletedCallback},set_defaultLoadCompletedCallback:func=
tion(a){this._defaultLoadCompletedCallback=3Da},get_path:function(){retur=
n this._path||""},get_roles:function(){return =
Array.clone(this._roles)},isUserInRole:function(a){var =
b=3Dthis._get_rolesIndex()[a.trim().toLowerCase()];return =
!!b},load:function(a,b,c){Sys.Net.WebServiceProxy.invoke(this._get_path()=
,"GetRolesForCurrentUser",false,{},Function.createDelegate(this,this._onL=
oadComplete),Function.createDelegate(this,this._onLoadFailed),[a,b,c],thi=
s.get_timeout())},_get_path:function(){var =
a=3Dthis.get_path();if(!a||!a.length)a=3DSys.Services._RoleService.Defaul=
tWebServicePath;if(!a||!a.length)throw =
Error.invalidOperation(Sys.Res.servicePathNotSet);return =
a},_get_rolesIndex:function(){if(!this._rolesIndex){var b=3D{};for(var =
a=3D0;a<this._roles.length;a++)b[this._roles[a].toLowerCase()]=3Dtrue;thi=
s._rolesIndex=3Db}return =
this._rolesIndex},_onLoadComplete:function(a,c,f){if(a&&!(a instanceof =
Array))throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
f,"Array"));this._roles=3Da;this._rolesIndex=3Dnull;var =
b=3Dc[0]||this.get_defaultLoadCompletedCallback()||this.get_defaultSuccee=
dedCallback();if(b){var =
e=3Dc[2]||this.get_defaultUserContext(),d=3DArray.clone(a);b(d,e,"Sys.Ser=
vices.RoleService.load")}},_onLoadFailed:function(d,b){var =
a=3Db[1]||this.get_defaultFailedCallback();if(a){var =
c=3Db[2]||this.get_defaultUserContext();a(d,c,"Sys.Services.RoleService.l=
oad")}}};Sys.Services._RoleService.registerClass("Sys.Services._RoleServi=
ce",Sys.Net.WebServiceProxy);Sys.Services.RoleService=3Dnew =
Sys.Services._RoleService;Type.registerNamespace("Sys.Serialization");Sys=
.Serialization.JavaScriptSerializer=3Dfunction(){};Sys.Serialization.Java=
ScriptSerializer.registerClass("Sys.Serialization.JavaScriptSerializer");=
Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs=3D[];Sys.Seri=
alization.JavaScriptSerializer._charsToEscape=3D[];Sys.Serialization.Java=
ScriptSerializer._dateRegEx=3Dnew =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"',"g");Sys.Serialization.JavaScriptSerializer._escapeChars=3D=
{};Sys.Serialization.JavaScriptSerializer._escapeRegEx=3Dnew =
RegExp('["\\\\\\x00-\\x1F]',"i");Sys.Serialization.JavaScriptSerializer._=
escapeRegExGlobal=3Dnew =
RegExp('["\\\\\\x00-\\x1F]',"g");Sys.Serialization.JavaScriptSerializer._=
jsonRegEx=3Dnew RegExp("[^,:{}\\[\\]0-9.\\-+Eaeflnr-u =
\\n\\r\\t]","g");Sys.Serialization.JavaScriptSerializer._jsonStringRegEx=3D=
new =
RegExp('"(\\\\.|[^"\\\\])*"',"g");Sys.Serialization.JavaScriptSerializer.=
_serverTypeFieldName=3D"__type";Sys.Serialization.JavaScriptSerializer._i=
nit=3Dfunction(){var =
c=3D["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006=
","\\u0007","\\b","\\t","\\n","\\u000b","\\f","\\r","\\u000e","\\u000f","=
\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u=
0017","\\u0018","\\u0019","\\u001a","\\u001b","\\u001c","\\u001d","\\u001=
e","\\u001f"];Sys.Serialization.JavaScriptSerializer._charsToEscape[0]=3D=
"\\";Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs["\\"]=3D=
new =
RegExp("\\\\","g");Sys.Serialization.JavaScriptSerializer._escapeChars["\=
\"]=3D"\\\\";Sys.Serialization.JavaScriptSerializer._charsToEscape[1]=3D'=
"';Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"']=3Dnew=
 =
RegExp('"',"g");Sys.Serialization.JavaScriptSerializer._escapeChars['"']=3D=
'\\"';for(var a=3D0;a<32;a++){var =
b=3DString.fromCharCode(a);Sys.Serialization.JavaScriptSerializer._charsT=
oEscape[a+2]=3Db;Sys.Serialization.JavaScriptSerializer._charsToEscapeReg=
Exs[b]=3Dnew =
RegExp(b,"g");Sys.Serialization.JavaScriptSerializer._escapeChars[b]=3Dc[=
a]}};Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder=3D=
function(b,a){a.append(b.toString())};Sys.Serialization.JavaScriptSeriali=
zer._serializeNumberWithBuilder=3Dfunction(a,b){if(isFinite(a))b.append(S=
tring(a));else throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers)};Sys.Seri=
alization.JavaScriptSerializer._serializeStringWithBuilder=3Dfunction(a,c=
){c.append('"');if(Sys.Serialization.JavaScriptSerializer._escapeRegEx.te=
st(a)){if(Sys.Serialization.JavaScriptSerializer._charsToEscape.length=3D=
=3D=3D0)Sys.Serialization.JavaScriptSerializer._init();if(a.length<128)a=3D=
a.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,funct=
ion(a){return =
Sys.Serialization.JavaScriptSerializer._escapeChars[a]});else for(var =
d=3D0;d<34;d++){var =
b=3DSys.Serialization.JavaScriptSerializer._charsToEscape[d];if(a.indexOf=
(b)!=3D=3D-1)if(Sys.Browser.agent=3D=3D=3DSys.Browser.Opera||Sys.Browser.=
agent=3D=3D=3DSys.Browser.FireFox)a=3Da.split(b).join(Sys.Serialization.J=
avaScriptSerializer._escapeChars[b]);else =
a=3Da.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs=
[b],Sys.Serialization.JavaScriptSerializer._escapeChars[b])}}c.append(a);=
c.append('"')};Sys.Serialization.JavaScriptSerializer._serializeWithBuild=
er=3Dfunction(b,a,i,g){var c;switch(typeof b){case =
"object":if(b)if(Number.isInstanceOfType(b))Sys.Serialization.JavaScriptS=
erializer._serializeNumberWithBuilder(b,a);else =
if(Boolean.isInstanceOfType(b))Sys.Serialization.JavaScriptSerializer._se=
rializeBooleanWithBuilder(b,a);else =
if(String.isInstanceOfType(b))Sys.Serialization.JavaScriptSerializer._ser=
ializeStringWithBuilder(b,a);else =
if(Array.isInstanceOfType(b)){a.append("[");for(c=3D0;c<b.length;++c){if(=
c>0)a.append(",");Sys.Serialization.JavaScriptSerializer._serializeWithBu=
ilder(b[c],a,false,g)}a.append("]")}else{if(Date.isInstanceOfType(b)){a.a=
ppend('"\\/Date(');a.append(b.getTime());a.append(')\\/"');break}var =
d=3D[],f=3D0;for(var e in =
b){if(e.startsWith("$"))continue;if(e=3D=3D=3DSys.Serialization.JavaScrip=
tSerializer._serverTypeFieldName&&f!=3D=3D0){d[f++]=3Dd[0];d[0]=3De}else =
d[f++]=3De}if(i)d.sort();a.append("{");var =
j=3Dfalse;for(c=3D0;c<f;c++){var h=3Db[d[c]];if(typeof =
h!=3D=3D"undefined"&&typeof h!=3D=3D"function"){if(j)a.append(",");else =
j=3Dtrue;Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(d[c=
],a,i,g);a.append(":");Sys.Serialization.JavaScriptSerializer._serializeW=
ithBuilder(h,a,i,g)}}a.append("}")}else a.append("null");break;case =
"number":Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuild=
er(b,a);break;case =
"string":Sys.Serialization.JavaScriptSerializer._serializeStringWithBuild=
er(b,a);break;case =
"boolean":Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBui=
lder(b,a);break;default:a.append("null")}};Sys.Serialization.JavaScriptSe=
rializer.serialize=3Dfunction(b){var a=3Dnew =
Sys.StringBuilder;Sys.Serialization.JavaScriptSerializer._serializeWithBu=
ilder(b,a,false);return =
a.toString()};Sys.Serialization.JavaScriptSerializer.deserialize=3Dfuncti=
on(data,secure){if(data.length=3D=3D=3D0)throw =
Error.argument("data",Sys.Res.cannotDeserializeEmptyString);try{var =
exp=3Ddata.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx,"$1n=
ew =
Date($2)");if(secure&&Sys.Serialization.JavaScriptSerializer._jsonRegEx.t=
est(exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx,"=
")))throw null;return eval("("+exp+")")}catch(a){throw =
Error.argument("data",Sys.Res.cannotDeserializeInvalidJson)}};Sys.Culture=
Info=3Dfunction(c,b,a){this.name=3Dc;this.numberFormat=3Db;this.dateTimeF=
ormat=3Da};Sys.CultureInfo.prototype=3D{_getDateTimeFormats:function(){if=
(!this._dateTimeFormats){var =
a=3Dthis.dateTimeFormat;this._dateTimeFormats=3D[a.MonthDayPattern,a.Year=
MonthPattern,a.ShortDatePattern,a.ShortTimePattern,a.LongDatePattern,a.Lo=
ngTimePattern,a.FullDateTimePattern,a.RFC1123Pattern,a.SortableDateTimePa=
ttern,a.UniversalSortableDateTimePattern]}return =
this._dateTimeFormats},_getMonthIndex:function(a){if(!this._upperMonths)t=
his._upperMonths=3Dthis._toUpperArray(this.dateTimeFormat.MonthNames);ret=
urn =
Array.indexOf(this._upperMonths,this._toUpper(a))},_getAbbrMonthIndex:fun=
ction(a){if(!this._upperAbbrMonths)this._upperAbbrMonths=3Dthis._toUpperA=
rray(this.dateTimeFormat.AbbreviatedMonthNames);return =
Array.indexOf(this._upperAbbrMonths,this._toUpper(a))},_getDayIndex:funct=
ion(a){if(!this._upperDays)this._upperDays=3Dthis._toUpperArray(this.date=
TimeFormat.DayNames);return =
Array.indexOf(this._upperDays,this._toUpper(a))},_getAbbrDayIndex:functio=
n(a){if(!this._upperAbbrDays)this._upperAbbrDays=3Dthis._toUpperArray(thi=
s.dateTimeFormat.AbbreviatedDayNames);return =
Array.indexOf(this._upperAbbrDays,this._toUpper(a))},_toUpperArray:functi=
on(c){var b=3D[];for(var =
a=3D0,d=3Dc.length;a<d;a++)b[a]=3Dthis._toUpper(c[a]);return =
b},_toUpper:function(a){return a.split("\u00a0").join(" =
").toUpperCase()}};Sys.CultureInfo._parse=3Dfunction(b){var =
a=3DSys.Serialization.JavaScriptSerializer.deserialize(b);return new =
Sys.CultureInfo(a.name,a.numberFormat,a.dateTimeFormat)};Sys.CultureInfo.=
registerClass("Sys.CultureInfo");Sys.CultureInfo.InvariantCulture=3DSys.C=
ultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"=
CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],=
"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":"=
,","CurrencySymbol":"\u00a4","NaNSymbol":"NaN","CurrencyNegativePattern":=
0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePa=
ttern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberD=
ecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","=
CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveS=
ign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentG=
roupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeD=
igits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"=
dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"=
@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmT=
ype":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":tr=
ue},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDate=
TimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd =
MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":true,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}');if(typeof =
__cultureInfo=3D=3D=3D"undefined")var =
__cultureInfo=3D'{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":=
2,"CurrencyDecimalSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":=
[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparato=
r":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0=
,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePat=
tern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDe=
cimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","C=
urrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSi=
gn":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGr=
oupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDi=
gits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"d=
ateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@=
-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmTy=
pe":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":fal=
se},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDate=
TimePattern":"dddd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, =
MMMM dd, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm =
tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","=
TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd=
 HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, =
yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":false,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}';Sys.CultureInfo.CurrentCulture=3DS=
ys.CultureInfo._parse(__cultureInfo);delete =
__cultureInfo;Sys.UI.Behavior=3Dfunction(b){Sys.UI.Behavior.initializeBas=
e(this);this._element=3Db;var =
a=3Db._behaviors;if(!a)b._behaviors=3D[this];else =
a[a.length]=3Dthis};Sys.UI.Behavior.prototype=3D{_name:null,get_element:f=
unction(){return this._element},get_id:function(){var =
a=3DSys.UI.Behavior.callBaseMethod(this,"get_id");if(a)return =
a;if(!this._element||!this._element.id)return "";return =
this._element.id+"$"+this.get_name()},get_name:function(){if(this._name)r=
eturn this._name;var =
a=3DObject.getTypeName(this),b=3Da.lastIndexOf(".");if(b!=3D-1)a=3Da.subs=
tr(b+1);if(!this.get_isInitialized())this._name=3Da;return =
a},set_name:function(a){this._name=3Da},initialize:function(){Sys.UI.Beha=
vior.callBaseMethod(this,"initialize");var =
a=3Dthis.get_name();if(a)this._element[a]=3Dthis},dispose:function(){Sys.=
UI.Behavior.callBaseMethod(this,"dispose");if(this._element){var =
a=3Dthis.get_name();if(a)this._element[a]=3Dnull;Array.remove(this._eleme=
nt._behaviors,this);delete =
this._element}}};Sys.UI.Behavior.registerClass("Sys.UI.Behavior",Sys.Comp=
onent);Sys.UI.Behavior.getBehaviorByName=3Dfunction(b,c){var =
a=3Db[c];return =
a&&Sys.UI.Behavior.isInstanceOfType(a)?a:null};Sys.UI.Behavior.getBehavio=
rs=3Dfunction(a){if(!a._behaviors)return [];return =
Array.clone(a._behaviors)};Sys.UI.Behavior.getBehaviorsByType=3Dfunction(=
d,e){var a=3Dd._behaviors,c=3D[];if(a)for(var =
b=3D0,f=3Da.length;b<f;b++)if(e.isInstanceOfType(a[b]))c[c.length]=3Da[b]=
;return c};Sys.UI.VisibilityMode=3Dfunction(){throw =
Error.notImplemented()};Sys.UI.VisibilityMode.prototype=3D{hide:0,collaps=
e:1};Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");Sys.UI.C=
ontrol=3Dfunction(a){Sys.UI.Control.initializeBase(this);this._element=3D=
a;a.control=3Dthis};Sys.UI.Control.prototype=3D{_parent:null,_visibilityM=
ode:Sys.UI.VisibilityMode.hide,get_element:function(){return =
this._element},get_id:function(){if(!this._element)return "";return =
this._element.id},set_id:function(){throw =
Error.invalidOperation(Sys.Res.cantSetId)},get_parent:function(){if(this.=
_parent)return this._parent;if(!this._element)return null;var =
a=3Dthis._element.parentNode;while(a){if(a.control)return =
a.control;a=3Da.parentNode}return =
null},set_parent:function(a){this._parent=3Da},get_visibilityMode:functio=
n(){return =
Sys.UI.DomElement.getVisibilityMode(this._element)},set_visibilityMode:fu=
nction(a){Sys.UI.DomElement.setVisibilityMode(this._element,a)},get_visib=
le:function(){return =
Sys.UI.DomElement.getVisible(this._element)},set_visible:function(a){Sys.=
UI.DomElement.setVisible(this._element,a)},addCssClass:function(a){Sys.UI=
.DomElement.addCssClass(this._element,a)},dispose:function(){Sys.UI.Contr=
ol.callBaseMethod(this,"dispose");if(this._element){this._element.control=
=3Dundefined;delete this._element}if(this._parent)delete =
this._parent},onBubbleEvent:function(){return =
false},raiseBubbleEvent:function(b,c){var =
a=3Dthis.get_parent();while(a){if(a.onBubbleEvent(b,c))return;a=3Da.get_p=
arent()}},removeCssClass:function(a){Sys.UI.DomElement.removeCssClass(thi=
s._element,a)},toggleCssClass:function(a){Sys.UI.DomElement.toggleCssClas=
s(this._element,a)}};Sys.UI.Control.registerClass("Sys.UI.Control",Sys.Co=
mponent);
Type.registerNamespace('Sys');Sys.Res=3D{"argumentInteger":"Value must =
be an integer.","scriptLoadMultipleCallbacks":"The script =
\u0027{0}\u0027 contains multiple calls to =
Sys.Application.notifyScriptLoaded(). Only one is =
allowed.","invokeCalledTwice":"Cannot call invoke more than =
once.","webServiceFailed":"The server method \u0027{0}\u0027 failed with =
the following error: {1}","webServiceInvalidJsonWrapper":"The server =
method \u0027{0}\u0027 returned invalid data. The \u0027d\u0027 property =
is missing from the JSON wrapper.","argumentType":"Object cannot be =
converted to the required type.","argumentNull":"Value cannot be =
null.","controlCantSetId":"The id property can\u0027t be set on a =
control.","formatBadFormatSpecifier":"Format specifier was =
invalid.","webServiceFailedNoMsg":"The server method \u0027{0}\u0027 =
failed.","argumentDomElement":"Value must be a DOM =
element.","invalidExecutorType":"Could not create a valid =
Sys.Net.WebRequestExecutor from: =
{0}.","cannotCallBeforeResponse":"Cannot call {0} when responseAvailable =
is false.","actualValue":"Actual value was =
{0}.","enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum =
{1}.","scriptLoadFailed":"The script \u0027{0}\u0027 could not be =
loaded.","parameterCount":"Parameter count =
mismatch.","cannotDeserializeEmptyString":"Cannot deserialize empty =
string.","formatInvalidString":"Input string was not in a correct =
format.","invalidTimeout":"Value must be greater than or equal to =
zero.","cannotAbortBeforeStart":"Cannot abort when executor has not =
started.","argument":"Value does not fall within the expected =
range.","cannotDeserializeInvalidJson":"Cannot deserialize. The data =
does not correspond to valid JSON.","invalidHttpVerb":"httpVerb cannot =
be set to an empty or null string.","nullWebRequest":"Cannot call =
executeRequest with a null webRequest.","eventHandlerInvalid":"Handler =
was not added through the Sys.UI.DomEvent.addHandler =
method.","cannotSerializeNonFiniteNumbers":"Cannot serialize non finite =
numbers.","argumentUndefined":"Value cannot be =
undefined.","webServiceInvalidReturnType":"The server method =
\u0027{0}\u0027 returned an invalid type. Expected type: =
{1}","servicePathNotSet":"The path to the web service has not been =
set.","argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be =
converted to type \u0027{1}\u0027.","cannotCallOnceStarted":"Cannot call =
{0} once started.","badBaseUrl1":"Base URL does not contain =
://.","badBaseUrl2":"Base URL does not contain another =
/.","badBaseUrl3":"Cannot find last / in base =
URL.","setExecutorAfterActive":"Cannot set executor after it has become =
active.","paramName":"Parameter name: =
{0}","cannotCallOutsideHandler":"Cannot call {0} outside of a completed =
event handler.","cannotSerializeObjectWithCycle":"Cannot serialize =
object with cyclic reference within child properties.","format":"One of =
the identified items was in an invalid =
format.","assertFailedCaller":"Assertion Failed: {0}\r\nat =
{1}","argumentOutOfRange":"Specified argument was out of the range of =
valid values.","webServiceTimedOut":"The server method \u0027{0}\u0027 =
timed out.","notImplemented":"The method or operation is not =
implemented.","assertFailed":"Assertion Failed: =
{0}","invalidOperation":"Operation is not valid due to the current state =
of the object.","breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?"};
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0062_01C98091.81EF0BB0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.screencast.com/ScriptResource.axd?d=lytlZa58igFjHJtKh8IIxPWJHrBsLjgyzb-O6ee1HJlcVI1893Hoa4ktnKpegNMJvc_v3R6vnVsny2s0GD9_oQBw1DAvlLsv8PSjfjX0hR81&t=653e2dd0

=EF=BB=BF//----------------------------------------------------------
// Copyright (C) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------
// MicrosoftAjaxWebForms.js
Type.registerNamespace("Sys.WebForms");Sys.WebForms.BeginRequestEventArgs=
=3Dfunction(b,a){Sys.WebForms.BeginRequestEventArgs.initializeBase(this);=
this._request=3Db;this._postBackElement=3Da};Sys.WebForms.BeginRequestEve=
ntArgs.prototype=3D{get_postBackElement:function(){return =
this._postBackElement},get_request:function(){return =
this._request}};Sys.WebForms.BeginRequestEventArgs.registerClass("Sys.Web=
Forms.BeginRequestEventArgs",Sys.EventArgs);Sys.WebForms.EndRequestEventA=
rgs=3Dfunction(c,a,b){Sys.WebForms.EndRequestEventArgs.initializeBase(thi=
s);this._errorHandled=3Dfalse;this._error=3Dc;this._dataItems=3Da||{};thi=
s._response=3Db};Sys.WebForms.EndRequestEventArgs.prototype=3D{get_dataIt=
ems:function(){return this._dataItems},get_error:function(){return =
this._error},get_errorHandled:function(){return =
this._errorHandled},set_errorHandled:function(a){this._errorHandled=3Da},=
get_response:function(){return =
this._response}};Sys.WebForms.EndRequestEventArgs.registerClass("Sys.WebF=
orms.EndRequestEventArgs",Sys.EventArgs);Sys.WebForms.InitializeRequestEv=
entArgs=3Dfunction(b,a){Sys.WebForms.InitializeRequestEventArgs.initializ=
eBase(this);this._request=3Db;this._postBackElement=3Da};Sys.WebForms.Ini=
tializeRequestEventArgs.prototype=3D{get_postBackElement:function(){retur=
n this._postBackElement},get_request:function(){return =
this._request}};Sys.WebForms.InitializeRequestEventArgs.registerClass("Sy=
s.WebForms.InitializeRequestEventArgs",Sys.CancelEventArgs);Sys.WebForms.=
PageLoadedEventArgs=3Dfunction(b,a,c){Sys.WebForms.PageLoadedEventArgs.in=
itializeBase(this);this._panelsUpdated=3Db;this._panelsCreated=3Da;this._=
dataItems=3Dc||{}};Sys.WebForms.PageLoadedEventArgs.prototype=3D{get_data=
Items:function(){return =
this._dataItems},get_panelsCreated:function(){return =
this._panelsCreated},get_panelsUpdated:function(){return =
this._panelsUpdated}};Sys.WebForms.PageLoadedEventArgs.registerClass("Sys=
.WebForms.PageLoadedEventArgs",Sys.EventArgs);Sys.WebForms.PageLoadingEve=
ntArgs=3Dfunction(b,a,c){Sys.WebForms.PageLoadingEventArgs.initializeBase=
(this);this._panelsUpdating=3Db;this._panelsDeleting=3Da;this._dataItems=3D=
c||{}};Sys.WebForms.PageLoadingEventArgs.prototype=3D{get_dataItems:funct=
ion(){return this._dataItems},get_panelsDeleting:function(){return =
this._panelsDeleting},get_panelsUpdating:function(){return =
this._panelsUpdating}};Sys.WebForms.PageLoadingEventArgs.registerClass("S=
ys.WebForms.PageLoadingEventArgs",Sys.EventArgs);Sys.WebForms.PageRequest=
Manager=3Dfunction(){this._form=3Dnull;this._activeDefaultButton=3Dnull;t=
his._activeDefaultButtonClicked=3Dfalse;this._updatePanelIDs=3Dnull;this.=
_updatePanelClientIDs=3Dnull;this._updatePanelHasChildrenAsTriggers=3Dnul=
l;this._asyncPostBackControlIDs=3Dnull;this._asyncPostBackControlClientID=
s=3Dnull;this._postBackControlIDs=3Dnull;this._postBackControlClientIDs=3D=
null;this._scriptManagerID=3Dnull;this._pageLoadedHandler=3Dnull;this._ad=
ditionalInput=3Dnull;this._onsubmit=3Dnull;this._onSubmitStatements=3D[];=
this._originalDoPostBack=3Dnull;this._originalDoPostBackWithOptions=3Dnul=
l;this._originalFireDefaultButton=3Dnull;this._originalDoCallback=3Dnull;=
this._isCrossPost=3Dfalse;this._postBackSettings=3Dnull;this._request=3Dn=
ull;this._onFormSubmitHandler=3Dnull;this._onFormElementClickHandler=3Dnu=
ll;this._onWindowUnloadHandler=3Dnull;this._asyncPostBackTimeout=3Dnull;t=
his._controlIDToFocus=3Dnull;this._scrollPosition=3Dnull;this._processing=
Request=3Dfalse;this._scriptDisposes=3D{};this._transientFields=3D["__VIE=
WSTATEENCRYPTED","__VIEWSTATEFIELDCOUNT"]};Sys.WebForms.PageRequestManage=
r.prototype=3D{_get_eventHandlerList:function(){if(!this._events)this._ev=
ents=3Dnew Sys.EventHandlerList;return =
this._events},get_isInAsyncPostBack:function(){return =
this._request!=3D=3Dnull},add_beginRequest:function(a){this._get_eventHan=
dlerList().addHandler("beginRequest",a)},remove_beginRequest:function(a){=
this._get_eventHandlerList().removeHandler("beginRequest",a)},add_endRequ=
est:function(a){this._get_eventHandlerList().addHandler("endRequest",a)},=
remove_endRequest:function(a){this._get_eventHandlerList().removeHandler(=
"endRequest",a)},add_initializeRequest:function(a){this._get_eventHandler=
List().addHandler("initializeRequest",a)},remove_initializeRequest:functi=
on(a){this._get_eventHandlerList().removeHandler("initializeRequest",a)},=
add_pageLoaded:function(a){this._get_eventHandlerList().addHandler("pageL=
oaded",a)},remove_pageLoaded:function(a){this._get_eventHandlerList().rem=
oveHandler("pageLoaded",a)},add_pageLoading:function(a){this._get_eventHa=
ndlerList().addHandler("pageLoading",a)},remove_pageLoading:function(a){t=
his._get_eventHandlerList().removeHandler("pageLoading",a)},abortPostBack=
:function(){if(!this._processingRequest&&this._request){this._request.get=
_executor().abort();this._request=3Dnull}},_cancelPendingCallbacks:functi=
on(){for(var a=3D0,e=3Dwindow.__pendingCallbacks.length;a<e;a++){var =
c=3Dwindow.__pendingCallbacks[a];if(c){if(!c.async)window.__synchronousCa=
llBackIndex=3D-1;window.__pendingCallbacks[a]=3Dnull;var =
d=3D"__CALLBACKFRAME"+a,b=3Ddocument.getElementById(d);if(b)b.parentNode.=
removeChild(b)}}},_commitControls:function(a,b){if(a){this._updatePanelID=
s=3Da.updatePanelIDs;this._updatePanelClientIDs=3Da.updatePanelClientIDs;=
this._updatePanelHasChildrenAsTriggers=3Da.updatePanelHasChildrenAsTrigge=
rs;this._asyncPostBackControlIDs=3Da.asyncPostBackControlIDs;this._asyncP=
ostBackControlClientIDs=3Da.asyncPostBackControlClientIDs;this._postBackC=
ontrolIDs=3Da.postBackControlIDs;this._postBackControlClientIDs=3Da.postB=
ackControlClientIDs}if(typeof =
b!=3D=3D"undefined"&&b!=3D=3Dnull)this._asyncPostBackTimeout=3Db*1000},_c=
reateHiddenField:function(c,d){var =
b,a=3Ddocument.getElementById(c);if(a)if(!a._isContained)a.parentNode.rem=
oveChild(a);else =
b=3Da.parentNode;if(!b){b=3Ddocument.createElement("span");b.style.cssTex=
t=3D"display:none =
!important";this._form.appendChild(b)}b.innerHTML=3D"<input =
type=3D'hidden' =
/>";a=3Db.childNodes[0];a._isContained=3Dtrue;a.id=3Da.name=3Dc;a.value=3D=
d},_createPageRequestManagerTimeoutError:function(){var =
b=3D"Sys.WebForms.PageRequestManagerTimeoutException: =
"+Sys.WebForms.Res.PRM_TimeoutError,a=3DError.create(b,{name:"Sys.WebForm=
s.PageRequestManagerTimeoutException"});a.popStackFrame();return =
a},_createPageRequestManagerServerError:function(a,d){var =
c=3D"Sys.WebForms.PageRequestManagerServerErrorException: =
"+(d||String.format(Sys.WebForms.Res.PRM_ServerError,a)),b=3DError.create=
(c,{name:"Sys.WebForms.PageRequestManagerServerErrorException",httpStatus=
Code:a});b.popStackFrame();return =
b},_createPageRequestManagerParserError:function(b){var =
c=3D"Sys.WebForms.PageRequestManagerParserErrorException: =
"+String.format(Sys.WebForms.Res.PRM_ParserError,b),a=3DError.create(c,{n=
ame:"Sys.WebForms.PageRequestManagerParserErrorException"});a.popStackFra=
me();return a},_createPostBackSettings:function(c,b,a){return =
{async:c,panelID:b,sourceElement:a}},_convertToClientIDs:function(a,d,c){=
if(a)for(var =
b=3D0,e=3Da.length;b<e;b++){Array.add(d,a[b]);Array.add(c,this._uniqueIDT=
oClientID(a[b]))}},_destroyTree:function(f){if(f.nodeType=3D=3D=3D1){var =
d=3Df.childNodes;for(var b=3Dd.length-1;b>=3D0;b--){var =
a=3Dd[b];if(a.nodeType=3D=3D=3D1){if(a.dispose&&typeof =
a.dispose=3D=3D=3D"function")a.dispose();else if(a.control&&typeof =
a.control.dispose=3D=3D=3D"function")a.control.dispose();var =
e=3DSys.UI.Behavior.getBehaviors(a);for(var =
c=3De.length-1;c>=3D0;c--)e[c].dispose();this._destroyTree(a)}}}},dispose=
:function(){if(this._form){Sys.UI.DomEvent.removeHandler(this._form,"subm=
it",this._onFormSubmitHandler);Sys.UI.DomEvent.removeHandler(this._form,"=
click",this._onFormElementClickHandler);Sys.UI.DomEvent.removeHandler(win=
dow,"unload",this._onWindowUnloadHandler);Sys.UI.DomEvent.removeHandler(w=
indow,"load",this._pageLoadedHandler)}if(this._originalDoPostBack){window=
.__doPostBack=3Dthis._originalDoPostBack;this._originalDoPostBack=3Dnull}=
if(this._originalDoPostBackWithOptions){window.WebForm_DoPostBackWithOpti=
ons=3Dthis._originalDoPostBackWithOptions;this._originalDoPostBackWithOpt=
ions=3Dnull}if(this._originalFireDefaultButton){window.WebForm_FireDefaul=
tButton=3Dthis._originalFireDefaultButton;this._originalFireDefaultButton=
=3Dnull}if(this._originalDoCallback){window.WebForm_DoCallback=3Dthis._or=
iginalDoCallback;this._originalDoCallback=3Dnull}this._form=3Dnull;this._=
updatePanelIDs=3Dnull;this._updatePanelClientIDs=3Dnull;this._asyncPostBa=
ckControlIDs=3Dnull;this._asyncPostBackControlClientIDs=3Dnull;this._post=
BackControlIDs=3Dnull;this._postBackControlClientIDs=3Dnull;this._asyncPo=
stBackTimeout=3Dnull;this._scrollPosition=3Dnull},_doCallback:function(d,=
b,c,f,a,e){if(!this.get_isInAsyncPostBack())this._originalDoCallback(d,b,=
c,f,a,e)},_doPostBack:function(a,e){this._additionalInput=3Dnull;var =
b=3Dthis._form;if(a=3D=3D=3Dnull||typeof =
a=3D=3D=3D"undefined"||this._isCrossPost){this._postBackSettings=3Dthis._=
createPostBackSettings(false,null,null);this._isCrossPost=3Dfalse}else{va=
r =
f=3Dthis._uniqueIDToClientID(a),d=3Ddocument.getElementById(f);if(!d)if(A=
rray.contains(this._asyncPostBackControlIDs,a))this._postBackSettings=3Dt=
his._createPostBackSettings(true,this._scriptManagerID+"|"+a,null);else =
if(Array.contains(this._postBackControlIDs,a))this._postBackSettings=3Dth=
is._createPostBackSettings(false,null,null);else{var =
c=3Dthis._findNearestElement(a);if(c)this._postBackSettings=3Dthis._getPo=
stBackSettings(c,a);else =
this._postBackSettings=3Dthis._createPostBackSettings(false,null,null)}el=
se =
this._postBackSettings=3Dthis._getPostBackSettings(d,a)}if(!this._postBac=
kSettings.async){b.onsubmit=3Dthis._onsubmit;this._originalDoPostBack(a,e=
);b.onsubmit=3Dnull;return}b.__EVENTTARGET.value=3Da;b.__EVENTARGUMENT.va=
lue=3De;this._onFormSubmit()},_doPostBackWithOptions:function(a){this._is=
CrossPost=3Da&&a.actionUrl;this._originalDoPostBackWithOptions(a)},_eleme=
ntContains:function(b,a){while(a){if(a=3D=3D=3Db)return =
true;a=3Da.parentNode}return =
false},_endPostBack:function(a,d,f){if(this._request=3D=3D=3Dd.get_webReq=
uest()){this._processingRequest=3Dfalse;this._additionalInput=3Dnull;this=
._request=3Dnull}var =
e=3Dthis._get_eventHandlerList().getHandler("endRequest"),b=3Dfalse;if(e)=
{var c=3Dnew =
Sys.WebForms.EndRequestEventArgs(a,f?f.dataItems:{},d);e(this,c);b=3Dc.ge=
t_errorHandled()}if(a&&!b)throw =
a},_findNearestElement:function(a){while(a.length>0){var =
d=3Dthis._uniqueIDToClientID(a),c=3Ddocument.getElementById(d);if(c)retur=
n c;var b=3Da.lastIndexOf("$");if(b=3D=3D=3D-1)return =
null;a=3Da.substring(0,b)}return null},_findText:function(b,a){var =
c=3DMath.max(0,a-20),d=3DMath.min(b.length,a+20);return =
b.substring(c,d)},_fireDefaultButton:function(a,d){if(a.keyCode=3D=3D=3D1=
3){var =
c=3Da.srcElement||a.target;if(!c||c.tagName.toLowerCase()!=3D=3D"textarea=
"){var b=3Ddocument.getElementById(d);if(b&&typeof =
b.click!=3D=3D"undefined"){this._activeDefaultButton=3Db;this._activeDefa=
ultButtonClicked=3Dfalse;try{b.click()}finally{this._activeDefaultButton=3D=
null}a.cancelBubble=3Dtrue;if(typeof =
a.stopPropagation=3D=3D=3D"function")a.stopPropagation();return =
false}}}return true},_getPageLoadedEventArgs:function(j,e){var =
i=3D[],h=3D[],d=3De?e.updatePanelData:null,c,g,b;if(!d){c=3Dthis._updateP=
anelIDs;g=3Dnull;b=3Dnull}else{c=3Dd.updatePanelIDs;g=3Dd.childUpdatePane=
lIDs;b=3Dd.panelsToRefreshIDs}var =
a,f;if(b)for(a=3D0,f=3Db.length;a<f;a++)Array.add(i,document.getElementBy=
Id(this._uniqueIDToClientID(b[a])));for(a=3D0,f=3Dc.length;a<f;a++)if(j||=
Array.indexOf(g,c[a])!=3D=3D-1)Array.add(h,document.getElementById(this._=
uniqueIDToClientID(c[a])));return new =
Sys.WebForms.PageLoadedEventArgs(i,h,e?e.dataItems:{})},_getPageLoadingEv=
entArgs:function(h){var =
g=3D[],f=3D[],c=3Dh.updatePanelData,b=3Dc.oldUpdatePanelIDs,j=3Dc.updateP=
anelIDs,i=3Dc.childUpdatePanelIDs,e=3Dc.panelsToRefreshIDs,a,d;for(a=3D0,=
d=3De.length;a<d;a++)Array.add(g,document.getElementById(this._uniqueIDTo=
ClientID(e[a])));for(a=3D0,d=3Db.length;a<d;a++)if(Array.indexOf(e,b[a])=3D=
=3D=3D-1&&(Array.indexOf(j,b[a])=3D=3D=3D-1||Array.indexOf(i,b[a])>-1))Ar=
ray.add(f,document.getElementById(this._uniqueIDToClientID(b[a])));return=
 new =
Sys.WebForms.PageLoadingEventArgs(g,f,h.dataItems)},_getPostBackSettings:=
function(a,c){var =
d=3Da,b=3Dnull;while(a){if(a.id){if(!b&&Array.contains(this._asyncPostBac=
kControlClientIDs,a.id))b=3Dthis._createPostBackSettings(true,this._scrip=
tManagerID+"|"+c,d);else =
if(!b&&Array.contains(this._postBackControlClientIDs,a.id))return =
this._createPostBackSettings(false,null,null);else{var =
e=3DArray.indexOf(this._updatePanelClientIDs,a.id);if(e!=3D=3D-1)if(this.=
_updatePanelHasChildrenAsTriggers[e])return =
this._createPostBackSettings(true,this._updatePanelIDs[e]+"|"+c,d);else =
return =
this._createPostBackSettings(true,this._scriptManagerID+"|"+c,d)}if(!b&&t=
his._matchesParentIDInList(a.id,this._asyncPostBackControlClientIDs))b=3D=
this._createPostBackSettings(true,this._scriptManagerID+"|"+c,d);else =
if(!b&&this._matchesParentIDInList(a.id,this._postBackControlClientIDs))r=
eturn =
this._createPostBackSettings(false,null,null)}a=3Da.parentNode}if(!b)retu=
rn this._createPostBackSettings(false,null,null);else return =
b},_getScrollPosition:function(){var =
a=3Ddocument.documentElement;if(a&&(this._validPosition(a.scrollLeft)||th=
is._validPosition(a.scrollTop)))return =
{x:a.scrollLeft,y:a.scrollTop};else{a=3Ddocument.body;if(a&&(this._validP=
osition(a.scrollLeft)||this._validPosition(a.scrollTop)))return =
{x:a.scrollLeft,y:a.scrollTop};else =
if(this._validPosition(window.pageXOffset)||this._validPosition(window.pa=
geYOffset))return {x:window.pageXOffset,y:window.pageYOffset};else =
return =
{x:0,y:0}}},_initializeInternal:function(a,b){if(this._prmInitialized)thr=
ow =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);this._pr=
mInitialized=3Dtrue;this._scriptManagerID=3Da;this._form=3Db;this._onsubm=
it=3Dthis._form.onsubmit;this._form.onsubmit=3Dnull;this._onFormSubmitHan=
dler=3DFunction.createDelegate(this,this._onFormSubmit);this._onFormEleme=
ntClickHandler=3DFunction.createDelegate(this,this._onFormElementClick);t=
his._onWindowUnloadHandler=3DFunction.createDelegate(this,this._onWindowU=
nload);Sys.UI.DomEvent.addHandler(this._form,"submit",this._onFormSubmitH=
andler);Sys.UI.DomEvent.addHandler(this._form,"click",this._onFormElement=
ClickHandler);Sys.UI.DomEvent.addHandler(window,"unload",this._onWindowUn=
loadHandler);this._originalDoPostBack=3Dwindow.__doPostBack;if(this._orig=
inalDoPostBack)window.__doPostBack=3DFunction.createDelegate(this,this._d=
oPostBack);this._originalDoPostBackWithOptions=3Dwindow.WebForm_DoPostBac=
kWithOptions;if(this._originalDoPostBackWithOptions)window.WebForm_DoPost=
BackWithOptions=3DFunction.createDelegate(this,this._doPostBackWithOption=
s);this._originalFireDefaultButton=3Dwindow.WebForm_FireDefaultButton;if(=
this._originalFireDefaultButton)window.WebForm_FireDefaultButton=3DFuncti=
on.createDelegate(this,this._fireDefaultButton);this._originalDoCallback=3D=
window.WebForm_DoCallback;if(this._originalDoCallback)window.WebForm_DoCa=
llback=3DFunction.createDelegate(this,this._doCallback);this._pageLoadedH=
andler=3DFunction.createDelegate(this,this._pageLoadedInitialLoad);Sys.UI=
.DomEvent.addHandler(window,"load",this._pageLoadedHandler)},_matchesPare=
ntIDInList:function(c,b){for(var =
a=3D0,d=3Db.length;a<d;a++)if(c.startsWith(b[a]+"_"))return true;return =
false},_onFormElementActive:function(a,d,e){if(a.disabled)return;this._po=
stBackSettings=3Dthis._getPostBackSettings(a,a.name);if(a.name){var =
b=3Da.tagName.toUpperCase();if(b=3D=3D=3D"INPUT"){var =
c=3Da.type;if(c=3D=3D=3D"submit")this._additionalInput=3DencodeURICompone=
nt(a.name)+"=3D"+encodeURIComponent(a.value);else =
if(c=3D=3D=3D"image")this._additionalInput=3DencodeURIComponent(a.name)+"=
.x=3D"+d+"&"+encodeURIComponent(a.name)+".y=3D"+e}else =
if(b=3D=3D=3D"BUTTON"&&a.name.length!=3D=3D0&&a.type=3D=3D=3D"submit")thi=
s._additionalInput=3DencodeURIComponent(a.name)+"=3D"+encodeURIComponent(=
a.value)}},_onFormElementClick:function(a){this._activeDefaultButtonClick=
ed=3Da.target=3D=3D=3Dthis._activeDefaultButton;this._onFormElementActive=
(a.target,a.offsetX,a.offsetY)},_onFormSubmit:function(h){var =
g=3Dtrue,t=3Dthis._isCrossPost;this._isCrossPost=3Dfalse;var =
e,s;if(this._onsubmit)g=3Dthis._onsubmit();if(g)for(e=3D0,s=3Dthis._onSub=
mitStatements.length;e<s;e++)if(!this._onSubmitStatements[e]()){g=3Dfalse=
;break}if(!g){if(h)h.preventDefault();return}var =
n=3Dthis._form;if(t)return;if(this._activeDefaultButton&&!this._activeDef=
aultButtonClicked)this._onFormElementActive(this._activeDefaultButton,0,0=
);if(!this._postBackSettings.async)return;var a=3Dnew =
Sys.StringBuilder;a.append(encodeURIComponent(this._scriptManagerID)+"=3D=
"+encodeURIComponent(this._postBackSettings.panelID)+"&");var =
v=3Dn.elements.length;for(e=3D0;e<v;e++){var =
d=3Dn.elements[e],f=3Dd.name;if(typeof =
f=3D=3D=3D"undefined"||f=3D=3D=3Dnull||f.length=3D=3D=3D0||f=3D=3D=3Dthis=
._scriptManagerID)continue;var =
m=3Dd.tagName.toUpperCase();if(m=3D=3D=3D"INPUT"){var =
k=3Dd.type;if(k=3D=3D=3D"text"||k=3D=3D=3D"password"||k=3D=3D=3D"hidden"|=
|(k=3D=3D=3D"checkbox"||k=3D=3D=3D"radio")&&d.checked){a.append(encodeURI=
Component(f));a.append("=3D");a.append(encodeURIComponent(d.value));a.app=
end("&")}}else if(m=3D=3D=3D"SELECT"){var u=3Dd.options.length;for(var =
o=3D0;o<u;o++){var =
q=3Dd.options[o];if(q.selected){a.append(encodeURIComponent(f));a.append(=
"=3D");a.append(encodeURIComponent(q.value));a.append("&")}}}else =
if(m=3D=3D=3D"TEXTAREA"){a.append(encodeURIComponent(f));a.append("=3D");=
a.append(encodeURIComponent(d.value));a.append("&")}}a.append("__ASYNCPOS=
T=3Dtrue&");if(this._additionalInput){a.append(this._additionalInput);thi=
s._additionalInput=3Dnull}var c=3Dnew =
Sys.Net.WebRequest,b=3Dn.action;if(Sys.Browser.agent=3D=3D=3DSys.Browser.=
InternetExplorer){var =
p=3Db.indexOf("#");if(p!=3D=3D-1)b=3Db.substr(0,p);var =
l=3Db.indexOf("?");if(l!=3D=3D-1){var =
r=3Db.substr(0,l);if(r.indexOf("%")=3D=3D=3D-1)b=3DencodeURI(r)+b.substr(=
l)}else =
if(b.indexOf("%")=3D=3D=3D-1)b=3DencodeURI(b)}c.set_url(b);c.get_headers(=
)["X-MicrosoftAjax"]=3D"Delta=3Dtrue";c.get_headers()["Cache-Control"]=3D=
"no-cache";c.set_timeout(this._asyncPostBackTimeout);c.add_completed(Func=
tion.createDelegate(this,this._onFormSubmitCompleted));c.set_body(a.toStr=
ing());var =
i,j=3Dthis._get_eventHandlerList().getHandler("initializeRequest");if(j){=
i=3Dnew =
Sys.WebForms.InitializeRequestEventArgs(c,this._postBackSettings.sourceEl=
ement);j(this,i);g=3D!i.get_cancel()}if(!g){if(h)h.preventDefault();retur=
n}this._scrollPosition=3Dthis._getScrollPosition();this.abortPostBack();j=
=3Dthis._get_eventHandlerList().getHandler("beginRequest");if(j){i=3Dnew =
Sys.WebForms.BeginRequestEventArgs(c,this._postBackSettings.sourceElement=
);j(this,i)}if(this._originalDoCallback)this._cancelPendingCallbacks();th=
is._request=3Dc;this._processingRequest=3Dfalse;c.invoke();if(h)h.prevent=
Default()},_onFormSubmitCompleted:function(c){this._processingRequest=3Dt=
rue;if(c.get_timedOut()){this._endPostBack(this._createPageRequestManager=
TimeoutError(),c,null);return}if(c.get_aborted()){this._endPostBack(null,=
c,null);return}if(!this._request||c.get_webRequest()!=3D=3Dthis._request)=
return;if(c.get_statusCode()!=3D=3D200){this._endPostBack(this._createPag=
eRequestManagerServerError(c.get_statusCode()),c,null);return}var =
a=3Dthis._parseDelta(c);if(!a)return;var =
b,e;if(a.asyncPostBackControlIDsNode&&a.postBackControlIDsNode&&a.updateP=
anelIDsNode&&a.panelsToRefreshNode&&a.childUpdatePanelIDsNode){var =
p=3Dthis._updatePanelIDs,h=3Da.childUpdatePanelIDsNode.content,n=3Dh.leng=
th?h.split(","):[],l=3Dthis._splitNodeIntoArray(a.asyncPostBackControlIDs=
Node),m=3Dthis._splitNodeIntoArray(a.postBackControlIDsNode),o=3Dthis._sp=
litNodeIntoArray(a.updatePanelIDsNode),g=3Dthis._splitNodeIntoArray(a.pan=
elsToRefreshNode);for(b=3D0,e=3Dg.length;b<e;b++){var =
i=3Dthis._uniqueIDToClientID(g[b]);if(!document.getElementById(i)){this._=
endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.PRM_Mis=
singPanel,i)),c,a);return}}var =
f=3Dthis._processUpdatePanelArrays(o,l,m);f.oldUpdatePanelIDs=3Dp;f.child=
UpdatePanelIDs=3Dn;f.panelsToRefreshIDs=3Dg;a.updatePanelData=3Df}a.dataI=
tems=3D{};var =
d;for(b=3D0,e=3Da.dataItemNodes.length;b<e;b++){d=3Da.dataItemNodes[b];a.=
dataItems[d.id]=3Dd.content}for(b=3D0,e=3Da.dataItemJsonNodes.length;b<e;=
b++){d=3Da.dataItemJsonNodes[b];a.dataItems[d.id]=3DSys.Serialization.Jav=
aScriptSerializer.deserialize(d.content)}var =
k=3Dthis._get_eventHandlerList().getHandler("pageLoading");if(k)k(this,th=
is._getPageLoadingEventArgs(a));Sys._ScriptLoader.readLoadedScripts();Sys=
.Application.beginCreateComponents();var =
j=3DSys._ScriptLoader.getInstance();this._queueScripts(j,a.scriptBlockNod=
es,true,false);this._processingRequest=3Dtrue;j.loadScripts(0,Function.cr=
eateDelegate(this,Function.createCallback(this._scriptIncludesLoadComplet=
e,a)),Function.createDelegate(this,Function.createCallback(this._scriptIn=
cludesLoadFailed,a)),null)},_onWindowUnload:function(){this.dispose()},_p=
ageLoaded:function(a,c){var =
b=3Dthis._get_eventHandlerList().getHandler("pageLoaded");if(b)b(this,thi=
s._getPageLoadedEventArgs(a,c));if(!a)Sys.Application.raiseLoad()},_pageL=
oadedInitialLoad:function(){this._pageLoaded(true,null)},_parseDelta:func=
tion(g){var =
c=3Dg.get_responseData(),d,h,D,E,C,b=3D0,e=3Dnull,i=3D[];while(b<c.length=
){d=3Dc.indexOf("|",b);if(d=3D=3D=3D-1){e=3Dthis._findText(c,b);break}h=3D=
parseInt(c.substring(b,d),10);if(h%1!=3D=3D0){e=3Dthis._findText(c,b);bre=
ak}b=3Dd+1;d=3Dc.indexOf("|",b);if(d=3D=3D=3D-1){e=3Dthis._findText(c,b);=
break}D=3Dc.substring(b,d);b=3Dd+1;d=3Dc.indexOf("|",b);if(d=3D=3D=3D-1){=
e=3Dthis._findText(c,b);break}E=3Dc.substring(b,d);b=3Dd+1;if(b+h>=3Dc.le=
ngth){e=3Dthis._findText(c,c.length);break}C=3Dc.substr(b,h);b+=3Dh;if(c.=
charAt(b)!=3D=3D"|"){e=3Dthis._findText(c,b);break}b++;Array.add(i,{type:=
D,id:E,content:C})}if(e){this._endPostBack(this._createPageRequestManager=
ParserError(String.format(Sys.WebForms.Res.PRM_ParserErrorDetails,e)),g,n=
ull);return null}var =
w=3D[],u=3D[],o=3D[],v=3D[],r=3D[],B=3D[],z=3D[],y=3D[],t=3D[],q=3D[],k,n=
,s,l,m,p,x;for(var j=3D0,F=3Di.length;j<F;j++){var =
a=3Di[j];switch(a.type){case "updatePanel":Array.add(w,a);break;case =
"hiddenField":Array.add(u,a);break;case =
"arrayDeclaration":Array.add(o,a);break;case =
"scriptBlock":Array.add(v,a);break;case =
"scriptStartupBlock":Array.add(r,a);break;case =
"expando":Array.add(B,a);break;case "onSubmit":Array.add(z,a);break;case =
"asyncPostBackControlIDs":k=3Da;break;case =
"postBackControlIDs":n=3Da;break;case "updatePanelIDs":s=3Da;break;case =
"asyncPostBackTimeout":l=3Da;break;case =
"childUpdatePanelIDs":m=3Da;break;case =
"panelsToRefreshIDs":p=3Da;break;case "formAction":x=3Da;break;case =
"dataItem":Array.add(y,a);break;case =
"dataItemJson":Array.add(t,a);break;case =
"scriptDispose":Array.add(q,a);break;case =
"pageRedirect":if(Sys.Browser.agent=3D=3D=3DSys.Browser.InternetExplorer)=
{var =
f=3Ddocument.createElement("a");f.style.display=3D"none";f.attachEvent("o=
nclick",A);f.href=3Da.content;document.body.appendChild(f);f.click();f.de=
tachEvent("onclick",A);document.body.removeChild(f);function =
A(a){a.cancelBubble=3Dtrue}}else =
window.location.href=3Da.content;return;case =
"error":this._endPostBack(this._createPageRequestManagerServerError(Numbe=
r.parseInvariant(a.id),a.content),g,null);return null;case =
"pageTitle":document.title=3Da.content;break;case =
"focus":this._controlIDToFocus=3Da.content;break;default:this._endPostBac=
k(this._createPageRequestManagerParserError(String.format(Sys.WebForms.Re=
s.PRM_UnknownToken,a.type)),g,null);return null}}return =
{executor:g,updatePanelNodes:w,hiddenFieldNodes:u,arrayDeclarationNodes:o=
,scriptBlockNodes:v,scriptStartupNodes:r,expandoNodes:B,onSubmitNodes:z,d=
ataItemNodes:y,dataItemJsonNodes:t,scriptDisposeNodes:q,asyncPostBackCont=
rolIDsNode:k,postBackControlIDsNode:n,updatePanelIDsNode:s,asyncPostBackT=
imeoutNode:l,childUpdatePanelIDsNode:m,panelsToRefreshNode:p,formActionNo=
de:x}},_processUpdatePanelArrays:function(e,l,n){var d,c,b;if(e){var =
f=3De.length;d=3Dnew Array(f);c=3Dnew Array(f);b=3Dnew Array(f);for(var =
a=3D0;a<f;a++){var =
k=3De[a].substr(1),m=3De[a].charAt(0)=3D=3D=3D"t";b[a]=3Dm;d[a]=3Dk;c[a]=3D=
this._uniqueIDToClientID(k)}}else{d=3D[];c=3D[];b=3D[]}var =
i=3D[],g=3D[];this._convertToClientIDs(l,i,g);var =
j=3D[],h=3D[];this._convertToClientIDs(n,j,h);return =
{updatePanelIDs:d,updatePanelClientIDs:c,updatePanelHasChildrenAsTriggers=
:b,asyncPostBackControlIDs:i,asyncPostBackControlClientIDs:g,postBackCont=
rolIDs:j,postBackControlClientIDs:h}},_queueScripts:function(scriptLoader=
,scriptBlockNodes,queueIncludes,queueBlocks){for(var =
i=3D0,l=3DscriptBlockNodes.length;i<l;i++){var =
scriptBlockType=3DscriptBlockNodes[i].id;switch(scriptBlockType){case =
"ScriptContentNoTags":if(!queueBlocks)continue;scriptLoader.queueScriptBl=
ock(scriptBlockNodes[i].content);break;case "ScriptContentWithTags":var =
scriptTagAttributes;eval("scriptTagAttributes =3D =
"+scriptBlockNodes[i].content);if(scriptTagAttributes.src){if(!queueInclu=
des||Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src))continue}e=
lse =
if(!queueBlocks)continue;scriptLoader.queueCustomScriptTag(scriptTagAttri=
butes);break;case =
"ScriptPath":if(!queueIncludes||Sys._ScriptLoader.isScriptLoaded(scriptBl=
ockNodes[i].content))continue;scriptLoader.queueScriptReference(scriptBlo=
ckNodes[i].content)}}},_registerDisposeScript:function(a,b){if(!this._scr=
iptDisposes[a])this._scriptDisposes[a]=3D[b];else =
Array.add(this._scriptDisposes[a],b)},_scriptIncludesLoadComplete:functio=
n(e,b){if(b.executor.get_webRequest()!=3D=3Dthis._request)return;this._co=
mmitControls(b.updatePanelData,b.asyncPostBackTimeoutNode?b.asyncPostBack=
TimeoutNode.content:null);if(b.formActionNode)this._form.action=3Db.formA=
ctionNode.content;var =
a,d,c;for(a=3D0,d=3Db.updatePanelNodes.length;a<d;a++){c=3Db.updatePanelN=
odes[a];var =
j=3Ddocument.getElementById(c.id);if(!j){this._endPostBack(Error.invalidO=
peration(String.format(Sys.WebForms.Res.PRM_MissingPanel,c.id)),b.executo=
r,b);return}this._updatePanel(j,c.content)}for(a=3D0,d=3Db.scriptDisposeN=
odes.length;a<d;a++){c=3Db.scriptDisposeNodes[a];this._registerDisposeScr=
ipt(c.id,c.content)}for(a=3D0,d=3Dthis._transientFields.length;a<d;a++){v=
ar g=3Ddocument.getElementById(this._transientFields[a]);if(g){var =
k=3Dg._isContained?g.parentNode:g;k.parentNode.removeChild(k)}}for(a=3D0,=
d=3Db.hiddenFieldNodes.length;a<d;a++){c=3Db.hiddenFieldNodes[a];this._cr=
eateHiddenField(c.id,c.content)}if(b.scriptsFailed)throw =
Sys._ScriptLoader._errorScriptLoadFailed(b.scriptsFailed.src,b.scriptsFai=
led.multipleCallbacks);this._queueScripts(e,b.scriptBlockNodes,false,true=
);var =
i=3D"";for(a=3D0,d=3Db.arrayDeclarationNodes.length;a<d;a++){c=3Db.arrayD=
eclarationNodes[a];i+=3D"Sys.WebForms.PageRequestManager._addArrayElement=
('"+c.id+"', "+c.content+");\r\n"}var =
h=3D"";for(a=3D0,d=3Db.expandoNodes.length;a<d;a++){c=3Db.expandoNodes[a]=
;h+=3Dc.id+" =3D =
"+c.content+"\r\n"}if(i.length)e.queueScriptBlock(i);if(h.length)e.queueS=
criptBlock(h);this._queueScripts(e,b.scriptStartupNodes,true,true);var =
f=3D"";for(a=3D0,d=3Db.onSubmitNodes.length;a<d;a++){if(a=3D=3D=3D0)f=3D"=
Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatemen=
ts, function() =
{\r\n";f+=3Db.onSubmitNodes[a].content+"\r\n"}if(f.length){f+=3D"\r\nretu=
rn =
true;\r\n});\r\n";e.queueScriptBlock(f)}e.loadScripts(0,Function.createDe=
legate(this,Function.createCallback(this._scriptsLoadComplete,b)),null,nu=
ll)},_scriptIncludesLoadFailed:function(d,c,b,a){a.scriptsFailed=3D{src:c=
.src,multipleCallbacks:b};this._scriptIncludesLoadComplete(d,a)},_scripts=
LoadComplete:function(f,c){var =
e=3Dc.executor;if(window.__theFormPostData)window.__theFormPostData=3D"";=
if(window.__theFormPostCollection)window.__theFormPostCollection=3D[];if(=
window.WebForm_InitCallback)window.WebForm_InitCallback();if(this._scroll=
Position){if(window.scrollTo)window.scrollTo(this._scrollPosition.x,this.=
_scrollPosition.y);this._scrollPosition=3Dnull}Sys.Application.endCreateC=
omponents();this._pageLoaded(false,c);this._endPostBack(null,e,c);if(this=
._controlIDToFocus){var =
a,d;if(Sys.Browser.agent=3D=3D=3DSys.Browser.InternetExplorer){var =
b=3D$get(this._controlIDToFocus);a=3Db;if(b&&!WebForm_CanFocus(b))a=3DWeb=
Form_FindFirstFocusableChild(b);if(a&&typeof =
a.contentEditable!=3D=3D"undefined"){d=3Da.contentEditable;a.contentEdita=
ble=3Dfalse}else =
a=3Dnull}WebForm_AutoFocus(this._controlIDToFocus);if(a)a.contentEditable=
=3Dd;this._controlIDToFocus=3Dnull}},_splitNodeIntoArray:function(b){var =
a=3Db.content,c=3Da.length?a.split(","):[];return =
c},_uniqueIDToClientID:function(a){return =
a.replace(/\$/g,"_")},_updateControls:function(d,a,c,b){this._commitContr=
ols(this._processUpdatePanelArrays(d,a,c),b)},_updatePanel:function(updat=
ePanelElement,rendering){for(var updatePanelID in =
this._scriptDisposes)if(this._elementContains(updatePanelElement,document=
.getElementById(updatePanelID))){var =
disposeScripts=3Dthis._scriptDisposes[updatePanelID];for(var =
i=3D0,l=3DdisposeScripts.length;i<l;i++)eval(disposeScripts[i]);delete =
this._scriptDisposes[updatePanelID]}this._destroyTree(updatePanelElement)=
;updatePanelElement.innerHTML=3Drendering},_validPosition:function(a){ret=
urn typeof =
a!=3D=3D"undefined"&&a!=3D=3Dnull&&a!=3D=3D0}};Sys.WebForms.PageRequestMa=
nager.getInstance=3Dfunction(){var =
a=3DSys.WebForms.PageRequestManager._instance;if(!a)a=3DSys.WebForms.Page=
RequestManager._instance=3Dnew Sys.WebForms.PageRequestManager;return =
a};Sys.WebForms.PageRequestManager._addArrayElement=3Dfunction(a){if(!win=
dow[a])window[a]=3D[];for(var =
b=3D1,c=3Darguments.length;b<c;b++)Array.add(window[a],arguments[b])};Sys=
.WebForms.PageRequestManager._initialize=3Dfunction(a,b){Sys.WebForms.Pag=
eRequestManager.getInstance()._initializeInternal(a,b)};Sys.WebForms.Page=
RequestManager.registerClass("Sys.WebForms.PageRequestManager");Sys.UI._U=
pdateProgress=3Dfunction(a){Sys.UI._UpdateProgress.initializeBase(this,[a=
]);this._displayAfter=3D500;this._dynamicLayout=3Dtrue;this._associatedUp=
datePanelId=3Dnull;this._beginRequestHandlerDelegate=3Dnull;this._startDe=
legate=3Dnull;this._endRequestHandlerDelegate=3Dnull;this._pageRequestMan=
ager=3Dnull;this._timerCookie=3Dnull};Sys.UI._UpdateProgress.prototype=3D=
{get_displayAfter:function(){return =
this._displayAfter},set_displayAfter:function(a){this._displayAfter=3Da},=
get_dynamicLayout:function(){return =
this._dynamicLayout},set_dynamicLayout:function(a){this._dynamicLayout=3D=
a},get_associatedUpdatePanelId:function(){return =
this._associatedUpdatePanelId},set_associatedUpdatePanelId:function(a){th=
is._associatedUpdatePanelId=3Da},_clearTimeout:function(){if(this._timerC=
ookie){window.clearTimeout(this._timerCookie);this._timerCookie=3Dnull}},=
_handleBeginRequest:function(d,c){var =
a=3Dc.get_postBackElement(),b=3D!this._associatedUpdatePanelId;while(!b&&=
a){if(a.id&&this._associatedUpdatePanelId=3D=3D=3Da.id)b=3Dtrue;a=3Da.par=
entNode}if(b)this._timerCookie=3Dwindow.setTimeout(this._startDelegate,th=
is._displayAfter)},_startRequest:function(){if(this._pageRequestManager.g=
et_isInAsyncPostBack())if(this._dynamicLayout)this.get_element().style.di=
splay=3D"block";else =
this.get_element().style.visibility=3D"visible";this._timerCookie=3Dnull}=
,_handleEndRequest:function(){if(this._dynamicLayout)this.get_element().s=
tyle.display=3D"none";else =
this.get_element().style.visibility=3D"hidden";this._clearTimeout()},disp=
ose:function(){if(this._beginRequestHandlerDelegate!=3D=3Dnull){this._pag=
eRequestManager.remove_beginRequest(this._beginRequestHandlerDelegate);th=
is._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate)=
;this._beginRequestHandlerDelegate=3Dnull;this._endRequestHandlerDelegate=
=3Dnull}this._clearTimeout();Sys.UI._UpdateProgress.callBaseMethod(this,"=
dispose")},initialize:function(){Sys.UI._UpdateProgress.callBaseMethod(th=
is,"initialize");this._beginRequestHandlerDelegate=3DFunction.createDeleg=
ate(this,this._handleBeginRequest);this._endRequestHandlerDelegate=3DFunc=
tion.createDelegate(this,this._handleEndRequest);this._startDelegate=3DFu=
nction.createDelegate(this,this._startRequest);if(Sys.WebForms&&Sys.WebFo=
rms.PageRequestManager)this._pageRequestManager=3DSys.WebForms.PageReques=
tManager.getInstance();if(this._pageRequestManager!=3D=3Dnull){this._page=
RequestManager.add_beginRequest(this._beginRequestHandlerDelegate);this._=
pageRequestManager.add_endRequest(this._endRequestHandlerDelegate)}}};Sys=
.UI._UpdateProgress.registerClass("Sys.UI._UpdateProgress",Sys.UI.Control=
);
Type.registerNamespace('Sys.WebForms');Sys.WebForms.Res=3D{"PRM_UnknownTo=
ken":"Unknown token: \u0027{0}\u0027.","PRM_MissingPanel":"Could not =
find UpdatePanel with ID \u0027{0}\u0027. If it is being updated =
dynamically then it must be inside another =
UpdatePanel.","PRM_ServerError":"An unknown error occurred while =
processing the request on the server. The status code returned from the =
server was: {0}","PRM_ParserError":"The message received from the server =
could not be parsed. Common causes for this error are when the response =
is modified by calls to Response.Write(), response filters, HttpModules, =
or server trace is enabled.\r\nDetails: {0}","PRM_TimeoutError":"The =
server request timed out.","PRM_ParserErrorDetails":"Error parsing near =
\u0027{0}\u0027.","PRM_CannotRegisterTwice":"The PageRequestManager =
cannot be initialized more than once."};
if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0062_01C98091.81EF0BB0--

