MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_01D8_01C626A8.30424B10" MMF_PageCount: 4 MMF_ProjPageCount: 1 MMF_VersionMajor: 2001 MMF_VersionMinor: 1 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 This is a multi-part message in MIME format. ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: multipart/alternative; boundary="----=_NextPart_001_01D9_01C626A8.30424B10" ------=_NextPart_001_01D9_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" MMF_PartType: 5 MMF_DebugOnly: kPartProjContent Content-Transfer-Encoding: 7bit Page 1 Page 2 Page 3 Page 4 ------=_NextPart_001_01D9_01C626A8.30424B10 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MMF_PartType: 3 MMF_DebugOnly: kPartProjHTMLMainText Content-Location: ------=_NextPart_001_01D9_01C626A8.30424B10-- ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <000601bece4a$1ad60d10$af14379d@dns.microsoft.com> MMF_PartType: 5 MMF_DebugOnly: kPartProjContent X-Content-Source: c:\temp\img19.gif R0lGODlhOgIsAff/AAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/SH5BAEBAP8ALAAAAAA6AiwB QAj0AAEIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEMqDECypMmTKFOqXMmypcuX MGPKnEmzps2bOHPq3Mmzp8+fQIMKHZpSINGjSJMqXcq0qdOnUKNKnRrAKNWrWLNq3cq1q9evTq2C HUu2rNmzaNOqVSl2rdu3cOPKnUu3KoC6ePPq3cu3L862fgMLHky48FfAhhMrXsy4sU3EjiNLnkzZ L+TKmDNr3uz1MufPoEOLBup5tOnTqFObLK26tevXklnDnk279l7ZtnPr3m0WN+/fwINH9S28uPHj PokjX868eUvlzqNLXw59uvXru3OrY9/OvbX27uDDf/4uvrz5yOTPq18/OD379/Druo9Pv37a+fbz 6++Kf7///8PdBeCABJLVX4EIJsjTgQo26KBMDD4o4YQoRUjhhRJaiOGGCWrI4YcAegjiiPmJSOKJ 8JmI4ornqcjii+C5COOM18lI443OadmI447H6cjjj8D5COSQuQlJ5JGwGYnkkqkpyeSTojkJ5ZSb SUnllZRZieWWjWnJ5ZeGeQnmmIGJSeaZepmJ5ppzqcnmm265CeecZ8lJ551g2YnnnlvpyeefVPkJ 6KBPCUrooUoZiuiiQ1opyuijyQkI6aR9OUrppTVZiummMGnK6acreQrqqKtJSuqpBpqK6qr8qcrq q1iJCiumss5Kaa22Qoprrozuyiuivv5KaLDCAkpssXweiyyeyi5LZ7POwglttGxPTkstmtZeS2a2 2oLJbbdcfgsuluKOS2W55kKJbrpMrssuku6+S2S88gJJb7083osvjvruS2O//sIIcMAsDkwwigYf TGLCCoPIcMMcPgwxhk4ST0xhxRZn6GrG0WLMcYMef9zhxiIXG3LJBJ6Mcogkr5yryi7vB3PMJbZM 86sz30xfzjqnaHPPp/IM9HpCD93iz0Z/WnTS4i3NdIxIP31OqdNSb0d11TVGjfWjV28tXdde56h1 2IeCTTZ1Y59tbNpqJ8t228y+Dfezcs8tbd12V4t33tjuzfe2fv/tbeCCh0t44eQejvi5ii+ubuOO TbcLeeTwTk75vJZfbm/mmufLeef8fg76v6KPLnDppheMeuoIr876wq6/7nDsskdMe+0U3477xbrv rrHvgAM/ptnCa0Z88Zgdj3yWvS9fS6DyzqPXfPQsU8+49VNCj71i2m8f5vTe29d9+O2BT358459v mfnqs5d++7exD//R8//4fv3yyY9/ePfvL1f//oMLAAMYJ/0REDsDPFPgfQyowOkksIG9YSAExTbB 1lXwRA+84GEkqMEecbCDxckgCPv0wREGqYQm5I0IU3iVFbJwKi58YYBkOKEY0jAsKLzhbGyow6Xw sIdJ+SEQjyLEIVU2KodGbBISk3iaIjLxJ058Yk+iKMWdULGKObkiFm+ixS1maolerBIYw5iZLpIx JmY840vSqMbnjLGNsXkjHB3DxjkWRY52XEwd81gqPqpnj360SyDNOgNIPxaSj4fMYyLtuMg5NhKO j2xjJNU4yTNWkoyXDGMmvbjJLXYSi5+sYiilOMonlpKJp0xiKo24yiE6thKIr+xhLHU4yxvWkoa3 lGEuX7hLFvYyhb80YTBHOEwQFrODx9RgMi+4zAo2c4LPhGA0GzhNBVbzgDnXJGA2A7hN/3Vzf9/E XzjrN875lRN+52xfOtW3zvO1k3zvDF88vTfP7dUTe/e0Xj6pt8/o9dN5/1wlXkCRN9DiFVR4BwVe Qn0nkoY69KEQjahEJ0rRilr0ohjNKEECAgA7 ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <000901bfe512$58f8b6d0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 11 MMF_DebugOnly: kPartDocClientData MMF_PageType: 0 MMF_Page: 0 AwAFAAAACgAAAEQAQgBWAEkAAAADAAAAAAAIAAQAAAA2AAAAIAAAAEQAZQBmAGEAdQBsAHQARgBv AG4AdABOAGEAbQBlAAAAAwAAAAAACAAgAAAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4A AAAUAAAARwBXAF8ATgBlAHgAdABJAEQAAAADAAAAAAADAB4AAAAKAAAAVABBAFMASwAAAAMAAAAA AAgABAAAADAAAAAKAAAAUwBDAFIATgAAAAMAAAAAAAgABgAAADIANgAAAAMAAAAAAAMAAAAAAAMA AAAAAAMAAAAAAAMAAQAAAAgAAABTAHgAMQAAAAMAAgAAABIAAABQAGEAZwBlAE4AYQBtAGUAAAAD AAAAAAAIAAgAAABQAEQAMgAAABYAAABQAGEAZwBlAEUAZgBmAGUAYwB0AAAAAwAAAAAACABqAAAA IAA8AFAARQB8ACAAPABUAFIAfABUAFIAYQAwAHwAVABSAGIAMgB8AFQAUgBjADIAfABUAFIAZAAx AHwAVABSAGUAMgB8AD4AfABQAEUAYQAxAHwAUABFAGIALQAxAC4AMAB8AD4AfAAAAAMAAQAAAAgA AABQAEQAMgAAAAMAAwAAABIAAABQAGEAZwBlAE4AYQBtAGUAAAADAAAAAAAIAAoAAABJAHgAMgA2 AAAAEgAAAFAAbwBsAHkAUABhAHQAaAAAAAMAAAAAAAgAsgAAADEALAA2ACwAMAAuADIAOAA2ADMA NgAxACwAMQAzADYALgA4ADYAMQAsADAALAAyADkAOQAsADUANgA5ACwAMgA5ADkALAA1ADYAOQAs ADAALAAwAC4AMgA4ADYAMwA2ADEALAAwACwAMAAuADIAOAA2ADMANgAxACwAMQAzADYALgA4ADYA MQAsADIALAAxADYANwA3ADcAMgAxADUALAAxACwAMAAsADEALAAwACwAAAAaAAAATgBvAEIAYQBj AGsAZwByAG8AdQBuAGQAAAADAAAAAAAIAAQAAAAxAAAAAwAAAAAAAwAAAAAAAwABAAAACgAAAFAA VAAyADkAAAADAAUAAAAWAAAARQB4AGkAdABFAGYAZgBlAGMAdAAAAAMAAAAAAAgAngAAACAAPABF AEUAfAAgADwAVABSAHwAVABSAGEAMAB8AFQAUgBiADIAfABUAFIAYwAyAHwAVABSAGQAMQB8AFQA UgBlADIAfABUAFIAZgA0AHwAPgB8AEUARQBhADAAfABFAEUAYgAwAHwARQBFAGMAMQAwADAAfABF AEUAZAAwAHwARQBFAGYAMAAuADAAfABFAEUAZwAwAHwAPgB8AAAAKAAAAFQAcgBhAHYAZQBsAEUA ZgBmAGUAYwB0AE8AcAB0AGkAbwBuAHMAAAADAAAAAAAIADwAAAAgADwAVABFAHwAVABFAGEAMAB8 AFQARQBiADIAfABUAEUAYwAwAHwAVABFAGQAMAAuADAAfAA+AHwAAAAeAAAARQBuAHQAcgBhAG4A YwBlAEUAZgBmAGUAYwB0AAAAAwAAAAAACACeAAAAIAA8AEUARQB8ACAAPABUAFIAfABUAFIAYQA5 AHwAVABSAGIAMgB8AFQAUgBjADIAfABUAFIAZAAxAHwAVABSAGUAMgB8AFQAUgBmADQAfAA+AHwA RQBFAGEAMQB8AEUARQBiADAAfABFAEUAYwAwAHwARQBFAGQAMQAwADAAfABFAEUAZgAwAC4AMAB8 AEUARQBnADAAfAA+AHwAAAAYAAAAQgB1AHQAdABvAG4ARQB2AGUAbgB0AAAAAwAAAAAACAD+AAAA IAA8AEIARQB8AEIARQBhADAAfABCAEUAYwB8AEIARQBkADAAfAAgADwAQwBQAHwAQwBQAGEATgBJ AEwAfABDAFAAYgB8AEMAUABjAHwAQwBQAGQAfABDAFAAZQB8AEMAUABmADAAfAA+AHwAIAA8AEMA UAB8AEMAUABhAE4ASQBMAHwAQwBQAGIAfABDAFAAYwB8AEMAUABkAHwAQwBQAGUAfABDAFAAZgAw AHwAPgB8ACAAPABDAFAAfABDAFAAYQBOAEkATAB8AEMAUABiAHwAQwBQAGMAfABDAFAAZAB8AEMA UABlAHwAQwBQAGYAMAB8AD4AfAA+AHwAAAAWAAAAUwBvAHUAbgBkAFAAYQB0AGgAcwAAAAMAAAAA AAgAGgAAACAAPABBAFIAfABBAFIAUwAwAHwAPgB8AAAA ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <000a01bfe512$58ffe2c0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 7 MMF_DebugOnly: kPartDocHTMLDesign MMF_PageType: 0 MMF_Page: 0 MMF_PageDynamic: 1  =20
 SHOP HERE FOR = YOUR PET'S=20 VALENTINE'S DAY GIFT
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <001701bfe512$5a3359b0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 11 MMF_DebugOnly: kPartDocClientData MMF_PageType: 0 MMF_Page: 1 AwAFAAAACgAAAEQAQgBWAEkAAAADAAAAAAAIAAIAAAAAACAAAABEAGUAZgBhAHUAbAB0AEYAbwBu AHQATgBhAG0AZQAAAAMAAAAAAAgAIAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBuAAAA CgAAAFQAQQBTAEsAAAADAAAAAAAIAAwAAAA4ADAAMAAwADcAAAAUAAAARwBXAF8ATgBlAHgAdABJ AEQAAAADAAAAAAAIAAYAAAAyADcAAAAKAAAAUwBDAFIATgAAAAMAAAAAAAgAAgAAAAAAAwAAAAAA AwAAAAAAAwAAAAAAAwAAAAAAAwABAAAACAAAAFMAeAA5AAAAAwACAAAAEgAAAFAAYQBnAGUATgBh AG0AZQAAAAMAAAAAAAgACgAAAFAARAAxADAAAAAWAAAAUABhAGcAZQBFAGYAZgBlAGMAdAAAAAMA AAAAAAgAagAAACAAPABQAEUAfAAgADwAVABSAHwAVABSAGEAMAB8AFQAUgBiADIAfABUAFIAYwAy AHwAVABSAGQAMQB8AFQAUgBlADIAfAA+AHwAUABFAGEAMQB8AFAARQBiAC0AMQAuADAAfAA+AHwA AAADAAEAAAAKAAAAUABEADEAMAAAAAMAAwAAABIAAABQAGEAZwBlAE4AYQBtAGUAAAADAAAAAAAI AAoAAABJAHgAMgA1AAAAEgAAAFAAbwBsAHkAUABhAHQAaAAAAAMAAAAAAAgAsgAAADEALAA2ACwA MAAuADIAOAA2ADMANgAxACwAMQAzADYALgA4ADYAMQAsADAALAAyADkAOQAsADUANgA5ACwAMgA5 ADkALAA1ADYAOQAsADAALAAwAC4AMgA4ADYAMwA2ADEALAAwACwAMAAuADIAOAA2ADMANgAxACwA MQAzADYALgA4ADYAMQAsADIALAAxADYANwA3ADcAMgAxADUALAAxACwAMAAsADEALAAwACwAAAAa AAAATgBvAEIAYQBjAGsAZwByAG8AdQBuAGQAAAADAAAAAAAIAAQAAAAxAAAAAwAAAAAAAwAAAAAA AwAAAAAA ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <001801bfe512$5a3359b0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 7 MMF_DebugOnly: kPartDocHTMLDesign MMF_PageType: 0 MMF_Page: 1 MMF_NavBarCellText: Page 2  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <001901bfe512$5a35cab0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 11 MMF_DebugOnly: kPartDocClientData MMF_PageType: 0 MMF_Page: 2 AwAFAAAACgAAAEQAQgBWAEkAAAADAAAAAAAIAAIAAAAAACAAAABEAGUAZgBhAHUAbAB0AEYAbwBu AHQATgBhAG0AZQAAAAMAAAAAAAgAIAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBuAAAA CgAAAFQAQQBTAEsAAAADAAAAAAAIAAwAAAA4ADAAMAAwADcAAAAUAAAARwBXAF8ATgBlAHgAdABJ AEQAAAADAAAAAAAIAAYAAAAyADcAAAAKAAAAUwBDAFIATgAAAAMAAAAAAAgAAgAAAAAAAwAAAAAA AwAAAAAAAwAAAAAAAwAAAAAAAwABAAAACgAAAFMAeAAxADIAAAADAAIAAAASAAAAUABhAGcAZQBO AGEAbQBlAAAAAwAAAAAACAAKAAAAUABEADEAMwAAABYAAABQAGEAZwBlAEUAZgBmAGUAYwB0AAAA AwAAAAAACABqAAAAIAA8AFAARQB8ACAAPABUAFIAfABUAFIAYQAwAHwAVABSAGIAMgB8AFQAUgBj ADIAfABUAFIAZAAxAHwAVABSAGUAMgB8AD4AfABQAEUAYQAxAHwAUABFAGIALQAxAC4AMAB8AD4A fAAAAAMAAQAAAAoAAABQAEQAMQAzAAAAAwADAAAAEgAAAFAAYQBnAGUATgBhAG0AZQAAAAMAAAAA AAgACgAAAEkAeAAyADQAAAASAAAAUABvAGwAeQBQAGEAdABoAAAAAwAAAAAACACyAAAAMQAsADYA LAAwAC4AMgA4ADYAMwA2ADEALAAxADMANgAuADgANgAxACwAMAAsADIAOQA5ACwANQA2ADkALAAy ADkAOQAsADUANgA5ACwAMAAsADAALgAyADgANgAzADYAMQAsADAALAAwAC4AMgA4ADYAMwA2ADEA LAAxADMANgAuADgANgAxACwAMgAsADEANgA3ADcANwAyADEANQAsADEALAAwACwAMQAsADAALAAA ABoAAABOAG8AQgBhAGMAawBnAHIAbwB1AG4AZAAAAAMAAAAAAAgABAAAADEAAAADAAAAAAADAAAA AAADAAAAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <001a01bfe512$5a35cab0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 7 MMF_DebugOnly: kPartDocHTMLDesign MMF_PageType: 0 MMF_Page: 2 MMF_NavBarCellText: Page 3  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <001b01bfe512$5a35cab0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 11 MMF_DebugOnly: kPartDocClientData MMF_PageType: 0 MMF_Page: 3 AwAFAAAACgAAAEQAQgBWAEkAAAADAAAAAAAIAAIAAAAAACAAAABEAGUAZgBhAHUAbAB0AEYAbwBu AHQATgBhAG0AZQAAAAMAAAAAAAgAIAAAAFQAaQBtAGUAcwAgAE4AZQB3ACAAUgBvAG0AYQBuAAAA FAAAAEcAVwBfAE4AZQB4AHQASQBEAAAAAwAAAAAACAAGAAAAMgA3AAAACgAAAFQAQQBTAEsAAAAD AAAAAAAIAAwAAAA4ADAAMAAwADcAAAAKAAAAUwBDAFIATgAAAAMAAAAAAAgAAgAAAAAAAwAAAAAA AwAAAAAAAwAAAAAAAwAAAAAAAwABAAAACgAAAFMAeAAxADUAAAADAAIAAAASAAAAUABhAGcAZQBO AGEAbQBlAAAAAwAAAAAACAAKAAAAUABEADEANgAAABYAAABQAGEAZwBlAEUAZgBmAGUAYwB0AAAA AwAAAAAACABqAAAAIAA8AFAARQB8ACAAPABUAFIAfABUAFIAYQAwAHwAVABSAGIAMgB8AFQAUgBj ADIAfABUAFIAZAAxAHwAVABSAGUAMgB8AD4AfABQAEUAYQAxAHwAUABFAGIALQAxAC4AMAB8AD4A fAAAAAMAAQAAAAoAAABQAEQAMQA2AAAAAwADAAAAEgAAAFAAYQBnAGUATgBhAG0AZQAAAAMAAAAA AAgACgAAAEkAeAAyADMAAAASAAAAUABvAGwAeQBQAGEAdABoAAAAAwAAAAAACACyAAAAMQAsADYA LAAwAC4AMgA4ADYAMwA2ADEALAAxADMANgAuADgANgAxACwAMAAsADIAOQA5ACwANQA2ADkALAAy ADkAOQAsADUANgA5ACwAMAAsADAALgAyADgANgAzADYAMQAsADAALAAwAC4AMgA4ADYAMwA2ADEA LAAxADMANgAuADgANgAxACwAMgAsADEANgA3ADcANwAyADEANQAsADEALAAwACwAMQAsADAALAAA ABoAAABOAG8AQgBhAGMAawBnAHIAbwB1AG4AZAAAAAMAAAAAAAgABAAAADEAAAADAAAAAAADAAAA AAADAAAAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <001c01bfe512$5a35cab0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 7 MMF_DebugOnly: kPartDocHTMLDesign MMF_PageType: 0 MMF_Page: 3 MMF_NavBarCellText: Page 4 MMF_PageDynamic: 0  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <002901bfe512$5af486d0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 8 MMF_DebugOnly: kPartDocCIDReferences MMF_PageType: 0 MMF_Page: 0 AwABAAAAagAAAGMAaQBkADoAMAAwADAANgAwADEAYgBlAGMAZQA0AGEAJAAxAGEAZAA2ADAAZAAx ADAAJABhAGYAMQA0ADMANwA5AGQAQABkAG4AcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0A AAADAAEAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <002e01bfe512$5b02deb0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 8 MMF_DebugOnly: kPartDocCIDReferences MMF_PageType: 0 MMF_Page: 1 AwABAAAAagAAAGMAaQBkADoAMAAwADAANgAwADEAYgBlAGMAZQA0AGEAJAAxAGEAZAA2ADAAZAAx ADAAJABhAGYAMQA0ADMANwA5AGQAQABkAG4AcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0A AAADAAEAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <003301bfe512$5b110f80$1215379d@redmond.corp.microsoft.com> MMF_PartType: 8 MMF_DebugOnly: kPartDocCIDReferences MMF_PageType: 0 MMF_Page: 2 AwABAAAAagAAAGMAaQBkADoAMAAwADAANgAwADEAYgBlAGMAZQA0AGEAJAAxAGEAZAA2ADAAZAAx ADAAJABhAGYAMQA0ADMANwA5AGQAQABkAG4AcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0A AAADAAEAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <003801bfe512$5b21d860$1215379d@redmond.corp.microsoft.com> MMF_PartType: 8 MMF_DebugOnly: kPartDocCIDReferences MMF_PageType: 0 MMF_Page: 3 AwABAAAAagAAAGMAaQBkADoAMAAwADAANgAwADEAYgBlAGMAZQA0AGEAJAAxAGEAZAA2ADAAZAAx ADAAJABhAGYAMQA0ADMANwA5AGQAQABkAG4AcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0A AAADAAEAAAA= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-ID: <003901bfe512$5b21d860$1215379d@redmond.corp.microsoft.com> MMF_PartType: 13 MMF_DebugOnly: kPartProjBlankHTMLDoc ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <003a01bfe512$5b21d860$1215379d@redmond.corp.microsoft.com> MMF_PartType: 14 MMF_DebugOnly: kPartProjMainDocHTMLDesign ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <004901bfe512$5b9b7530$1215379d@redmond.corp.microsoft.com> MMF_PartType: 21 MMF_DebugOnly: kPartProjThumbnail /9j/4AAQSkZJRgABAAEAlgCWAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE AAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAgIDAgICAwQDAwMDBAQEAgME BAQEBAMEBAMBAgICAgICAgICAgMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMDA//EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEB AQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK 0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5 usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAGEA0AMBEQACEQEDEQH/ 2gAMAwEAAhEDEQA/AP3S8a+IJPC3hjVdfjSFzpkH2hluJY7eARow8xpp5WVIY1TczSOyqoUliACR Mm1ZJ2u0hr8jw7/hoCxH/MS8IfT/AIS3wv8A/LrFFpL7X4INOxq/B7442nxc/toWNv8AY28PeKfF HhXUrdzDKJn0C61C1t9V066gmdL7R9QitopoLuLMTOl1bq8j2kjUnzRaV7p36Log0ttaxU8Ox6jH rmvSXuuXmppdTefb2dzBbRQ2EazNGkVi1qoZ7dY1jJN0zzGWaVw/lyCKD1+N4qORYW2HVJc7tL3b /wAP4XZJ+fVaehy8OuX9qu9Tm2srP+bfd/ozsPDuma54i02TVItV0qwi/tfxDp0Vq+h3l26RaJ4g 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 eCMo3luDcadP2TUKSmoxVSqkueaqSdlNXl7SMZxk7yjKMZRacVaaXGvEtGvi8VDH03iMbPD1K1Se CwNSc3hcNPB0Y81TDScaSwlSrhqlGHLRr0KtWlXhUhVqKUa+BfCXhzSvELaXp01hBf6HqljeRQ6n q0kCafPd65rU1tZWs188WnxLf67q0kS2iQiFboRQ7IYoo49MPgsNhJSlh6fs3JOLXPNxS9pOraMZ ScYpTqTaUUlFS5VaKSXHm/E2d57So0c1xixcaE41IyeHw1Oq6kcJhcD7SrWpUYVq1SWGwWGhUnWn OVWVL21RyrTqVJy/DSHyPBGhIZJZpHjvbi4lnu57+eS7utSvLq8e4vrmaWa7uGuppjJNK+93LMyo SUXqPBO6oAKACgAoAKACgDhfiN/yK/8A3Mfgj/1NvD1cOZf7hi/+vUvyOvA/75hv+vkfzLPj2PUZ fCuqRaQ23U2jQWX7y2iJuBIpREkvSIEkbG1TMQm5huIHNdc7JRvsmjlWnlY8J8v4g/8AQNvxj/p9 +H/b2/tCp/dL7K0/u/8AAH73f8TT+DkXxPgm1aL4mQ6Qsy+LfFUvhifTZtJkuJfCF1JqU/h231X+ zJXX+17WyYwzsixwlPsqr5sqTSuvc5o8qStfZW6Bqk/KxZ0X/kNX3/Xu2PbFwlfQ8ef8iDCf9ff/ AHEzh4c0zZ9LRX/pR6d8NP8AkVf+5n8ef+p34kr5PKP+Rdhf8L/9KkezmP8AvuI/xL/0lHe16JxB QAUAFABQB5Hpvwe0jSUvo7HxN4xgW/uheSrBf6RZxJc/YLSwkuBb2GhwQz3kwsop57u5jnubmcmS 4mlwgQ2DY1D8NbU7MeLfHSlSSzL4gXzJAVKhHlayL+WoOAisq7B5WPKJjYAX/hWtmHLf8JT41CkI BCNciWEFSSW8tbABmYErl920M4Tb5sm8AaPhpaiNU/4S7x0GUofOGvxrMAhBKxstgBbKxBOIFi2s xdNkh3UAUNK+EljpNlBYxeMfHk0cH2n5pNY022MpubmS5zLFpui2sGImk2oiQomI42dXljWQGwbF /wD4VpabHT/hLPG43Ftjf23ARBuYkeTCdOMSEAhSfLJdUQSF9ooAU/DW0yn/ABVfjkFGJdv7fVpJ wQRtuJmsjJKvPzZfLjKuWR3VwCvdfCyyu7S9s38XeO447y2mti0OuwI9uJ4PIM8KnTTGbpcs6SzR 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 QAUAFABQAUAFABQAUAFABQAUAFABQAUAf//Z ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <005701bfe512$7b0c7810$1215379d@redmond.corp.microsoft.com> MMF_PartType: 11 MMF_DebugOnly: kPartDocClientData MMF_PageType: 1 MMF_Page: 0 AwACAAAAFAAAAEcAVwBfAE4AZQB4AHQASQBEAAAAAwAAAAAAAwALAAAAGgAAAE4AYQB2AFMAYwBl AG4AZQBOAGEAbQBlAAAAAwAAAAAACAAIAAAAUwB4ADUAAAADAAAAAAADAAAAAAADAAAAAAADAAEA AAAIAAAAUwB4ADUAAAADAAEAAAASAAAAUABhAGcAZQBOAGEAbQBlAAAAAwAAAAAACAAIAAAAUABE ADYAAAADAAEAAAAIAAAAUABEADYAAAADAAUAAAASAAAAUABhAGcAZQBOAGEAbQBlAAAAAwAAAAAA CAAIAAAASQB4ADgAAAASAAAAUABvAGwAeQBQAGEAdABoAAAAAwAAAAAACAD2AAAAMQAsADYALAA1 AC4AMAAzADIANwA3AGUALQAwADEAMQAsADQALgA1ADcANwAyADkAZQAtADAAMAA4ACwAMAAsADEA ZQAtADAAMAA3ACwAMQBlAC0AMAAwADcALAAxAGUALQAwADAANwAsADEAZQAtADAAMAA3ACwAMAAs ADUALgAwADMAMgA3ADcAZQAtADAAMQAxACwAMAAsADUALgAwADMAMgA3ADcAZQAtADAAMQAxACwA NAAuADUANwA3ADIAOQBlAC0AMAAwADgALAAyACwAMQA2ADcANwA3ADIAMQA1ACwAMQAsADAALAAx ACwAMAAsAAAAGgAAAFMAdAByAGUAdABjAGgAVABvAEYAaQB0AAAAAwAAAAAAAwAAAAAAGgAAAEMA bABpAHAAUABhAHQAaABJAG4AZgBvAAAAAwAAAAAACABIAAAAIAA8AEMAUAB8AEMAUABhAE4ASQBM AHwAQwBQAGIAfABDAFAAYwB8AEMAUABkAHwAQwBQAGUAfABDAFAAZgAwAHwAPgB8AAAAGgAAAE4A bwBCAGEAYwBrAGcAcgBvAHUAbgBkAAAAAwAAAAAAAwABAAAAAwAAAAAAAwAAAAAAAwABAAAACAAA AFAATgA5AAAAAwAPAAAAEAAAAEMAWABIAG8AdgBlAHIAAAADAAAAAAADADsAAAAWAAAAQwBYAFMA ZQBsAGUAYwB0AGUAZAAAAAMAAAAAAAMAOwAAAA4AAABOAGEAdgBCAGEAcgAAAAMAAAAAAAgAGAAA AFMAdAByAGUAYQBtAGwAaQBuAGUAZAAAABgAAABDAFAASQBTAGUAbABlAGMAdABlAGQAAAADAAAA AAAIAAYBAAAgADwAQwBQAHwAQwBQAGEATgBJAEwAfABDAFAAYgBjADoAXAB0AGUAbQBwAFwAYwBw AGkANgA0AC4AZwBpAGYAfABDAFAAYwBjAGkAZAA6ADAAMAA5ADMAMAAxAGIAZgBlADUAMQAyACQA NwBiAGMAYgAzADQAMwAwACQAMQAyADEANQAzADcAOQBkAEAAcgBlAGQAbQBvAG4AZAAuAGMAbwBy AHAALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAHwAQwBQAGQAYwA6AFwAdABlAG0AcABcAGMA cABpADYANAAuAGcAaQBmAHwAQwBQAGUAfABDAFAAZgAwAHwAPgB8AAAABgAAAEMAWAAAAAMAAAAA AAMAMgAAABQAAABDAFAASQBOAG8AcgBtAGEAbAAAAAMAAAAAAAgABgEAACAAPABDAFAAfABDAFAA YQBOAEkATAB8AEMAUABiAGMAOgBcAHQAZQBtAHAAXABjAHAAaQA2ADIALgBnAGkAZgB8AEMAUABj AGMAaQBkADoAMAAwADgAZgAwADEAYgBmAGUANQAxADIAJAA3AGIAYwA0ADAAOAA0ADAAJAAxADIA MQA1ADMANwA5AGQAQAByAGUAZABtAG8AbgBkAC4AYwBvAHIAcAAuAG0AaQBjAHIAbwBzAG8AZgB0 AC4AYwBvAG0AfABDAFAAZABjADoAXAB0AGUAbQBwAFwAYwBwAGkANgAyAC4AZwBpAGYAfABDAFAA ZQB8AEMAUABmADAAfAA+AHwAAAAGAAAAQwBZAAAAAwAAAAAAAwAyAAAAEgAAAEMAUABJAEgAbwB2 AGUAcgAAAAMAAAAAAAgABgEAACAAPABDAFAAfABDAFAAYQBOAEkATAB8AEMAUABiAGMAOgBcAHQA ZQBtAHAAXABjAHAAaQA2ADMALgBnAGkAZgB8AEMAUABjAGMAaQBkADoAMAAwADkAMQAwADEAYgBm AGUANQAxADIAJAA3AGIAYwA4AGMAMwAzADAAJAAxADIAMQA1ADMANwA5AGQAQAByAGUAZABtAG8A bgBkAC4AYwBvAHIAcAAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0AfABDAFAAZABjADoAXAB0 AGUAbQBwAFwAYwBwAGkANgAzAC4AZwBpAGYAfABDAFAAZQB8AEMAUABmADAAfAA+AHwAAAAaAAAA TgBhAHYAQgBhAHIATABhAHkAbwB1AHQAAAADAAAAAAADAAIAAAASAAAAQwBYAE4AbwByAG0AYQBs AAAAAwAAAAAAAwA7AAAADgAAAFAAbABhAHkAZQByAAAAAwAAAAAACAAIAAAAUABOADkAAAASAAAA QwBZAE4AbwByAG0AYQBsAAAAAwAAAAAAAwATAAAAFgAAAEMAWQBTAGUAbABlAGMAdABlAGQAAAAD AAAAAAADABMAAAAkAAAATgBhAHYAQgBhAHIATwByAGkAZQBuAHQAYQB0AGkAbwBuAAAAAwAAAAAA AwABAAAAEAAAAEMAWQBIAG8AdgBlAHIAAAADAAAAAAADABMAAAADAAAAAAADAAEAAAAIAAAAUwB4 ADEAAAADAAEAAAASAAAAUABhAGcAZQBOAGEAbQBlAAAAAwAAAAAACAAIAAAAUABEADIAAAADAAEA AAAIAAAAUABEADIAAAADAAUAAAASAAAAUABhAGcAZQBOAGEAbQBlAAAAAwAAAAAACAAIAAAASQB4 ADQAAAASAAAAUABvAGwAeQBQAGEAdABoAAAAAwAAAAAACACyAAAAMQAsADYALAAwAC4AMgA4ADYA MwA2ADEALAAxADMANgAuADgANgAxACwAMAAsADIAOQA5ACwANQA2ADkALAAyADkAOQAsADUANgA5 ACwAMAAsADAALgAyADgANgAzADYAMQAsADAALAAwAC4AMgA4ADYAMwA2ADEALAAxADMANgAuADgA NgAxACwAMgAsADEANgA3ADcANwAyADEANQAsADEALAAwACwAMQAsADAALAAAABoAAABTAHQAcgBl AHQAYwBoAFQAbwBGAGkAdAAAAAMAAAAAAAMAAAAAABoAAABDAGwAaQBwAFAAYQB0AGgASQBuAGYA bwAAAAMAAAAAAAgASAAAACAAPABDAFAAfABDAFAAYQBOAEkATAB8AEMAUABiAHwAQwBQAGMAfABD AFAAZAB8AEMAUABlAHwAQwBQAGYAMAB8AD4AfAAAABoAAABOAG8AQgBhAGMAawBnAHIAbwB1AG4A ZAAAAAMAAAAAAAMAAQAAAAMAAAAAAAMAAAAAAAMAAAAAAA== ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <005801bfe512$7b0c7810$1215379d@redmond.corp.microsoft.com> MMF_PartType: 7 MMF_DebugOnly: kPartDocHTMLDesign MMF_PageType: 1 MMF_Page: 0
Page 1
Page 2
Page 3
Page 4
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <008f01bfe512$7bc40840$1215379d@redmond.corp.microsoft.com> MMF_PartType: 5 MMF_DebugOnly: kPartProjContent MMF_Dehydrate: 0 R0lGODlhOwATAPf/AAAAAIAAAACAAICAAAAAgIAAgACAgMDAwAAAAAAAAAQEBAgICAwMDBERERYW FhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs/+/Wxufn1q2pkDMAAGYAAJkAAMwAAAAz ADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPM AGbMAJnMAMzMAP/MAGb/AJn/AMz/AAAAMzMAM2YAM5kAM8wAM/8AMwAzMzMzM2YzM5kzM8wzM/8z MwBmMzNmM2ZmM5lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/ M2b/M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZm ZplmZsxmZgCZZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZpnMZszMZv/MZgD/ZjP/Zpn/Zsz/Zv8AzMwA /wCZmZkzmZkAmcwAmQAAmTMzmWYAmcwzmf8AmQBmmTNmmWYzmZlmmcxmmf8zmTOZmWaZmZmZmcyZ mf+ZmQDMmTPMmWbMZpnMmczMmf/MmQD/mTP/mWbMmZn/mcz/mf//mQAAzDMAmWYAzJkAzMwAzAAz mTMzzGYzzJkzzMwzzP8zzABmzDNmzGZmmZlmzMxmzP9mmQCZzDOZzGaZzJmZzMyZzP+ZzADMzDPM zGbMzJnMzMzMzP/MzAD/zDP/zGb/mZn/zMz/zP//zDMAzGYA/5kA/wAzzDMz/2Yz/5kz/8wz//8z /wBm/zNm/2ZmzJlm/8xm//9mzACZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM/zPM/2bM/5nM/8zM///M/zP/ /2b/zJn//8z///9mZmb/Zv//ZmZm//9m/2b//6UAIV9fX3d3d4aGhpaWlsvLy7KystfX193d3ePj 4+rq6vHx8fj4+AAAAKCgpICAgP8AAP//////AAAA//8A/wD//////ywAAAAAOwATAEAI/wD1SXrn Dl68gwgTKlzIsGFCefLmSYQoL15EifrYSbr37oA7dx4/ghQZcuTHkiZHelyZ0h2AlxHUtVnXxmJF Sexy5mzHs6fPn0CDCv35EujAjm3YtdvY8YDTp1CjSp1KFSoACvjuzYMYD55XePc4upNH75/Zs2jT ql3LNu3LtwDULn1H0KDDu3jvVlhHr6/EvxLd5dzIka7hw4gTK16M+CXWjRW/8pp7gNdFeoAxA948 T7NEz6A7i/4LF27fvu3w4VO6sbXr1vckyYb9OjZt27Fzy4arOyxddvraCB9OvLjx48iTKxcevG7E 51ujQ58uvTp16p9P+81OD95cgrzCi6UfT768+fPj4T1Q1+5vRZvx3u0szLi+/foAHrRpd++9V17u 4PTdAR3RReCBBSKooIEJNohggS8xoI5S7PgHj2xi2eXQexbl5SFcEVQgYgV/MXUAPPTUo+I/9bDY 4ossxqgijCvO6OKMNbJY2ks5trPOaqzNJuSQRBZpZJGlzUafj0AuJYmTREI5m5RRVjnbW08KWdg6 OnXp5ZdghinmmDrxd0AbAQEAOw== ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <009101bfe512$7bc8c330$1215379d@redmond.corp.microsoft.com> MMF_PartType: 5 MMF_DebugOnly: kPartProjContent MMF_Dehydrate: 0 R0lGODlhOwATAPf/AAAAAIAAAACAAICAAAAAgIAAgACAgMDAwAAAAAAAAAQEBAgICAwMDBERERYW FhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs/+/Wxufn1q2pkDMAAGYAAJkAAMwAAAAz ADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPM AGbMAJnMAMzMAP/MAGb/AJn/AMz/AAAAMzMAM2YAM5kAM8wAM/8AMwAzMzMzM2YzM5kzM8wzM/8z MwBmMzNmM2ZmM5lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/ M2b/M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZm ZplmZsxmZgCZZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZpnMZszMZv/MZgD/ZjP/Zpn/Zsz/Zv8AzMwA /wCZmZkzmZkAmcwAmQAAmTMzmWYAmcwzmf8AmQBmmTNmmWYzmZlmmcxmmf8zmTOZmWaZmZmZmcyZ mf+ZmQDMmTPMmWbMZpnMmczMmf/MmQD/mTP/mWbMmZn/mcz/mf//mQAAzDMAmWYAzJkAzMwAzAAz mTMzzGYzzJkzzMwzzP8zzABmzDNmzGZmmZlmzMxmzP9mmQCZzDOZzGaZzJmZzMyZzP+ZzADMzDPM zGbMzJnMzMzMzP/MzAD/zDP/zGb/mZn/zMz/zP//zDMAzGYA/5kA/wAzzDMz/2Yz/5kz/8wz//8z /wBm/zNm/2ZmzJlm/8xm//9mzACZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM/zPM/2bM/5nM/8zM///M/zP/ /2b/zJn//8z///9mZmb/Zv//ZmZm//9m/2b//6UAIV9fX3d3d4aGhpaWlsvLy7KystfX193d3ePj 4+rq6vHx8fj4+AAAAKCgpICAgP8AAP//////AAAA//8A/wD//////ywAAAAAOwATAEAI/wD1CRxI sKDBgwgTKjQIoQIFCRAjSpxIsaJFiAAyOqgwQUKbj+o+RiD44AGECChTqlzJsqXLCENgyoxJk8IE dQAIRngY8qPPn0CDCh1KtM26o+smEKygbh07SVCjSp1KtapVSRmzagXQAOrIgQCMrsNHtqzZs2jT ql2Lj51bdutIRnA4oa7du3jz6t07AcBGdW2fQmUXcgjBITeRKl7MuLHjxVu5QhhCmexXgQ5ODqnA ubPnz6BDi64QeWtdCAVLq17NurVqg4kfy55NW3FgdgWHSGhau7dv22/VEWxo86Lx4xUdUGjKrp2k e9AlfaxAcrPN6xOwa8/Ofbv37n39LmdvExjfOnXqLuuDYBN9G/Qh47+fLz+++/r06Wtl8GBnXQpH qceUU+0UaOCBCCao4ILtlLZAfxEUqF5mMFFm4YUYZqjhhpS11tGE/XEo4ogbejgBA8NBoOKKLLbo 4oswxtjiZhLkpE9AADs= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-ID: <009301bfe512$7bcb3430$1215379d@redmond.corp.microsoft.com> MMF_PartType: 5 MMF_DebugOnly: kPartProjContent MMF_Dehydrate: 0 R0lGODlhOwATAPf/AAAAAIAAAACAAICAAAAAgIAAgACAgMDAwAAAAAAAAAQEBAgICAwMDBERERYW FhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs/+/Wxufn1q2pkDMAAGYAAJkAAMwAAAAz ADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPM AGbMAJnMAMzMAP/MAGb/AJn/AMz/AAAAMzMAM2YAM5kAM8wAM/8AMwAzMzMzM2YzM5kzM8wzM/8z MwBmMzNmM2ZmM5lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/ M2b/M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZm ZplmZsxmZgCZZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZpnMZszMZv/MZgD/ZjP/Zpn/Zsz/Zv8AzMwA /wCZmZkzmZkAmcwAmQAAmTMzmWYAmcwzmf8AmQBmmTNmmWYzmZlmmcxmmf8zmTOZmWaZmZmZmcyZ mf+ZmQDMmTPMmWbMZpnMmczMmf/MmQD/mTP/mWbMmZn/mcz/mf//mQAAzDMAmWYAzJkAzMwAzAAz mTMzzGYzzJkzzMwzzP8zzABmzDNmzGZmmZlmzMxmzP9mmQCZzDOZzGaZzJmZzMyZzP+ZzADMzDPM zGbMzJnMzMzMzP/MzAD/zDP/zGb/mZn/zMz/zP//zDMAzGYA/5kA/wAzzDMz/2Yz/5kz/8wz//8z /wBm/zNm/2ZmzJlm/8xm//9mzACZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM/zPM/2bM/5nM/8zM///M/zP/ /2b/zJn//8z///9mZmb/Zv//ZmZm//9m/2b//6UAIV9fX3d3d4aGhpaWlsvLy7KystfX193d3ePj 4+rq6vHx8fj4+AAAAKCgpICAgP8AAP//////AAAA//8A/wD//////ywAAAAAOwATAEAI/wD1ScB3 74C7AwYRHkzIcKFDhRAbRnzYkFe8i/oqSGiDr929jyBDihxJsuQ9AChTomwAYciQCu/eHZjg8iWF CThz6tzJs6fPnzolrMMnCUCFCUI7slvabqnTpk7ZQX0aVWpVqAAcVFA3FB8+dpIkNb0Xs00bdvfc zfvHtq3bt3Djyv2nsm7KBm2RrkOb0N1Bvwb/Cg5MGLDhwYcLC4YH7+K9ITe5Dp2Mj7Llypgva86c UmvOjWbVtZN0T2+7dxYvql7NurXr1/HsrmxZYYi8efMm0Eaqrrc6Cb6BB/dNXHhv48eJy7Y7lF0F fcujS59OXTZ0vrwYa9/Ovbv37+C5x77DLe8ABaFoY6pfz769+/cxHVDgKrWdfZDt/LrD93KC5K7r dOVVgF4NKGBlBxJYIIEoycdVGwEuVZlHpR3FlVJNZWiVhhxu6GGHGarEwAMkRnDTBBSQ9Q5SHEkS mH4wxijjjDT6tRxLLlWgnX9EHTBPPUAGKeSQRBZpZD3RLfAABBEEqVsEFdwkwZRUVmnllVhmKUF1 zT0JGVJahinmldVBiI9WL71UwZpstulmmrWtCaecccapppt4HnUWAAEBADs= ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: base64 Content-ID: <009a01bfe512$87506c30$1215379d@redmond.corp.microsoft.com> MMF_PartType: 8 MMF_DebugOnly: kPartDocCIDReferences MMF_PageType: 1 MMF_Page: 0 AwADAAAAfAAAAGMAaQBkADoAMAAwADgAZgAwADEAYgBmAGUANQAxADIAJAA3AGIAYwA0ADAAOAA0 ADAAJAAxADIAMQA1ADMANwA5AGQAQAByAGUAZABtAG8AbgBkAC4AYwBvAHIAcAAuAG0AaQBjAHIA bwBzAG8AZgB0AC4AYwBvAG0AAAADAAEAAAB8AAAAYwBpAGQAOgAwADAAOQAzADAAMQBiAGYAZQA1 ADEAMgAkADcAYgBjAGIAMwA0ADMAMAAkADEAMgAxADUAMwA3ADkAZABAAHIAZQBkAG0AbwBuAGQA LgBjAG8AcgBwAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAAAAMAAQAAAHwAAABjAGkAZAA6 ADAAMAA5ADEAMAAxAGIAZgBlADUAMQAyACQANwBiAGMAOABjADMAMwAwACQAMQAyADEANQAzADcA OQBkAEAAcgBlAGQAbQBvAG4AZAAuAGMAbwByAHAALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBt AAAAAwABAAAA ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-ID: <009b01bfe512$8752b620$1215379d@redmond.corp.microsoft.com> MMF_PartType: 18 MMF_DebugOnly: kPartEmptyHTML ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-ID: <009c01bfe512$8752b620$1215379d@redmond.corp.microsoft.com> MMF_PartType: 17 MMF_DebugOnly: kPartProjData
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <00ed01bfe512$97a63f10$1215379d@redmond.corp.microsoft.com> MMF_PartType: 1 MMF_DebugOnly: kPartProjScriptIE var OBJ_SCENE =3D 0; =09 var OBJ_PLAYER =3D 1; =09 var PLAYER_IMAGE =3D 0; =09 var PLAYER_TEXT =3D 1; =09 var PLAYER_DRAW =3D 2; =09 var NAME_SCENE =3D "S" =09 var NAME_PLAYER =3D "P" =09 var PLAYER_NAME_IMAGE =3D "I" =09 var PLAYER_NAME_TEXT =3D "T" var PLAYER_NAME_DRAW =3D "D" var IE_VISIBLE =3D "visible"; var IE_HIDDEN =3D "hidden"; var IE_INHERIT =3D "inherit"; var DUR_FOREVER =3D -1; =09 var DEFAULT_PLAYER_DELAY =3D 0; =09 var DELAY_NONE =3D 0; =09 var DELAY_UNTIL_TRANSITION =3D -1; =09 var DELAY_UNTIL_TRIGGER =3D -2; =09 var DUR_UNTIL_DONE =3D -1; =09 var TT_ALL_MOUSE_EVENTS =3D 0; =09 var TT_BUTTONDOWN =3D 1; =09 var TT_BUTTONUP =3D 2; =09 var TT_MOUSEOVER =3D 3; =09 var TT_MOUSEOUT =3D 4; =09 var TB_PAGE_TURNER =3D -1; =09 var TB_START_PLAYER =3D -2; =09 var NULL_TRANSITION =3D -1; var TEXT_FLYIN =3D 101; var TEXT_TYPEWRITER =3D 102; var TRANS_FADE =3D 103; var FLYIN_TOP =3D 0; var FLYIN_BOTTOM =3D 1; var FLYIN_LEFT =3D 2; var FLYIN_RIGHT =3D 3; var FLYIN_ROTATE =3D 4; var FLYIN_BY_LETTER =3D 1; var FLYIN_BY_WORD =3D 2; var FLYIN_BY_LINE =3D 3; var FLYIN_PER_TICK =3D new Array (200, 160, 120, 80, 40); =09 var TRANSITION_RATES =3D new Array(1,2,3,4,5); =09 var k_iDefaultSceneDuration =3D 10000; =20 g_utilDoc =3D parent.parent ; window.onload =3D OnLoad; window.onerror =3D g_utilDoc.OnError; function OnLoad () { =20 InitScene ();=20 StartScene (); } function InitBehaviors (obj) { var bhvIdx =3D 0; if (obj.Bhv !=3D null) { var bhv; for (; (bhv =3D obj.Bhv[bhvIdx]) !=3D null; bhvIdx++) bhv.Init (obj, bhv); } obj.numBhv =3D bhvIdx;=20 } function StartBehaviors (obj) { if (obj.Bhv !=3D null) { var bhv; for (var bhvIdx =3D 0; bhvIdx < obj.numBhv; bhvIdx++) { bhv =3D obj.Bhv[bhvIdx]; if (bhv !=3D null)=20 { if (null =3D=3D bhv.delay || DELAY_NONE =3D=3D bhv.delay) bhv.Start (bhv); else if (bhv.delay > 0) g_utilDoc.StartOneShotTimer (bhv, bhv.delay, bhv.Start, = g_utilDoc.TMR_SCENE); } } } } function StopBehaviors (obj) { if (obj.Bhv !=3D null) { var bhv; for (var bhvIdx =3D 0; bhvIdx < obj.numBhv; bhvIdx++) { bhv =3D obj.Bhv[bhvIdx]; if (bhv !=3D null)=20 bhv.StopEverything (bhv); } } } function Scene (duration, name) { this.duration =3D duration; this.name =3D name; } function InitScene () { DocScene.HTML =3D document.all[DocScene.name]; =20 DocScene.HTML.style.visibility =3D IE_HIDDEN; =20 if (null =3D=3D DocScene.duration) DocScene.duration =3D k_iDefaultSceneDuration; InitPlayers ();=20 if (null =3D=3D DocScene.entryTrans) { DocScene.entryTrans =3D new Object(); DocScene.entryTrans.type =3D NULL_TRANSITION; } else if (DocScene.entryTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (DocScene)) DocScene.entryTrans.type =3D null; } InitBehaviors (DocScene); } function SceneExit (objScene) { g_utilDoc.DocSceneExit (); } function StartScene () { StartBehaviors (DocScene); StartScenePlayers ();=20 StartTransition (DocScene, DocScene.entryTrans, IE_VISIBLE, = SceneTransitionDone); if (DocScene.duration !=3D DUR_FOREVER) g_utilDoc.StartOneShotTimer (DocScene, DocScene.duration, SceneExit, = g_utilDoc.TMR_SCENE); } function StopEverythingOnScene () { StopBehaviors (DocScene) StopEverythingOnPlayers (); } function SceneTransitionDone (objScene) { if ( DocScene.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx< DocScene.numBhv; bhvIdx++ )=09 { var bhv =3D DocScene.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 bhv.Start( bhv ); =09 } StartScenePlayersAfterTransition ();=09 } function Player( delay, duration ) { this.delay =3D delay; this.duration =3D duration; } function ShowAllPlayers () { var objPlayer =3D null; for (playerName in DocScene.Players) { objPlayer =3D DocScene.Players[playerName].HTML; objPlayer.style.visibility =3D IE_VISIBLE; if (null !=3D objPlayer.filters["alpha"])=20 objPlayer.filters["alpha"].Opacity =3D 100; } } function InitPlayers () { var objPlayer; =09 var playerNumber =3D 0; =09 for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 objPlayer.number =3D playerNumber; =09 objPlayer.name =3D playerName; =09 objPlayer.HTML =3D document.all[playerName]; =09 objPlayer.HTML.style.visibility =3D IE_HIDDEN; =09 objPlayer.position =3D new Position(objPlayer); =09 if ( objPlayer.delay =3D=3D null ) =09 objPlayer.delay =3D DEFAULT_PLAYER_DELAY; =09 if (objPlayer.entryTrans =3D=3D null) { objPlayer.entryTrans =3D new Object(); objPlayer.entryTrans.type =3D NULL_TRANSITION; } else if (objPlayer.entryTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (objPlayer)) objPlayer.entryTrans.type =3D null; =09 } else if (GetPlayerTypeFromName (objPlayer.name) =3D=3D PLAYER_TEXT) { if ( (objPlayer.entryTrans.type =3D=3D TEXT_FLYIN) || = (objPlayer.entryTrans.type =3D=3D TEXT_TYPEWRITER) ) if (false =3D=3D InitTextFlyin (objPlayer)) objPlayer.entryTrans.type =3D null; =09 } if ( objPlayer.exitTrans =3D=3D null ) { objPlayer.exitTrans =3D new Object(); objPlayer.exitTrans.type =3D NULL_TRANSITION; } else if (objPlayer.exitTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (objPlayer)) objPlayer.exitTrans.type =3D null; =09 } InitBehaviors (objPlayer); playerNumber ++; =09 }=09 } function StopEverythingOnPlayers () { var objPlayer; =09 for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 StopBehaviors (objPlayer) DisableTrigger( objPlayer ); =09 }=09 } function StartScenePlayers () { for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 if ( objPlayer.delay =3D=3D DELAY_NONE ) =09 StartPlayer( objPlayer ) =09 else if ( objPlayer.delay > 0 ) =09 g_utilDoc.StartOneShotTimer (objPlayer, objPlayer.delay, StartPlayer, = g_utilDoc.TMR_SCENE); } } function StartScenePlayersAfterTransition () { for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 if ( objPlayer.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 StartPlayer( objPlayer ) =09 } } function StartPlayer( objPlayer ) { StartBehaviors (objPlayer); StartTransition( objPlayer, objPlayer.entryTrans, IE_VISIBLE, = PlayerEntryTransitionDone ); if ( objPlayer.duration > 0 ) g_utilDoc.StartOneShotTimer (objPlayer, objPlayer.duration, PlayerExit, = g_utilDoc.TMR_SCENE); } function PlayerEntryTransitionDone( objPlayer ) { if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx < objPlayer.numBhv; bhvIdx++ )=09 { var bhv =3D objPlayer.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 bhv.Start( bhv ); =09 } if ( objPlayer.Triggers !=3D null ) EnableTrigger( objPlayer ); } function PlayerExit( objPlayer ) { StartTransition( objPlayer, objPlayer.exitTrans, IE_HIDDEN, = PlayerExitTransitionDone ); } function PlayerExitTransitionDone (objPlayer) { if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx < objPlayer.numBhv; bhvIdx++ )=09 { var bhv =3D objPlayer.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.duration =3D=3D DUR_UNTIL_DONE ) =09 bhv.Stop( bhv ); =09 } objPlayer.HTML.style.visibility =3D IE_HIDDEN; =20 if (objPlayer.HTML.Preview !=3D null) objPlayer.HTML.style.visibility =3D IE_VISIBLE;=20 } function Trigger( trigType, trigBhv, player, scene ) { if (g_utilDoc.g_fMac && TT_BUTTONUP =3D=3D trigType) trigType =3D TT_BUTTONDOWN; this.triggerType =3D trigType; this.triggerBhv =3D trigBhv; this.player =3D player; this.nextSceneNum =3D scene; } function EnableTrigger( objPlayer ) { objPlayer.HTML.style.cursor=3D"hand"; =09 for ( trx in objPlayer.Triggers ) =09 { var trigger =3D objPlayer.Triggers[trx]; =09 if ( trigger.triggerType =3D=3D null ) trigger.triggerType =3D 0; =09 var tt =3D trigger.triggerType; =09 if ( tt =3D=3D TT_ALL_MOUSE_EVENTS ) =09 { objPlayer.HTML.onmousedown =3D EventProcessor; objPlayer.HTML.onmouseup =3D EventProcessor;=09 objPlayer.HTML.onmouseover =3D EventProcessor; =09 objPlayer.HTML.onmouseout =3D EventProcessor; } else if ( tt =3D=3D TT_BUTTONDOWN ) =09 objPlayer.HTML.onmousedown =3D EventProcessor; else if ( tt =3D=3D TT_BUTTONUP ) =09 objPlayer.HTML.onmouseup =3D EventProcessor; else if ( tt =3D=3D TT_MOUSEOVER ) =09 objPlayer.HTML.onmouseover =3D EventProcessor; else if ( tt =3D=3D TT_MOUSEOUT ) =09 objPlayer.HTML.onmouseout =3D EventProcessor; } } function DisableTrigger( objPlayer ) { objPlayer.HTML.onmousedown =3D null; objPlayer.HTML.onmouseup =3D null;=09 objPlayer.HTML.onmouseover =3D null; =09 objPlayer.HTML.onmouseout =3D null; } function EventProcessor( e ) { var trigger; =09 var type; =09 var button; =09 var eventType; =09 var objPlayer; =09 if ( (objPlayer =3D GetPlayerFromName(this.id)) =3D=3D null)=09 return; type =3D event.type; button =3D event.button; if (type =3D=3D "mousedown") { if ( button !=3D 1 ) =09 return; eventType =3D TT_BUTTONDOWN; } else if (type =3D=3D "mouseup") { if ( button !=3D 1 ) =09 return; eventType =3D TT_BUTTONUP; } else if (type =3D=3D "mouseover") { eventType =3D TT_MOUSEOVER; } else if (type =3D=3D "mouseout") { eventType =3D TT_MOUSEOUT; } var triggerArray =3D objPlayer.Triggers; =09 var trigger; =09 for ( var trx=3D0; (trigger=3DtriggerArray[trx]) !=3D null; trx++ ) { if ( (trigger.triggerType =3D=3D 0) || (trigger.triggerType =3D=3D = eventType) ) { if ( trigger.triggerBhv =3D=3D TB_PAGE_TURNER ) { if ( (trigger.nextSceneNum =3D=3D null) || (trigger.nextSceneNum =3D=3D = "") ) g_utilDoc.DocSceneExit (); else g_utilDoc.DocSceneExit (parseInt (trigger.nextSceneNum)); } else if ( trigger.triggerBhv =3D=3D TB_START_PLAYER ) StartPlayer( GetPlayerFromName( trigger.player ) ); =09 else=20 { var objTrigPlayer =3D GetPlayerFromName( trigger.player ); =09 var bhv =3D objTrigPlayer.Bhv[trigger.triggerBhv]; =09 bhv.Trigger( bhv, eventType ); =09 } =09 } } } function Transition( type, rate, flyFrom, flySubtype ) { this.type =3D type; this.rate =3D rate; if (TRANS_FADE =3D=3D type) { this.startOpacity =3D flyFrom; this.endOpacity =3D flySubtype; } else { this.flyFrom =3D flyFrom; this.flySubtype =3D flySubtype; } } function StartTransition( transObj, trans, visibility, callback ) { var playerType =3D GetObjectTypeFromName( transObj.name ); =09 if ((playerType =3D=3D OBJ_PLAYER) && (trans.type =3D=3D = NULL_TRANSITION)) { transObj.HTML.style.visibility =3D visibility; callback( transObj ); return; } if ( ((trans.type =3D=3D TEXT_FLYIN) || (trans.type =3D=3D = TEXT_TYPEWRITER)) && (visibility =3D=3D IE_VISIBLE) ) { StartTextFlyin( transObj ); return; } if (trans.type =3D=3D TRANS_FADE) { StartFade (transObj, trans, callback); return; } if ( navigator.platform !=3D "Win32" ) { transObj.HTML.style.visibility =3D visibility; callback( transObj ); return; } if ( trans.type =3D=3D NULL_TRANSITION ) { if (g_utilDoc.g_iIEVersion < 5) { transObj.HTML.style.filter =3D "revealTrans(duration=3D0, = transition=3D0)"; } else { transObj.HTML.style.visibility =3D visibility; callback( transObj ); return; } } else =09 { duration =3D TRANSITION_RATES[trans.rate]; transObj.HTML.style.filter =3D "revealTrans(duration=3D" + duration + ", = transition=3D" + trans.type + ")"; } if (transObj.HTML.filters(0).Status !=3D 2) { transObj.HTML.filters(0).Apply(); =09 transObj.HTML.style.visibility =3D visibility; =20 transObj.HTML.filters(0).Play() =09 transObj.HTML.onfilterchange =3D TransitionDoneEvent;=09 } else transObj.HTML.style.visibility =3D visibility; =20 } function TransitionDoneEvent () { var type =3D GetObjectTypeFromName( event.srcElement.id ); =09 if ( type =3D=3D OBJ_SCENE ) { SceneTransitionDone (DocScene); } else if ( type =3D=3D OBJ_PLAYER ) =09 { var objPlayer =3D GetPlayerFromName( event.srcElement.id ); if ( this.style.visibility =3D=3D IE_VISIBLE ) =09 PlayerEntryTransitionDone( objPlayer ); =20 else =09 PlayerExitTransitionDone (objPlayer); } } function InitFade (objPlayer) { var fadeHTML =3D objPlayer.HTML; if (null =3D=3D fadeHTML.filters["alpha"]) fadeHTML.style.filter +=3D " alpha (Opacity =3D 100)"; fadeHTML.realOpacity =3D fadeHTML.filters["alpha"].Opacity; return true; } function StartFade (objPlayer, objTrans, TransitionDone) { var fadeHTML =3D objPlayer.HTML; fadeHTML.objTrans =3D objTrans; fadeHTML.TransitionDone =3D TransitionDone; fadeHTML.fltOpacityPerTick =3D (objTrans.endOpacity - = objTrans.startOpacity)/(g_utilDoc.g_Timer.ticksPerSecond * = TRANSITION_RATES[objTrans.rate]); fadeHTML.fFadeIn =3D (0 < fadeHTML.fltOpacityPerTick); fadeHTML.fltDesiredCurrentOpacity =3D objTrans.startOpacity; fadeHTML.filters["alpha"].Opacity =3D objTrans.startOpacity; fadeHTML.style.visibility =3D IE_VISIBLE; g_utilDoc.StartAnimationTimer (objPlayer, FadeTick); } function FadeTick (objPlayer) { var fadeHTML =3D objPlayer.HTML; var objTrans =3D fadeHTML.objTrans; fadeHTML.fltDesiredCurrentOpacity +=3D fadeHTML.fltOpacityPerTick; if (fadeHTML.fFadeIn) { if (objTrans.endOpacity < fadeHTML.fltDesiredCurrentOpacity) fadeHTML.fltDesiredCurrentOpacity =3D objTrans.endOpacity; } else { if (objTrans.endOpacity > fadeHTML.fltDesiredCurrentOpacity) fadeHTML.fltDesiredCurrentOpacity =3D objTrans.endOpacity; } fadeHTML.filters["alpha"].Opacity =3D fadeHTML.fltDesiredCurrentOpacity; if (fadeHTML.fltDesiredCurrentOpacity =3D=3D objTrans.endOpacity) { fadeHTML.TransitionDone (objPlayer); return true;=20 } return false;=20 } function InitTextFlyin (objPlayer) { var transition =3D objPlayer.entryTrans; =09 var transUnits =3D transition.flySubtype; =09 var movePerTick =3D parseInt(FLYIN_PER_TICK[transition.rate]);=09 var transDirection =3D (transition.type =3D=3D TEXT_FLYIN) ? = transition.flyFrom : FLYIN_TOP; =09 { var textHTML =3D objPlayer.HTML; =09 var oldInnerHTML =3D textHTML.innerHTML; =09 textHTML.oldInnerHTML =3D oldInnerHTML; =20 var newInnerHTML =3D ""; =09 transition.textOrder =3D new Array(); =09 textOrder =3D transition.textOrder; =09 var flyinIdx =3D 0; =09 var flyinBuffer =3D ""; var spanStyle =3D (transition.type =3D=3D TEXT_FLYIN) ? " = style=3D'position:relative;visibility:hidden;'" : " = style=3D'visibility:hidden;'"; for ( var letterIdx=3D0; letterIdx < oldInnerHTML.length; ) { tempID =3D objPlayer.name+"_tempID"+flyinIdx.toString(); newInnerHTML +=3D ""; while ( letterIdx < oldInnerHTML.length ) { if ( ( (charNext =3D oldInnerHTML.substring(letterIdx, letterIdx+1)) = =3D=3D "<") || (charNext =3D=3D "&") ) =09 { if ( charNext =3D=3D "<" ) =09 endTagIdx =3D oldInnerHTML.indexOf( ">", letterIdx );=09 else endTagIdx =3D oldInnerHTML.indexOf( ";", letterIdx );=09 var tagString =3D oldInnerHTML.substring( letterIdx, ++endTagIdx ); newInnerHTML +=3D tagString; letterIdx =3D endTagIdx; =09 if ( transUnits =3D=3D FLYIN_BY_LETTER && charNext=3D=3D"&" ) break; if ( ((tagString =3D=3D "

") || (tagString =3D=3D "
") || = (tagString =3D=3D "")) && ( transUnits !=3D FLYIN_BY_LETTER ) )=09 break; } else { thisChar =3D oldInnerHTML.substring( letterIdx, ++letterIdx ); newInnerHTML +=3D thisChar; if ( transUnits =3D=3D FLYIN_BY_LETTER ) =09 break; =09 else if ( (transUnits =3D=3D FLYIN_BY_WORD ) && thisChar =3D=3D " " ) =09 break; } } newInnerHTML +=3D "
" textOrder[flyinIdx] =3D new Object(); textOrder[flyinIdx].name =3D tempID; =09 flyinIdx++; =09 } if ( flyinIdx =3D=3D 0 ) return false; textHTML.innerHTML =3D newInnerHTML; textHTML.newInnerHTML =3D newInnerHTML; =20 transition.numUnits =3D flyinIdx; =09 } textOrder =3D transition.textOrder; var currentEl =3D document.all[textOrder[0].name]; =09 var currentOffset =3D currentEl.offsetLeft;=09 var previousEl, previousOffset; var UltimateParent =3D currentEl.offsetParent; var ParTop=3D0,ParLeft=3D0,DocHeight=3D0,DocWidth=3D0; while( UltimateParent.offsetParent !=3D null && UltimateParent !=3D = document.body ) { ParLeft +=3D UltimateParent.offsetLeft; ParTop +=3D UltimateParent.offsetTop; if( UltimateParent.offsetHeight > DocHeight) DocHeight =3D = UltimateParent.offsetHeight; if( UltimateParent.offsetWidth > DocWidth) DocWidth =3D = UltimateParent.offsetWidth; UltimateParent =3D UltimateParent.offsetParent; } for ( var count=3D0; count < transition.numUnits; count++ ) =09 { previousOffset =3D currentOffset; =09 previousEl =3D currentEl; textElName =3D textOrder[count].name; =09 currentEl =3D document.all[textElName]; currentEl.style.visibility =3D IE_HIDDEN; currentOffset =3D currentEl.offsetTop; if ( currentOffset !=3D previousOffset ) =09 if ( previousEl.innerHTML =3D=3D " " ) =09 previousEl.innerHTML =3D "
"; if ( transDirection =3D=3D FLYIN_ROTATE ) =09 direction =3D count % FLYIN_ROTATE; =09 else direction =3D transDirection; if ( direction =3D=3D FLYIN_LEFT ) { tempPos =3D -(currentEl.offsetParent.offsetLeft + = currentEl.offsetParent.offsetWidth); currentEl.style.posLeft =3D tempPos; =09 textOrder[count].dx =3D -movePerTick; =09 textOrder[count].dy =3D 0; textOrder[count].iterations =3D tempPos / (-movePerTick);=09 } else if ( direction =3D=3D FLYIN_RIGHT ) { tempPos =3D DocWidth - currentEl.offsetParent.offsetLeft; currentEl.style.posLeft =3D tempPos; textOrder[count].dx =3D movePerTick; =09 textOrder[count].dy =3D 0; textOrder[count].iterations =3D tempPos / movePerTick;=09 } else if ( direction =3D=3D FLYIN_TOP ) { tempPos =3D -( ParTop + currentEl.offsetParent.offsetHeight ); currentEl.style.posTop =3D tempPos; textOrder[count].dx =3D 0; textOrder[count].dy =3D (-movePerTick); =09 textOrder[count].iterations =3D tempPos / (-movePerTick);=09 } else if ( direction =3D=3D FLYIN_BOTTOM ) { tempPos =3D DocHeight=20 currentEl.style.posTop =3D tempPos; textOrder[count].dx =3D 0; textOrder[count].dy =3D movePerTick; =09 textOrder[count].iterations =3D tempPos / movePerTick;=09 } } transition.charIdx =3D 0; =09 transition.moveIdx =3D 0; =09 textElName =3D transition.textOrder[0].name; transition.currentEl =3D document.all[textElName];=09 transition.currentEl.style.visibility =3D IE_VISIBLE; return true; } function StartTextFlyin( objPlayer ) { objPlayer.HTML.style.visibility =3D IE_VISIBLE; g_utilDoc.StartAnimationTimer (objPlayer, TextFlyinTick); } function TextFlyinTick( objPlayer ) { var transition =3D objPlayer.entryTrans; =09 var spanObj =3D transition.textOrder[transition.charIdx]; =09 var textEl =3D transition.currentEl; =09 if ( ++transition.moveIdx < spanObj.iterations) =09 { textEl.style.posTop -=3D spanObj.dy; =09 textEl.style.posLeft -=3D spanObj.dx; return false; =09 } textEl.style.posTop =3D 0; =09 textEl.style.posLeft =3D 0; if ( (charIdx =3D ++transition.charIdx) >=3D transition.textOrder.length = )=09 { objPlayer.HTML.innerHTML =3D objPlayer.HTML.oldInnerHTML; PlayerEntryTransitionDone( objPlayer ); =09 return true; =09 } else { transition.moveIdx =3D 0; =09 textElName =3D transition.textOrder[charIdx].name; transition.currentEl =3D document.all[textElName]; =09 transition.currentEl.style.visibility =3D IE_VISIBLE; =09 return false; =09 } =09 } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 var ST_WAV =3D 1;=09 var ST_MID =3D 2;=09 var NAV_EXT =3D "nav"=09 var MidiTag =3D null;=09 function Sound( delay, duration, loop, soundType, tagName, fileName ) { this.Init =3D InitSound; this.Start =3D StartSound; this.Trigger =3D StartSound; this.Stop =3D StopSound; this.StopEverything =3D StopEverythingOnSounds; this.delay =3D delay; this.duration =3D duration; this.loop =3D loop; this.tagName =3D tagName; this.fileName =3D fileName; this.soundType =3D soundType; } function InitSound (objParent, objSound) { objSound.objParent =3D objParent; =09 if (objSound.duration =3D=3D SND_DUR_PROJECT) { objSound.html =3D g_utilDoc.GetProjectSoundHtml(objSound.fileName, = objSound.soundType, true); } else objSound.html =3D document.all[objSound.tagName]; if (null =3D=3D objSound.html) { return; } if (objSound.soundType =3D=3D ST_MID ) { if ( MidiTag =3D=3D null ) =09 MidiTag =3D objSound.html; =09 else objSound.html =3D MidiTag; =09 } =09 } function StartSound( objSound ) { if (null =3D=3D objSound.html) { return; } objSound.html.loop =3D objSound.loop; =09 objSound.html.src =3D objSound.fileName; =09 if ( objSound.soundType =3D=3D ST_WAV ) =09 objSound.html.volume =3D 0; =09 if ( objSound.duration > 0 ) g_utilDoc.StartOneShotTimer (objSound, objSound.duration, objSound.Stop, = g_utilDoc.TMR_PROJ); } function StopSound (objSound) { if (null =3D=3D objSound.html) { return; } objSound.html.loop =3D 0; objSound.html.src =3D ""; =20 if ( objSound.soundType =3D=3D ST_WAV ) objSound.html.volume =3D -10000; } function StopEverythingOnSounds( objSound ) { if (null =3D=3D objSound.html) { return; } if (objSound.duration !=3D SND_DUR_PROJECT) { StopSound (objSound); if (g_utilDoc.g_fOSNT) =09 objSound.html.volume =3D -500;=09 } } var TICKS_PER_FLASH =3D new Array (2,3,4,5,6);=20 function Flash (delay, rate) { this.Init =3D InitFlash; this.Start =3D StartFlash; this.Trigger =3D StartFlash; this.Stop =3D StopFlash; this.StopEverything =3D StopFlash; this.delay =3D delay; this.rate =3D rate; } function InitFlash (objPlayer, objBhv) { objBhv.objPlayer =3D objPlayer; objBhv.ElapsedTicks =3D 0; } function StartFlash (objBhv) { objBhv.objPlayer.HTML.style.visibility =3D IE_VISIBLE; g_utilDoc.StartAnimationTimer (objBhv, FlashTick); } function StopFlash (objBhv) { objBhv.objPlayer.HTML.style.visibility =3D IE_VISIBLE; } function FlashTick (objBhv) { if (0 =3D=3D (++objBhv.ElapsedTicks) % TICKS_PER_FLASH[objBhv.rate]) objBhv.objPlayer.HTML.style.visibility =3D IE_HIDDEN; else objBhv.objPlayer.HTML.style.visibility =3D IE_VISIBLE; return false;=20 } var WAVE_PER_TICK =3D new Array (5,4,3,2,1);=20 function Wave (delay, rate) { this.Init =3D InitWave; this.Start =3D StartWave; this.Trigger =3D StartWave; this.Stop =3D StopWave; this.StopEverything =3D StopWave; this.delay =3D delay; this.rate =3D rate; } function InitWave (objPlayer, objBhv) { objBhv.objPlayer =3D objPlayer; objBhv.WavePhase =3D 0; objBhv.objPlayer.HTML.style.filter +=3D " wave (freq=3D2, strength=3D6, = phase=3D0, enabled=3D0)"; } function StartWave (objBhv) { objBhv.objPlayer.HTML.filters["wave"].enabled =3D true; objBhv.objPlayer.HTML.style.visibility =3D IE_VISIBLE; g_utilDoc.StartAnimationTimer (objBhv, WaveTick); } function StopWave (objBhv) { objBhv.objPlayer.HTML.filters["wave"].enabled =3D false; } function WaveTick (objBhv) { objBhv.WavePhase =3D (objBhv.WavePhase+WAVE_PER_TICK[objBhv.rate]) % = 101; objBhv.objPlayer.HTML.filters["wave"].phase =3D objBhv.WavePhase; return false;=20 } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 function Swapper( idle, hover, click, replace ) { this.Init =3D InitSwap; this.Start =3D StartSwap; this.Trigger =3D TriggerSwap; this.Stop =3D StopSwap; this.StopEverything =3D StopSwap; this.idle =3D idle; this.hover =3D hover; this.click =3D click; this.replace =3D replace; this.Swapped =3D false; } function InitSwap (objParent, objSwap) {=09 var idle =3D objSwap.idle; =09 var hover =3D objSwap.hover; var click =3D objSwap.click; if ( (hover !=3D null) && (hover !=3D "") && (document.all[hover].src = !=3D null) ) { document.all[hover].style.visibility =3D IE_HIDDEN; objSwap.srcHover =3D document.all[hover].src; document.all[hover].src =3D ""; } else objSwap.srcHover =3D document.all[idle].src; if ( (click !=3D null) && (click !=3D "") && (document.all[click].src = !=3D null) ) { document.all[click].style.visibility =3D IE_HIDDEN; objSwap.srcClick =3D document.all[click].src; document.all[click].src =3D ""; } else objSwap.srcClick =3D document.all[idle].src; objSwap.srcIdle =3D document.all[idle].src; } function StartSwap( objSwap ) { document.all[objSwap.idle].src =3D objSwap.srcIdle; } function TriggerSwap( objSwap, eventType ) { if ( eventType =3D=3D TT_BUTTONDOWN ) { document.all[objSwap.idle].src =3D objSwap.srcClick; if (true =3D=3D objSwap.Swapped) { objSwap.Swapped =3D false; if ((objSwap.hover =3D=3D null) || (objSwap.hover =3D=3D "")) objSwap.srcHover =3D objSwap.srcIdle; } else { objSwap.Swapped =3D true; if ((objSwap.hover =3D=3D null) || (objSwap.hover =3D=3D "")) { if (0 !=3D objSwap.replace) { objSwap.srcHover =3D objSwap.srcClick; } } } } else if ( eventType =3D=3D TT_BUTTONUP ) document.all[objSwap.idle].src =3D objSwap.srcHover; else if ( eventType =3D=3D TT_MOUSEOVER ) document.all[objSwap.idle].src =3D objSwap.srcHover; else if ( eventType =3D=3D TT_MOUSEOUT ) { if (true =3D=3D objSwap.Swapped && 0 !=3D objSwap.replace) document.all[objSwap.idle].src =3D objSwap.srcClick; else document.all[objSwap.idle].src =3D objSwap.srcIdle; } } function StopSwap (objSwap) { } var PATH_PER_TICK =3D new Array(50,40,30,20,10); =09 var PE_STOP =3D 0; =09 var PE_AGAIN =3D 1; =09 var PE_REV =3D 2; =09 var PE_EXIT =3D 3; =09 var PD_FWD =3D 1; var PD_BACK =3D -1; function Point( x, y, rate ) { this.x =3D x; this.y =3D y; this.rate =3D rate; } function Paths( delay, edgeEffect ) { this.Init =3D InitPathAnimation; this.Start =3D StartPathAnimation; this.Trigger =3D StartPathAnimation; this.Stop =3D StopPathAnimation; this.StopEverything =3D StopPathAnimation; this.delay =3D delay; this.edgeEffect =3D edgeEffect; } function InitPathAnimation( objPlayer, path ) { var segment; =09 var pathIndex; var totalDistance; =09 var distanceX; =09 var distanceY; var dx; =09 var dy; var travelTime; =09 var remX; =09 var remY; path.objPlayer =3D objPlayer; =09 halfWidth =3D Math.floor(objPlayer.HTML.offsetWidth/2); =09 halfHeight =3D Math.floor(objPlayer.HTML.offsetHeight/2); path[0].x -=3D halfWidth; path[0].y -=3D halfHeight; objPlayer.position.SetPosition( path[0].x, path[0].y ); for ( pathIndex=3D0; path[pathIndex+1] !=3D null; pathIndex++ )=09 { px =3D parseInt(pathIndex); =09 segment =3D path[px]; =09 path[px+1].x -=3D halfWidth; path[px+1].y -=3D halfHeight; distanceX =3D path[px+1].x - segment.x; =09 distanceY =3D path[px+1].y - segment.y; =09 totalDistance =3D Math.sqrt( (distanceX*distanceX) + = (distanceY*distanceY) ); travelTime =3D Math.round(totalDistance / PATH_PER_TICK[segment.rate]); if( travelTime > 0 ) { if ( distanceX > 0 ) =09 dx =3D Math.floor( distanceX / travelTime );=09 else if ( distanceX < 0 ) =09 dx =3D Math.ceil( distanceX / travelTime );=09 else dx =3D 0; if ( distanceY > 0 ) =09 dy =3D Math.floor( distanceY / travelTime ); else if ( distanceY < 0 ) dy =3D Math.ceil( distanceY / travelTime ); else dy =3D 0; } else { dx =3D dy =3D 0; } remX =3D distanceX - dx*travelTime; remY =3D distanceY - dy*travelTime; segment.number =3D px; =09 segment.ticks =3D 0; segment.travelTime =3D travelTime; segment.dx =3D dx; segment.dy =3D dy; segment.remX =3D remX; segment.remY =3D remY; } path.numSegs =3D parseInt(pathIndex); =09 path.dir =3D PD_FWD; =09 } function StartPathAnimation( path ) { path.currentSegment =3D path[0]; =09 path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 if ( path.dir =3D=3D PD_BACK ) =09 { for ( var ii=3D0; ii < path.numSegs; ii++ ) =09 { path[ii].dx *=3D -1; path[ii].dy *=3D -1; path[ii].remX *=3D -1; path[ii].remY *=3D -1; } path.dir =3D PD_FWD; =09 } g_utilDoc.StartAnimationTimer (path, PathAnimationTick); } function StopPathAnimation (path) { } function PathAnimationTick( path ) { var objPlayer =3D path.objPlayer; =09 var segment =3D path.currentSegment; =09 var currentPosition =3D objPlayer.position;=09 if ( ++segment.ticks <=3D segment.travelTime ) =09 { var newX =3D currentPosition.x + segment.dx; =09 if ( segment.ticks <=3D Math.abs(segment.remX) )=09 segment.remX > 0 ? newX++ : newX--; var newY =3D currentPosition.y + segment.dy; =09 if ( segment.ticks <=3D Math.abs(segment.remY) )=09 segment.remY > 0 ? newY++ : newY--; currentPosition.SetPosition( newX, newY );=09 return false; =09 } else if( segment.ticks=3D=3D1 && segment.travelTime=3D=3D0 ) { currentPosition.SetPosition( currentPosition.x + segment.remX, = currentPosition.y + segment.remY);=09 return false; =09 }=20 if ( ++path.cntSegs < path.numSegs ) { path.currentSegment =3D path[segment.number+path.dir]; =09 path.currentSegment.ticks =3D 0; =09 return false; } if ( path.edgeEffect =3D=3D PE_AGAIN ) =09 { objPlayer.position.SetPosition( path[0].x, path[0].y ); path.currentSegment =3D path[0]; =09 path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 return false; =09 } =09 else if ( path.edgeEffect =3D=3D PE_REV ) =09 { path.dir *=3D -1; =09 for ( var ii=3D0; ii < path.numSegs; ii++ ) { path[ii].dx *=3D -1; path[ii].dy *=3D -1; path[ii].remX *=3D -1; path[ii].remY *=3D -1; } path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 return false; } else if ( path.edgeEffect =3D=3D PE_EXIT ) { PlayerExit( objPlayer ); return true; } else return true; =09 } var GROW_PER_TICK =3D new Array(20,14,8,4,1); =09 var GROW_TOPLEFT =3D 0; var GROW_TOPRIGHT =3D 1; var GROW_BOTTOMRIGHT =3D 2; var GROW_BOTTOMLEFT =3D 3; var GROW_CENTER =3D 4; function Size( zoom, rate ) { this.zoom =3D zoom; this.rate =3D rate; } function Grows (delay, iAnchor) { this.Init =3D InitGrowAnimation; this.Start =3D StartGrowAnimation; this.Trigger =3D StartGrowAnimation; this.Stop =3D StopGrowAnimation; this.StopEverything =3D StopGrowAnimation; this.delay =3D delay; this.iAnchor =3D iAnchor; } function InitGrowAnimation (objPlayer, grow) { var child =3D objPlayer.HTML.children[0]; if (child.tagName =3D=3D "A") child =3D child.children[0]; var playerType =3D GetPlayerTypeFromName( objPlayer.name );=09 { if (objPlayer.realWidth =3D=3D null) { objPlayer.realWidth =3D child.width; objPlayer.realHeight =3D child.height; objPlayer.realPosition =3D new Position (objPlayer); } grow.realWidth =3D objPlayer.realWidth; grow.realHeight =3D objPlayer.realHeight; grow.AnchorPosition =3D new Position (objPlayer); grow.AnchorPosition.x =3D objPlayer.realPosition.x; grow.AnchorPosition.y =3D objPlayer.realPosition.y; if (GROW_TOPRIGHT =3D=3D grow.iAnchor)=20 grow.AnchorPosition.x +=3D objPlayer.realWidth; if (GROW_BOTTOMLEFT =3D=3D grow.iAnchor)=20 grow.AnchorPosition.y +=3D objPlayer.realHeight; if (GROW_BOTTOMRIGHT =3D=3D grow.iAnchor)=20 { grow.AnchorPosition.x +=3D objPlayer.realWidth; grow.AnchorPosition.y +=3D objPlayer.realHeight; } if (GROW_CENTER =3D=3D grow.iAnchor)=20 { grow.AnchorPosition.x +=3D objPlayer.realWidth/2; grow.AnchorPosition.y +=3D objPlayer.realHeight/2; } } if (playerType =3D=3D PLAYER_TEXT)=09 { grow =3D null; =09 return; } grow.objPlayer =3D objPlayer; =09 grow.currentSegment =3D grow[0]; =09 grow.currentGrowth =3D grow.currentSegment.zoom; =09 if (objPlayer.firstGrowDelay =3D=3D null || objPlayer.firstGrowDelay > = grow.delay) { objPlayer.firstGrowDelay =3D grow.delay; child.width =3D grow.realWidth * (grow.currentSegment.zoom / 100);=09 child.height =3D grow.realHeight * (grow.currentSegment.zoom / 100); GrowSetPosition (child, grow); } for ( var growIndex=3D0; grow[growIndex] !=3D null; growIndex++ )=09 { gx =3D parseInt(growIndex); =09 segment =3D grow[gx]; =09 if ( grow[gx+1] =3D=3D null ) =09 { grow.finalSegment =3D grow[gx-1]; =09 break; =09 } growth =3D grow[gx+1].zoom - segment.zoom; =09 if ( growth >=3D 0 ) =09 growthFactor =3D GROW_PER_TICK[segment.rate]; =09 else growthFactor =3D -(GROW_PER_TICK[segment.rate]); growthTicks =3D growth / growthFactor; =09 segment.number =3D gx; =09 segment.growth =3D growth; segment.growthFactor =3D growthFactor; segment.growthTicks =3D growthTicks; segment.currentTicks =3D 0; } } function StartGrowAnimation( grow ) {=09 grow.currentSegment =3D grow[0]; =09 grow.currentTicks =3D 0; g_utilDoc.StartAnimationTimer (grow, GrowAnimationTick); } function StopGrowAnimation (grow) { grow.objPlayer.firstGrowDelay =3D null; } function GrowAnimationTick( grow ) { var objPlayer =3D grow.objPlayer; =09 var child =3D objPlayer.HTML.children[0]; if (child.tagName =3D=3D "A") child =3D child.children[0]; var segment =3D grow.currentSegment; =09 var EndZoom =3D grow[segment.number+1].zoom; var NewcurrentGrowth =3D grow.currentGrowth + segment.growthFactor;=20 if (segment.growthFactor < 0 && NewcurrentGrowth < EndZoom) =20 NewcurrentGrowth =3D EndZoom; if (segment.growthFactor >=3D 0 && NewcurrentGrowth > EndZoom)=20 NewcurrentGrowth =3D EndZoom; if (NewcurrentGrowth !=3D grow.currentGrowth) { grow.currentGrowth =3D NewcurrentGrowth; child.width =3D grow.realWidth*(grow.currentGrowth/100); child.height =3D grow.realHeight*(grow.currentGrowth/100); GrowSetPosition (child, grow); } if ( ++grow.currentTicks <=3D segment.growthTicks ) =09 return false; =09 if ( grow.currentSegment =3D=3D grow.finalSegment ) =09 return true; =09 grow.currentSegment =3D grow[ segment.number+1 ]; =09 grow.currentTicks =3D 0; return false; =09 } function GrowSetPosition (child, grow) { if (GROW_TOPLEFT =3D=3D grow.iAnchor)=20 return;=20 var x =3D grow.AnchorPosition.x; var y =3D grow.AnchorPosition.y; if (GROW_TOPRIGHT =3D=3D grow.iAnchor)=20 { x -=3D child.width; } if (GROW_BOTTOMLEFT =3D=3D grow.iAnchor)=20 { y -=3D child.height; } if (GROW_BOTTOMRIGHT =3D=3D grow.iAnchor)=20 { x -=3D child.width; y -=3D child.height; } if (GROW_CENTER =3D=3D grow.iAnchor)=20 { x -=3D (child.width/2); y -=3D (child.height/2); } grow.objPlayer.position.SetPosition (x, y); } function Position (obj) { this.object =3D obj; =20 this.x =3D obj.HTML.style.pixelLeft; =20 this.y =3D obj.HTML.style.pixelTop; =20 this.SetPosition =3D SetPosition; } function SetPosition (newX, newY)=20 { var el =3D this.object.HTML; el.style.pixelTop =3D newY; el.style.pixelLeft =3D newX; this.x =3D newX; this.y =3D newY; } function GetPlayerFromName( playerName ) { var objPlayer; if ( (DocScene) && (DocScene.Players !=3Dnull) && ((objPlayer =3D = DocScene.Players[playerName]) !=3D null) ) return objPlayer; return null; =09 } function GetObjectTypeFromName( nameString ) { var type =3D nameString.substr(0,1); =09 if (type =3D=3D NAME_SCENE)=20 return OBJ_SCENE; else if (type =3D=3D NAME_PLAYER)=20 return OBJ_PLAYER; } function GetPlayerTypeFromName( nameString ) { var type =3D nameString.substr(1,1); =09 if (type =3D=3D PLAYER_NAME_IMAGE)=20 return PLAYER_IMAGE; else if (type =3D=3D PLAYER_NAME_DRAW)=20 return PLAYER_DRAW; else if (type =3D=3D PLAYER_NAME_TEXT)=20 return PLAYER_TEXT; } ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <00f401bfe512$97be0cd0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 9 MMF_DebugOnly: kPartDocHTMLPlaybackIE MMF_PageType: 0 MMF_Page: 1  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <00f901bfe512$97d11fa0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 9 MMF_DebugOnly: kPartDocHTMLPlaybackIE MMF_PageType: 0 MMF_Page: 2  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <011101bfe512$982bc2c0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 19 MMF_DebugOnly: kPartProjNavBarScriptIE // TableCell State Constants var TS_NORMAL =3D 0; var TS_HOVER =3D 1; var TS_SELECT =3D 2; window.onload =3D InitTables; g_utilDoc =3D parent.parent; // // Table Handling Routines // // TableCell Constructor function TableCell (nextScene, styleName) { this.Cell =3D document.all[styleName + "_" + nextScene]; this.nextScene =3D nextScene; this.styleName =3D styleName; } function InitTables () { var indxHTML var objCell var CellName =20 for (CellName in TableCells) { objCell =3D TableCells[CellName]; =09 objCell.name =3D CellName; objCell.HTML =3D document.all[CellName]; if (objCell.HTML.length =3D=3D null) { objCell.HTML.onmouseover =3D OnTableMove; objCell.HTML.onmouseout =3D OnTableOut; objCell.HTML.onmousedown =3D OnTableDown; objCell.HTML.style.cursor=3D"hand"; // display a special = cursor to say this guy is "hot" } else { for (indxHTML =3D 0; indxHTML < objCell.HTML.length; = indxHTML++) { objCell.HTML[indxHTML].onmouseover =3D OnTableMove; objCell.HTML[indxHTML].onmouseout =3D OnTableOut; objCell.HTML[indxHTML].onmousedown =3D OnTableDown; objCell.HTML[indxHTML].style.cursor=3D"hand"; // display = a special cursor to say this guy is "hot" } } } } function UpdateTables (nextSceneNumber) { for (CellName in TableCells) { if (TableCells[CellName].nextScene =3D=3D nextSceneNumber) SetCellState (TableCells[CellName], TS_SELECT) else SetCellState (TableCells[CellName], TS_NORMAL) } } function OnTableMove () { var EventCell =3D event.srcElement while (EventCell.tagName !=3D "TD") EventCell =3D EventCell.parentElement if (EventCell.className !=3D (TableCells[EventCell.id].styleName + = "_selected")) SetCellState (TableCells[EventCell.id], TS_HOVER) } function OnTableOut () { var EventCell =3D event.srcElement while (EventCell.tagName !=3D "TD") EventCell =3D EventCell.parentElement if (EventCell.className !=3D (TableCells[EventCell.id].styleName + = "_selected")) SetCellState (TableCells[EventCell.id], TS_NORMAL) } function OnTableDown () { var EventCell =3D event.srcElement while (EventCell.tagName !=3D "TD") EventCell =3D EventCell.parentElement var nextScene =3D TableCells[EventCell.id].nextScene; g_utilDoc.ChangeScene(nextScene); } function SetCellState (TableCell, state) { var NewClassName if (state =3D=3D TS_NORMAL) NewClassName =3D (TableCell.styleName + "_normal"); else { if (state =3D=3D TS_HOVER) NewClassName =3D (TableCell.styleName + "_hover"); else NewClassName =3D (TableCell.styleName + "_selected"); } if (TableCell.Cell.length =3D=3D null) { TableCell.Cell.className =3D NewClassName; SetSingleCellImage (TableCell.Cell, state, TableCell.styleName) } else { for (var indx =3D 0; indx < TableCell.Cell.length; indx++) { TableCell.Cell[indx].className =3D NewClassName; SetSingleCellImage (TableCell.Cell[indx], state, = TableCell.styleName) } } } function SetSingleCellImage (Cell, state, styleName) { var indxChild =3D 0; var ImageCount =3D 0; while (Cell.children[indxChild] !=3D null) { if (Cell.children[indxChild].tagName =3D=3D "IMG") { if (ImageCount =3D=3D state) Cell.children[indxChild].className =3D ""; else Cell.children[indxChild].className =3D "NavBarBlocked"; ImageCount++; } indxChild++; } } ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <011301bfe512$98307db0$1215379d@redmond.corp.microsoft.com> MMF_PartType: 15 MMF_DebugOnly: kPartProjMainDocHTMLPlaybackIE ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <012d01bfe512$9869b620$1215379d@redmond.corp.microsoft.com> MMF_PartType: 22 MMF_DebugOnly: kPartProjToplevelScriptIE_and_Nav var TMR_PROJ =3D 0;=20 var TMR_SCENE =3D 1;=20 var PS_UNINITIALIZED =3D 0; var PS_INITIALIZED =3D 1; var PS_RUNNING =3D 2; var PS_COMPLETE =3D 3; var k_iDefaultTickRate =3D 100;=20 var g_fOSNT =3D navigator.appVersion.indexOf("NT") >=3D 0 ? true : = false;=09 var g_strPlatform =3D new String (navigator.platform); g_strPlatform =3D g_strPlatform.toLowerCase (); var g_fMac =3D ("mac" =3D=3D g_strPlatform.substring (0,3) ? true = : false); var g_Timer =3D new Timer (); var g_ProjState =3D PS_UNINITIALIZED; var g_nScenes =3D -1; var g_FrameBtns =3D null; var g_FramePage =3D null; var g_FrameDocMain =3D null; var g_FrameSounds =3D null; var g_fNavigator =3D ("Netscape" =3D=3D navigator.appName ? true : = false); var g_iIEVersion =3D -1; var g_MainPageLoaded =3D false; var g_Initialized =3D false; if (!g_fNavigator) { var iStart =3D navigator.appVersion.indexOf("MSIE"); var iEnd =3D navigator.appVersion.indexOf(";", iStart+4); if (iStart >=3D 0 && iEnd >=3D 0) { var strNumber =3D new String (navigator.appVersion.substring (iStart+4, = iEnd)); g_iIEVersion =3D parseInt (strNumber, 10); } } window.onload =3D OnLoad; window.onerror =3D OnError; function Project (tickRate, startScene, stopScene, autoStart, delay, = webpage) { this.tickRate =3D tickRate; this.startScene =3D startScene; this.stopScene =3D stopScene; this.autoStart =3D autoStart; this.delay =3D delay; this.webpage =3D webpage; this.currentScene =3D -1; } function Page (strIEPage, strNavPage) { this.strIEPage =3D strIEPage; this.strNavPage =3D strNavPage; } function GetPage (iIndex) { if (null =3D=3D Pages[iIndex]) return null; if (g_fNavigator) return Pages[iIndex].strNavPage; return Pages[iIndex].strIEPage; } function OnError () { alert("There has been an unidentified error in this file's script. You = may be able to fix this problem by refreshing your browser."); return true; } function ExtractFrames() { if (!g_fNavigator) return; document.frames =3D new Array; for (var intFrameIndx =3D 0; intFrameIndx < window.frames.length; = intFrameIndx++) { var frame =3D window.frames[intFrameIndx]; document.frames[frame.name] =3D frame; } } function GetFrameObj(strFrameName) { if (g_fNavigator) return top.frames[strFrameName]; return document.frames[strFrameName]; } function OnLoad () { if (g_Initialized) return; g_Initialized =3D true; ExtractFrames(); if ((Project.delay !=3D null) && (Project.delay !=3D 0)) { setTimeout ("ProjectInit();", Project.delay * 1000);=20 } else { ProjectInit (); } } function ProjectInit () { g_FrameBtns =3D GetFrameObj("TrafficCopButtonFrame"); g_FrameSounds =3D GetFrameObj("TrafficCopProjectDataFrame"); g_FramePage =3D GetFrameObj("TrafficCopPageFrame"); StatusChange (); while (null !=3D Pages[++g_nScenes]); if (null =3D=3D Project.startScene)=09 Project.startScene =3D 0; =09 if (g_fNavigator) g_FramePage.location.href =3D MainPage.strNavPage; else document.all["TrafficCopPageFrame"].src =3D MainPage.strIEPage; setTimeout ("Setup();", 1);=20 } function Setup ()=20 { =20 if (!g_MainPageLoaded) { setTimeout ("Setup();", 100);=20 return; } else { if (g_fNavigator) g_FrameDocMain =3D g_FramePage.kDocMain; else g_FrameDocMain =3D = document.frames["TrafficCopPageFrame"].document.frames["kDocMain"]; } g_Timer.StartTicking (); =09 StatusChange (PS_INITIALIZED); ProjectStart ( ); } function ProjectStart (startScene) { if (null !=3D startScene) ChangeScene (startScene); else ChangeScene (Project.startScene); StatusChange (PS_RUNNING); } function ProjectComplete () { StopProjectBehaviors (); StatusChange (PS_COMPLETE); } function ChangeScene (nextSceneNumber) { if (null =3D=3D Pages[nextSceneNumber]) return;=20 Project.currentScene =3D nextSceneNumber; StopSceneTimers (); if (g_fNavigator) { g_FrameDocMain.location.href =3D GetPage (nextSceneNumber); } else g_FramePage.document.all["kDocMain"].src =3D GetPage (nextSceneNumber); StatusChange (); UpdateNavBars(nextSceneNumber); } function UpdateNavBars(nextSceneNumber) { if (g_fNavigator) return; var objFrames =3D g_FramePage.document.frames; var iCount =3D objFrames.length for (var iIndx =3D 0; iIndx < iCount; iIndx++) { if (objFrames[iIndx].UpdateTables !=3D null) { objFrames[iIndx].UpdateTables(nextSceneNumber); } } } function DocSceneExit (iNextSceneNumber) { var iNextScene =3D (null =3D=3D iNextSceneNumber ? Project.currentScene = + 1 : iNextSceneNumber); g_FrameDocMain.StopEverythingOnScene (); StopAllTimers(); if (iNextScene >=3D Project.startScene && iNextScene <=3D Project.stopScene && null !=3D Pages[iNextScene]) { ChangeScene (iNextScene); return; } else { ProjectComplete (); } } function Start () { ProjectStart (Project.startScene); } function Stop () { location.reload(); } function Forward () { if (null !=3D Pages[Project.currentScene+1]) ChangeScene (Project.currentScene+1); } function Backward() { var PreviousScene =3D Project.currentScene; if (null !=3D Pages[Project.currentScene-1]) PreviousScene--; ProjectStart (PreviousScene); } function Webpage() { window.open (Project.webpage); } function SceneStatus () { StatusChange (); } function StatusChange (NewStatus) { var Spaces =3D " "; if (null !=3D NewStatus) g_ProjState =3D NewStatus; var stsPage =3D null;=09 if (PS_UNINITIALIZED =3D=3D g_ProjState) { stsPage =3D Spaces; } else if (PS_INITIALIZED =3D=3D g_ProjState) { stsPage =3D Spaces; } else if (PS_RUNNING =3D=3D g_ProjState) { stsPage =3D (Project.currentScene + 1) + " / " + g_nScenes + " "; } else if (PS_COMPLETE =3D=3D g_ProjState) { stsPage =3D (Project.currentScene + 1) + " / " + g_nScenes + " "; } if (null !=3D g_FrameBtns && null !=3D g_FrameBtns.document.all["SceneStatus"] && null !=3D stsPage) { g_FrameBtns.document.all["SceneStatus"].value =3D stsPage; } } function Timer () { if (null =3D=3D Project.tickRate) this.tickRate =3D k_iDefaultTickRate; else this.tickRate =3D Project.tickRate; this.oneShots =3D new Array (); this.animations =3D new Array (); this.tickCounter =3D 0; =09 this.ticksPerSecond =3D 1000 / (this.tickRate);=09 this.timerID =3D null; this.StartTicking =3D StartTicking; this.StopTicking =3D StopTicking; } function StartTicking () { if (null =3D=3D this.timerID) this.timerID =3D setInterval ("TimerTick()", this.tickRate); } function StopTicking () { if (null !=3D this.timerID) clearInterval (this.timerID); this.timerID =3D null; } function TimerTick () { var timerEvent; for (var ii=3D0; ii < g_Timer.animations.length; ii++) =09 { if ((timerEvent =3D g_Timer.animations[ii]) =3D=3D null) =09 continue; =09 if (timerEvent.callback (timerEvent.callbackObj) =3D=3D true)=09 g_Timer.animations[ii] =3D null; =09 } ++g_Timer.tickCounter; var length =3D g_Timer.oneShots.length; for (var ii=3D0; ii < length && (g_Timer !=3Dnull ); ii++ )=09 { if ((timerEvent =3D g_Timer.oneShots[ii]) =3D=3D null)=09 continue; =09 if (timerEvent.time <=3D g_Timer.tickCounter) =09 { g_Timer.oneShots[ii] =3D null; =09 timerEvent.callback (timerEvent.callbackObj);=09 } } } function StartOneShotTimer (obj, time, callback, type) { var timerIndex; =09 var timerEvent =3D new Object(); =09 timerEvent.callbackObj =3D obj; =09 timerEvent.callback =3D callback; =09 timerEvent.type =3D type; =09 timerEvent.time =3D g_Timer.tickCounter + (time * = g_Timer.ticksPerSecond); for (timerIndex =3D 0; g_Timer.oneShots[timerIndex] !=3D null; = timerIndex++); g_Timer.oneShots[timerIndex] =3D timerEvent;=09 } function StartAnimationTimer (obj, callback) { var timerIndex;=20 timerEvent =3D new Object(); timerEvent.callbackObj =3D obj; =09 timerEvent.callback =3D callback; =09 for (timerIndex =3D 0; g_Timer.animations[timerIndex] !=3D null; = timerIndex++); g_Timer.animations[timerIndex] =3D timerEvent; } function StopSceneTimers() { for (var ii =3D 0; ii < g_Timer.oneShots.length; ii++)=09 { if (g_Timer.oneShots[ii] =3D=3D null) =09 continue; if (g_Timer.oneShots[ii].type =3D=3D TMR_SCENE) g_Timer.oneShots[ii] =3D null; =09 } for (var ii =3D 0; ii < g_Timer.animations.length; ii++)=09 g_Timer.animations[ii] =3D null; } function StopAllTimers() { for (var ii =3D 0; ii < g_Timer.oneShots.length; ii++)=09 { if (g_Timer.oneShots[ii] !=3D null) =09 g_Timer.oneShots[ii] =3D null; =09 } for (var ii =3D 0; ii < g_Timer.animations.length; ii++)=09 g_Timer.animations[ii] =3D null; } function KillTimer () { if (null !=3D g_Timer) { window.clearTimeout (g_Timer.timerID);=09 g_Timer =3D null; =09 } } function StopProjectBehaviors () { if (ProjectBhv !=3D null) { var bhvIdx =3D 0; while (ProjectBhv[bhvIdx]) { ProjectBhv[bhvIdx].StopEverything (ProjectBhv[bhvIdx]); bhvIdx++; } } } var ST_WAV =3D 1;=09 var ST_MID =3D 2;=09 function GetProjectSoundHtml(fileName, soundType, fCreate) { var id; if (null =3D=3D g_FrameSounds) return null; var i =3D fileName.lastIndexOf("."); id =3D fileName.substring(0,i); if (g_fNavigator) { objBGSound =3D g_FrameSounds.document.embeds[id]; } else { var iLength =3D g_FrameSounds.document.all.length; var iIndx; for (iIndx =3D 0; iIndx < iLength; iIndx++) { var hpsound =3D g_FrameSounds.document.all[iIndx].hpsound; var hpsoundFileName; if (null !=3D hpsound) { var i =3D hpsound.lastIndexOf("\\"); if (i =3D=3D -1) hpsoundFileName =3D hpsound; else hpsoundFileName =3D hpsound.substr(i + 1); } if (hpsoundFileName =3D=3D fileName) { objBGSound =3D g_FrameSounds.document.all[iIndx]; break; } } } var bhvIdx =3D 0; while (ProjectBhv[bhvIdx] && ProjectBhv[bhvIdx].fileName !=3D fileName) = {bhvIdx++} if (null =3D=3D ProjectBhv[bhvIdx]) ProjectBhv[bhvIdx] =3D new ProjectSound(soundType, fileName);=20 return objBGSound; } function ProjectSound(soundType, fileName) { this.Stop =3D StopProjectSound; this.StopEverything =3D StopEverythingOnProjectSounds; this.soundType =3D soundType; this.fileName =3D fileName; } function StopProjectSound(objSound) { objSound.html.loop =3D 0; objSound.html.src =3D ""; =20 if ( objSound.soundType =3D=3D ST_WAV ) objSound.html.volume =3D -10000; } function StopEverythingOnProjectSounds(objSound) { objSound.html =3D GetProjectSoundHtml(objSound.fileName, = objSound.soundType, false); if (objSound.html !=3D null) { if (g_fNavigator) { objSound.html.stop(); } else { StopProjectSound (objSound); if (g_fOSNT) =09 objSound.html.volume =3D -500;=09 } } } ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <004901bfe514$f452ffd0$7415379d@redmond.corp.microsoft.com> MMF_PartType: 9 MMF_DebugOnly: kPartDocHTMLPlaybackIE MMF_PageType: 0 MMF_Page: 3  =20
  =20
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <005a01bfe514$f52013d0$7415379d@redmond.corp.microsoft.com> MMF_PartType: 9 MMF_DebugOnly: kPartDocHTMLPlaybackIE MMF_PageType: 1 MMF_Page: 0
Page=20 1
Page=20 2
Page=20 3
Page=20 4
 
------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <002101c626d0$52d2fd50$0100007f@LovieJones> MMF_PartType: 12 var OBJ_SCENE =3D 0; =09 var OBJ_PLAYER =3D 1; =09 var PLAYER_IMAGE =3D 0; =09 var PLAYER_TEXT =3D 1; =09 var PLAYER_DRAW =3D 2; =09 var NAME_SCENE =3D "S" =09 var NAME_PLAYER =3D "P" =09 var PLAYER_NAME_IMAGE =3D "I" =09 var PLAYER_NAME_TEXT =3D "T" var PLAYER_NAME_DRAW =3D "D" var IE_VISIBLE =3D "visible"; var IE_HIDDEN =3D "hidden"; var IE_INHERIT =3D "inherit"; var DEFAULT_TICK_RATE =3D 100; =09 var DEFAULT_SCENE_DURATION =3D 10000;=09 var DEFAULT_PLAYER_DELAY =3D 0; =09 var TMR_PROJ =3D 0; =09 var TMR_SCENE =3D 1; =09 var RR_NONE =3D 0; =09 var RR_PAGE_BUTTONS =3D 1; =09 var RR_FULL_RUNTIME =3D 2; =09 var DUR_FOREVER =3D -1; =09 var DELAY_NONE =3D 0; =09 var DELAY_UNTIL_TRANSITION =3D -1; =09 var DELAY_UNTIL_TRIGGER =3D -2; =09 var DUR_UNTIL_DONE =3D -1; =09 var TT_ALL_MOUSE_EVENTS =3D 0; =09 var TT_BUTTONDOWN =3D 1; =09 var TT_BUTTONUP =3D 2; =09 var TT_MOUSEOVER =3D 3; =09 var TT_MOUSEOUT =3D 4; =09 var TB_PAGE_TURNER =3D -1; =09 var TB_START_PLAYER =3D -2; =09 // Transition Constants - Note that 0-100 are reserverd for system = transitions. var NULL_TRANSITION =3D -1; var TEXT_FLYIN =3D 101; var TEXT_TYPEWRITER =3D 102; var TRANS_FADE =3D 103; var FLYIN_TOP =3D 0; var FLYIN_BOTTOM =3D 1; var FLYIN_LEFT =3D 2; var FLYIN_RIGHT =3D 3; var FLYIN_ROTATE =3D 4; var FLYIN_BY_LETTER =3D 1; var FLYIN_BY_WORD =3D 2; var FLYIN_BY_LINE =3D 3; var FLYIN_PER_TICK =3D new Array (200, 160, 120, 80, 40); =09 var TRANSITION_RATES =3D new Array(1,2,3,4,5); =09 var PS_UNINITIALIZED =3D 0; var PS_INITIALIZED =3D 1; var PS_RUNNING =3D 2; var PS_PAUSED =3D 3; var PS_COMPLETE =3D 4; var TS_NORMAL =3D 0; var TS_HOVER =3D 1; var TS_SELECT =3D 2; var sceneArray =3D new Array();=09 var currentScene =3D null; =09 var nScenes =3D 0; =09 var stProjState =3D PS_UNINITIALIZED;=09 var stNoInput =3D 0; =09 var strPause =3D new Array( "" ); var strPlay =3D new Array( "" ); var tickTimer =3D null; =09 var os =3D navigator.appVersion.indexOf("NT") >=3D 0 ? "NT" : "95";=09 var platform =3D navigator.platform; =09 window.onload =3D Setup; window.onerror =3D Error; function Error() { return true; } function Project( tickRate, startScene, stopScene, rtReq, autoStart, = delay, webpage, startHTMLScene ) { this.tickRate =3D tickRate; this.startScene =3D startScene; this.stopScene =3D stopScene; this.rtReq =3D rtReq; this.autoStart =3D autoStart; this.delay =3D delay; this.webpage =3D webpage; this.startHTMLScene =3D startHTMLScene; } function Setup()=20 { =20 stNoInput++; =09 ProjectInitialize(); =09 stNoInput--; =09 { if (Project.startHTMLScene =3D=3D -1) StartOnScene(Project.startScene); =09 else StartOnScene(Project.startHTMLScene); =09 } } function ProjectInitialize() { tickTimer =3D new Timer(); =09 InitializeScenes(); =09 tickTimer.StartTicking(); =09 =09 if ( Project.startScene =3D=3D null ) =09 Project.startScene =3D 0; =09 stProjState =3D PS_INITIALIZED; =09 =09 } function ProjectStart( startScene ) { stProjState =3D PS_RUNNING; if ( startScene !=3D null ) ChangeScene( startScene ); else ChangeScene( Project.startScene ); } function Scene( duration ) { this.duration =3D duration; } function InitializeScenes() { var objScene; =09 var sceneNumber =3D 0; =09 =09 for ( sceneName in Scenes ) { objScene =3D Scenes[sceneName]; =09 objScene.number =3D parseInt(sceneNumber); =09 objScene.name =3D sceneName; =09 if (objScene.URL =3D=3D null) { objScene.HTML =3D document.all[sceneName]; =09 // SetVisibility( objScene.HTML, IE_HIDDEN );=09 InitializePlayers( objScene ); =09 =09 if ( objScene.entryTrans =3D=3D null ) { objScene.entryTrans =3D new Object(); objScene.entryTrans.type =3D NULL_TRANSITION; } else if (objScene.entryTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (DocScene)) DocScene.entryTrans.type =3D null; } =09 if ( objScene.Bhv !=3D null ) for ( var bhvIdx=3D0; (bhv=3DobjScene.Bhv[bhvIdx]) !=3D null; = bhvIdx++ )=09 bhv.Initialize( objScene, bhv); objScene.numBhv =3D bhvIdx; =09 } sceneArray[sceneNumber++] =3D objScene;=09 } nScenes =3D sceneNumber; =09 } function ChangeScene( nextSceneNumber ) { var previousScene =3D currentScene; =09 StopSceneTimers(); =09 currentScene =3D GetSceneFromNumber( nextSceneNumber );=09 currentScene.previousScene =3D previousScene; =09 if ( currentScene.duration =3D=3D null ) =09 currentScene.duration =3D DEFAULT_SCENE_DURATION; =09 =09 StartScenePlayers( currentScene ); =09 StatusChange(); =09 return; } function Player( delay, duration ) { this.delay =3D delay; this.duration =3D duration; } function InitializePlayers( objScene ) { var objPlayer; =09 var playerNumber =3D 0; =09 for ( playerName in objScene.Players ) { objPlayer =3D objScene.Players[playerName]; =09 objPlayer.number =3D playerNumber; =09 objPlayer.name =3D playerName; =09 objPlayer.HTML =3D document.all[playerName]; =09 SetVisibility( objPlayer.HTML, IE_HIDDEN ); =09 objPlayer.position =3D new Position(objPlayer); =09 =09 if ( objPlayer.delay =3D=3D null ) =09 objPlayer.delay =3D DEFAULT_PLAYER_DELAY; =09 if ( objPlayer.entryTrans =3D=3D null ) { objPlayer.entryTrans =3D new Object(); objPlayer.entryTrans.type =3D NULL_TRANSITION; } =09 else if (objPlayer.entryTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (objPlayer)) objPlayer.entryTrans.type =3D null; // = initialization failed } else if ((objPlayer.entryTrans !=3D null) && =09 (GetPlayerTypeFromName(objPlayer.name) =3D=3D PLAYER_TEXT)) { if ( (objPlayer.entryTrans.type =3D=3D TEXT_FLYIN) || = (objPlayer.entryTrans.type =3D=3D TEXT_TYPEWRITER) ) if ( InitializeTextFlyin( objPlayer ) =3D=3D false ) objPlayer.entryTrans.type =3D null; =09 } =09 if ( objPlayer.exitTrans =3D=3D null ) { objPlayer.exitTrans =3D new Object(); objPlayer.exitTrans.type =3D NULL_TRANSITION; } else if (objPlayer.exitTrans.type =3D=3D TRANS_FADE) { if (false =3D=3D InitFade (objPlayer)) objPlayer.exitTrans.type =3D null; // = initialization failed } =09 if ( objPlayer.Bhv !=3D null ) { for ( bhvIdx=3D0; (bhv=3DobjPlayer.Bhv[bhvIdx]) !=3D null; bhvIdx++ ) = bhv.Initialize( objPlayer, bhv); objPlayer.numBhv =3D bhvIdx; =09 } else objPlayer.numBhv =3D 0; playerNumber ++; =09 }=09 } function StartScenePlayers( objScene ) { for ( playerName in objScene.Players ) { objPlayer =3D objScene.Players[playerName]; =09 =09 if ( objPlayer.delay =3D=3D DELAY_NONE ) =09 StartPlayer( objPlayer ) =09 else if ( objPlayer.delay > 0 ) =09 StartOneShotTimer( objPlayer, objPlayer.delay, StartPlayer, = TMR_SCENE); } } function StartScenePlayersAfterTransition( objScene ) { =09 for ( playerName in objScene.Players ) { objPlayer =3D objScene.Players[playerName]; =09 if ( objPlayer.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 StartPlayer( objPlayer ) =09 } } function StartPlayer( objPlayer ) { =09 if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx 0 ) =09 StartOneShotTimer( bhv, bhv.delay, bhv.Start, TMR_SCENE ); } =09 StartTransition( objPlayer, objPlayer.entryTrans, IE_VISIBLE, = PlayerEntryTransitionDone ); =09 =09 if ( objPlayer.duration > 0 ) StartOneShotTimer( objPlayer, objPlayer.duration, PlayerExit, = TMR_SCENE ); =09 } function PlayerEntryTransitionDone( objPlayer ) { =09 if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx"; while ( letterIdx", letterIdx );=09 else endTagIdx =3D oldInnerHTML.indexOf( ";", letterIdx );=09 var tagString =3D oldInnerHTML.substring( letterIdx, ++endTagIdx ); newInnerHTML +=3D tagString; letterIdx =3D endTagIdx; =09 =09 if ( transUnits =3D=3D FLYIN_BY_LETTER && charNext=3D=3D"&" ) = break; =09 if ( ((tagString =3D=3D "

") || (tagString =3D=3D "
") || = (tagString =3D=3D "")) && ( transUnits !=3D FLYIN_BY_LETTER ) )=09 break; } =09 else { thisChar =3D oldInnerHTML.substring( letterIdx, ++letterIdx ); newInnerHTML +=3D thisChar; if ( transUnits =3D=3D FLYIN_BY_LETTER ) =09 break; =09 else if ( (transUnits =3D=3D FLYIN_BY_WORD ) && thisChar =3D=3D " " = ) =09 break; } } newInnerHTML +=3D "" textOrder[flyinIdx] =3D new Object(); textOrder[flyinIdx].name =3D tempID; =09 flyinIdx++; =09 } =09 if ( flyinIdx =3D=3D 0 ) return false; =09 textHTML.innerHTML =3D newInnerHTML; textHTML.newInnerHTML =3D newInnerHTML; transition.numUnits =3D flyinIdx; =09 } else { objPlayer.HTML.innerHTML =3D objPlayer.HTML.newInnerHTML; } =09 =09 =09 textOrder =3D transition.textOrder; var currentEl =3D document.all[textOrder[0].name]; =09 var currentOffset =3D currentEl.offsetLeft;=09 var previousEl, previousOffset; =09 var UltimateParent =3D currentEl.offsetParent; var ParTop=3D0,ParLeft=3D0,DocHeight=3D0,DocWidth=3D0; while( UltimateParent.offsetParent !=3D null && UltimateParent !=3D = document.body ) { ParLeft +=3D UltimateParent.offsetLeft; ParTop +=3D UltimateParent.offsetTop; if( UltimateParent.offsetHeight > DocHeight) DocHeight =3D = UltimateParent.offsetHeight; if( UltimateParent.offsetWidth > DocWidth) DocWidth =3D = UltimateParent.offsetWidth; UltimateParent =3D UltimateParent.offsetParent; } for ( var count=3D0; count"; if ( transDirection =3D=3D FLYIN_ROTATE ) =09 direction =3D count % FLYIN_ROTATE; =09 else direction =3D transDirection; =09 if ( direction =3D=3D FLYIN_LEFT ) { tempPos =3D -(currentEl.offsetParent.offsetLeft + = currentEl.offsetParent.offsetWidth); currentEl.style.posLeft =3D tempPos; =09 textOrder[count].dx =3D -movePerTick; =09 textOrder[count].dy =3D 0; textOrder[count].iterations =3D tempPos / (-movePerTick);=09 } else if ( direction =3D=3D FLYIN_RIGHT ) { tempPos =3D DocWidth - currentEl.offsetParent.offsetLeft; currentEl.style.posLeft =3D tempPos; textOrder[count].dx =3D movePerTick; =09 textOrder[count].dy =3D 0; textOrder[count].iterations =3D tempPos / movePerTick;=09 } else if ( direction =3D=3D FLYIN_TOP ) { tempPos =3D -( ParTop + currentEl.offsetParent.offsetHeight ); currentEl.style.posTop =3D tempPos; textOrder[count].dx =3D 0; textOrder[count].dy =3D (-movePerTick); =09 textOrder[count].iterations =3D tempPos / (-movePerTick);=09 } else if ( direction =3D=3D FLYIN_BOTTOM ) { tempPos =3D DocHeight=20 currentEl.style.posTop =3D tempPos; textOrder[count].dx =3D 0; textOrder[count].dy =3D movePerTick; =09 textOrder[count].iterations =3D tempPos / movePerTick;=09 } } =09 transition.charIdx =3D 0; =09 transition.moveIdx =3D 0; =09 textElName =3D transition.textOrder[0].name; transition.currentEl =3D document.all[textElName];=09 SetVisibility( transition.currentEl, IE_VISIBLE ); return true; } function StartTextFlyin( objPlayer ) { =09 SetVisibility( objPlayer.HTML, IE_VISIBLE ); StartAnimationTimer( objPlayer, TextFlyinTick ); } function TextFlyinTick( objPlayer ) { var transition =3D objPlayer.entryTrans; =09 var spanObj =3D transition.textOrder[transition.charIdx]; =09 var textEl =3D transition.currentEl; =09 =09 =09 if ( ++transition.moveIdx < spanObj.iterations) =09 { textEl.style.posTop -=3D spanObj.dy; =09 textEl.style.posLeft -=3D spanObj.dx; return false; =09 } =09 =09 textEl.style.posTop =3D 0; =09 textEl.style.posLeft =3D 0; =09 =09 if ( (charIdx =3D ++transition.charIdx) >=3D = transition.textOrder.length )=09 { objPlayer.HTML.innerHTML =3D objPlayer.HTML.oldInnerHTML; PlayerEntryTransitionDone( objPlayer ); =09 return true; =09 } else { transition.moveIdx =3D 0; =09 textElName =3D transition.textOrder[charIdx].name; transition.currentEl =3D document.all[textElName]; =09 transition.currentEl.style.visibility =3D IE_VISIBLE; =09 return false; =09 } =09 } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 var ST_WAV =3D 1;=09 var ST_MID =3D 2;=09 var NAV_EXT =3D "nav"=09 var MidiTag =3D null;=09 function Sound( delay, duration, loop, soundType, tagName, fileName ) { =09 this.Initialize =3D InitializeSound; this.Start =3D StartSound; this.Trigger =3D StartSound; this.Stop =3D StopSound; this.StopEverything =3D StopEverythingOnSounds; =09 this.delay =3D delay; this.duration =3D duration; this.loop =3D loop; this.tagName =3D tagName; this.fileName =3D fileName; this.soundType =3D soundType; } function InitializeSound( objParent, objSound ) { objSound.objParent =3D objParent; =09 objSound.html =3D document.all[objSound.tagName];=09 objSound.fileName =3D objSound.html.soundsrc; =09 =09 =09 if (objSound.soundType =3D=3D ST_MID ) { if ( MidiTag =3D=3D null ) =09 MidiTag =3D objSound.html; =09 else objSound.html =3D MidiTag; =09 } =09 } function StartSound( objSound ) {=20 =20 objSound.html.loop =3D objSound.loop; =09 objSound.html.src =3D objSound.fileName; =09 if ( objSound.soundType =3D=3D ST_WAV ) =09 objSound.html.volume =3D 0; =09 if ( objSound.duration > 0 ) StartOneShotTimer( objSound, objSound.duration, objSound.Stop, = TMR_PROJ ); } function StopSound( objSound, fPause ) { objSound.html.loop =3D 0; objSound.html.src =3D ""; =09 if ( objSound.soundType =3D=3D ST_WAV ) objSound.html.volume =3D -10000; } function StopEverythingOnSounds( objSound ) { StopSound( objSound, true ); if ( (os =3D=3D "NT") ) =09 objSound.html.volume =3D -500; =09 } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 function Swapper( idle, hover, click, replace ) { =09 this.Initialize =3D InitializeSwap; this.Start =3D StartSwap; this.Trigger =3D TriggerSwap; this.Stop =3D StopSwap; this.StopEverything =3D StopSwap; =09 this.idle =3D idle; this.hover =3D hover; this.click =3D click; this.replace =3D replace; this.Swapped =3D false; } function InitializeSwap( objParent, objSwap ) { } function StartSwap( objSwap ) { } function TriggerSwap( objSwap, eventType ) { } function StopSwap( objSwap, fPause ) { } var PATH_PER_TICK =3D new Array(50,40,30,20,10); =09 var PE_STOP =3D 0; =09 var PE_AGAIN =3D 1; =09 var PE_REV =3D 2; =09 var PE_EXIT =3D 3; =09 var PD_FWD =3D 1; var PD_BACK =3D -1; function Point( x, y, rate ) { this.x =3D x; this.y =3D y; this.rate =3D rate; } function Paths( delay, edgeEffect ) { =09 this.Initialize =3D InitializePathAnimation; this.Start =3D StartPathAnimation; this.Trigger =3D StartPathAnimation; this.Stop =3D StopPathAnimation; this.StopEverything =3D StopPathAnimation; =09 this.delay =3D delay; this.edgeEffect =3D edgeEffect; } function InitializePathAnimation( objPlayer, path ) { } function StartPathAnimation( path ) { } function StopPathAnimation( path, fPause ) { } function PathAnimationTick( path ) { } var GROW_PER_TICK =3D new Array(20,14,8,4,1); =09 function Size( zoom, rate ) { this.zoom =3D zoom; this.rate =3D rate; } function Grows( delay ) { =09 this.Initialize =3D InitializeGrowAnimation; this.Start =3D StartGrowAnimation; this.Trigger =3D StartGrowAnimation; this.Stop =3D StopGrowAnimation; this.StopEverything =3D StopGrowAnimation; =09 this.delay =3D delay; } function InitializeGrowAnimation( objPlayer, grow ) { var child =3D objPlayer.HTML.children[0]; if (child.tagName =3D=3D "A") child =3D child.children[0]; var playerType =3D GetPlayerTypeFromName( objPlayer.name );=09 =20 =20 =09 =09 =09 if ( stProjState =3D=3D PS_UNINITIALIZED ) { =20 =20 if (objPlayer.realWidth =3D=3D null) { objPlayer.realWidth =3D child.width; objPlayer.realHeight =3D child.height; } grow.realWidth =3D objPlayer.realWidth; grow.realHeight =3D objPlayer.realHeight; } if ( (playerType =3D=3D PLAYER_TEXT) )=09 { grow =3D null; =09 return; } grow.objPlayer =3D objPlayer; =09 =09 grow.currentSegment =3D grow[0]; =09 grow.currentGrowth =3D grow.currentSegment.zoom; =09 =09 if (objPlayer.firstGrowDelay =3D=3D null || objPlayer.firstGrowDelay = > grow.delay) { =20 objPlayer.firstGrowDelay =3D grow.delay; =20 child.width =3D grow.realWidth * (grow.currentSegment.zoom / 100);=09 child.height =3D grow.realHeight * (grow.currentSegment.zoom / = 100); } =09 for ( var growIndex=3D0; grow[growIndex] !=3D null; growIndex++ )=09 { gx =3D parseInt(growIndex); =09 segment =3D grow[gx]; =09 if ( grow[gx+1] =3D=3D null ) =09 { grow.finalSegment =3D grow[gx-1]; =09 break; =09 } =09 growth =3D grow[gx+1].zoom - segment.zoom; =09 if ( growth >=3D 0 ) =09 growthFactor =3D GROW_PER_TICK[segment.rate]; =09 else growthFactor =3D -(GROW_PER_TICK[segment.rate]); =09 growthTicks =3D growth / growthFactor; =09 =09 segment.number =3D gx; =09 segment.growth =3D growth; segment.growthFactor =3D growthFactor; segment.growthTicks =3D growthTicks; segment.currentTicks =3D 0; } } function StartGrowAnimation( grow ) {=09 grow.currentSegment =3D grow[0]; =09 grow.currentTicks =3D 0; StartAnimationTimer( grow, GrowAnimationTick ); } function StopGrowAnimation( grow, fPause ) { grow.objPlayer.firstGrowDelay =3D null; } function GrowAnimationTick( grow ) { var objPlayer =3D grow.objPlayer; =09 var child =3D objPlayer.HTML.children[0]; if (child.tagName =3D=3D "A") child =3D child.children[0]; var segment =3D grow.currentSegment; =09 var EndZoom =3D grow[segment.number+1].zoom; var NewcurrentGrowth =3D grow.currentGrowth + segment.growthFactor;=20 if (segment.growthFactor < 0 && NewcurrentGrowth < EndZoom) // = Shrink NewcurrentGrowth =3D EndZoom; if (segment.growthFactor >=3D 0 && NewcurrentGrowth > EndZoom) // = Grow NewcurrentGrowth =3D EndZoom; if (NewcurrentGrowth !=3D grow.currentGrowth) { grow.currentGrowth =3D NewcurrentGrowth; child.width =3D grow.realWidth*(grow.currentGrowth/100); child.height =3D grow.realHeight*(grow.currentGrowth/100); } if ( ++grow.currentTicks <=3D segment.growthTicks ) =09 return false; =09 if ( grow.currentSegment =3D=3D grow.finalSegment ) =09 return true; =09 grow.currentSegment =3D grow[ segment.number+1 ]; =09 grow.currentTicks =3D 0; return false; =09 } function Timer() { if ( Project.tickRate =3D=3D null ) =09 this.tickRate =3D DEFAULT_TICK_RATE; else this.tickRate =3D Project.tickRate; this.oneShots =3D new Array(); this.animations =3D new Array(); this.tickCounter =3D 0; =09 this.ticksPerSecond =3D 1000 / (this.tickRate);=09 this.timerID =3D null; this.StartTicking =3D StartTicking; =09 this.StopTicking =3D StopTicking; =09 } function StartTicking() { if ( this.timerID =3D=3D null ) this.timerID =3D setInterval( "TimerTick()", this.tickRate ); } function StopTicking() { if ( this.timerID !=3D null ) clearInterval( this.timerID ); this.timerID =3D null; } function TimerTick() { var timerEvent; =09 for ( var ii=3D0; ii fadeHTML.fltDesiredCurrentOpacity) fadeHTML.fltDesiredCurrentOpacity =3D objTrans.endOpacity; } // Perform the fade operation fadeHTML.filters["alpha"].Opacity =3D = fadeHTML.fltDesiredCurrentOpacity; if (fadeHTML.fltDesiredCurrentOpacity =3D=3D objTrans.endOpacity) { // Simulate the transition done event fadeHTML.TransitionDone (objPlayer); return true; // We are done! } return false; // More Ticks } ------=_NextPart_000_01D8_01C626A8.30424B10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-ID: <003001c626d0$69401be0$0100007f@LovieJones> MMF_PartType: 2 var OBJ_SCENE =3D 0; =09 var OBJ_PLAYER =3D 1; =09 var PLAYER_IMAGE =3D 0; =09 var PLAYER_TEXT =3D 1; =09 var PLAYER_DRAW =3D 2; =09 var NAME_SCENE =3D "S" =09 var NAME_PLAYER =3D "P" =09 var PLAYER_NAME_IMAGE =3D "I" =09 var PLAYER_NAME_TEXT =3D "T" var PLAYER_NAME_DRAW =3D "D" var NAV_VISIBLE =3D "show"; var NAV_HIDDEN =3D "hide"; var NAV_INHERIT =3D "inherit"; var DUR_FOREVER =3D -1; =09 var DEFAULT_PLAYER_DELAY =3D 0; =09 var DELAY_NONE =3D 0; =09 var DELAY_UNTIL_TRANSITION =3D -1; =09 var DELAY_UNTIL_TRIGGER =3D -2; =09 var DUR_UNTIL_DONE =3D -1; =09 var TT_ALL_MOUSE_EVENTS =3D 0; =09 var TT_BUTTONDOWN =3D 1; =09 var TT_BUTTONUP =3D 2; =09 var TT_MOUSEOVER =3D 3; =09 var TT_MOUSEOUT =3D 4; =09 var TB_PAGE_TURNER =3D -1; =09 var TB_START_PLAYER =3D -2; =09 var NULL_TRANSITION =3D -1; var TEXT_FLYIN =3D 101; var TEXT_TYPEWRITER =3D 102; g_utilDoc =3D parent.parent; document.all =3D new Array; window.onload =3D OnLoad; window.onerror =3D g_utilDoc.OnError; function OnLoad () { =20 Extract (document); InitScene ();=20 StartScene (); } function Extract( obj ) { for (var intLayer =3D 0; intLayer< obj.layers.length; intLayer++)=09 { var el =3D obj.layers[intLayer]; =09 document.all[el.id] =3D new Object =09 var newEl =3D document.all[el.id]; =09 newEl.id =3D el.id; =09 if (null!=3Del.clip)=20 { newEl.offsetWidth =3D el.clip.width; =09 newEl.offsetHeight =3D el.clip.height } newEl.NSLayer =3D el; =09 for (var intLoop =3D 0; intLoop< el.document.images.length; intLoop++) { var image =3D el.document.images[intLoop] =09 var imageName =3D image.name; =09 if ( imageName =3D=3D null ) =09 continue; =09 document.all[imageName] =3D image; =09 document.images[imageName] =3D image; =09 } for (var intLoop =3D 0; intLoop< el.document.forms.length; intLoop++)=20 { var form =3D el.document.forms[intLoop]; =09 var formName =3D form.name; =09 if ( formName =3D=3D null ) continue; document.all[formName] =3D form; =09 document.forms[formName] =3D form; =09 for ( var innerLoop =3D 0; innerLoop < form.elements.length; = innerLoop++) { var element =3D form.elements[innerLoop]=09 var elementName =3D element.name; if ( elementName =3D=3D null ) =09 continue; document.all[elementName] =3D element;=09 } } if ( el.layers.length > 0 ) =09 Extract(el) =09 } } function InitBehaviors (obj) { var bhvIdx =3D 0; if (obj.Bhv !=3D null) { var bhv; for (; (bhv =3D obj.Bhv[bhvIdx]) !=3D null; bhvIdx++) bhv.Init (obj, bhv); } obj.numBhv =3D bhvIdx;=20 } function StartBehaviors (obj) { if (obj.Bhv !=3D null) { var bhv; for (var bhvIdx =3D 0; bhvIdx < obj.numBhv; bhvIdx++) { bhv =3D obj.Bhv[bhvIdx]; if (bhv !=3D null)=20 { if (null =3D=3D bhv.delay || DELAY_NONE =3D=3D bhv.delay) bhv.Start (bhv); else g_utilDoc.StartOneShotTimer (bhv, bhv.delay, bhv.Start, = g_utilDoc.TMR_SCENE); } } } } function StopBehaviors (obj) { if (obj.Bhv !=3D null) { var bhv; for (var bhvIdx =3D 0; bhvIdx < obj.numBhv; bhvIdx++) { bhv =3D obj.Bhv[bhvIdx]; if (bhv !=3D null)=20 bhv.StopEverything (bhv); } } } function Scene (duration, name) { this.duration =3D duration; this.name =3D name; } function InitScene () { DocScene.HTML =3D document.all[DocScene.name]; =09 SetVisibility (DocScene.HTML, NAV_HIDDEN);=09 InitPlayers ();=20 if ( DocScene.entryTrans =3D=3D null ) { DocScene.entryTrans =3D new Object(); DocScene.entryTrans.type =3D NULL_TRANSITION; } InitBehaviors (DocScene); } function SceneExit (objScene) { g_utilDoc.DocSceneExit (); } function StartScene () { StartBehaviors (DocScene); StartScenePlayers ();=20 StartNavTransition (DocScene, NAV_VISIBLE, SceneTransitionDone); if (DocScene.duration !=3D DUR_FOREVER) g_utilDoc.StartOneShotTimer (DocScene, DocScene.duration, SceneExit, = g_utilDoc.TMR_SCENE); } function StopEverythingOnScene () { StopBehaviors (DocScene); StopEverythingOnPlayers (); } function SceneTransitionDone (objScene) { if ( DocScene.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx < DocScene.numBhv; bhvIdx++ )=09 { var bhv =3D DocScene.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 bhv.Start( bhv ); =09 } StartScenePlayersAfterTransition ();=09 } function Player( delay, duration ) { this.delay =3D delay; this.duration =3D duration; } function ShowAllPlayers () { for (playerName in DocScene.Players) SetVisibility (DocScene.Players[playerName].HTML, NAV_VISIBLE); } function InitPlayers () { var objPlayer; =09 var playerNumber =3D 0; =09 for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 objPlayer.number =3D playerNumber; =09 objPlayer.name =3D playerName; =09 objPlayer.HTML =3D document.all[playerName]; =09 SetVisibility (objPlayer.HTML, NAV_HIDDEN); =09 objPlayer.position =3D new Position(objPlayer); =09 if ( objPlayer.delay =3D=3D null ) =09 objPlayer.delay =3D DEFAULT_PLAYER_DELAY; =09 if ( objPlayer.entryTrans =3D=3D null ) { objPlayer.entryTrans =3D new Object(); objPlayer.entryTrans.type =3D NULL_TRANSITION; }=20 else if ((objPlayer.entryTrans !=3D null) && =09 (GetPlayerTypeFromName(objPlayer.name) =3D=3D PLAYER_TEXT)) { if ((TEXT_FLYIN =3D=3D objPlayer.entryTrans.type) || (TEXT_TYPEWRITER = =3D=3D objPlayer.entryTrans.type)) objPlayer.entryTrans.type =3D null; } if ( objPlayer.exitTrans =3D=3D null ) { objPlayer.exitTrans =3D new Object(); objPlayer.exitTrans.type =3D NULL_TRANSITION; } InitBehaviors (objPlayer); playerNumber ++; =09 }=09 } function StopEverythingOnPlayers () { var objPlayer; =09 for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 StopBehaviors (objPlayer); DisableTrigger( objPlayer ); =09 }=09 } function StartScenePlayers () { for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 if ( objPlayer.delay =3D=3D DELAY_NONE ) =09 StartPlayer( objPlayer ) =09 else if ( objPlayer.delay > 0 ) =09 g_utilDoc.StartOneShotTimer (objPlayer, objPlayer.delay, StartPlayer, = g_utilDoc.TMR_SCENE); } } function StartScenePlayersAfterTransition () { for ( playerName in DocScene.Players ) { objPlayer =3D DocScene.Players[playerName]; =09 if ( objPlayer.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 StartPlayer( objPlayer ) =09 } } function StartPlayer( objPlayer ) { StartBehaviors (objPlayer) StartNavTransition (objPlayer, NAV_VISIBLE, PlayerEntryTransitionDone); if ( objPlayer.duration > 0 ) g_utilDoc.StartOneShotTimer (objPlayer, objPlayer.duration, PlayerExit, = g_utilDoc.TMR_SCENE); } function PlayerEntryTransitionDone( objPlayer ) { if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx < objPlayer.numBhv; bhvIdx++ )=09 { var bhv =3D objPlayer.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.delay =3D=3D DELAY_UNTIL_TRANSITION )=09 bhv.Start( bhv ); =09 } if ( objPlayer.Triggers !=3D null ) EnableTrigger( objPlayer ); } function PlayerExit( objPlayer ) { StartNavTransition (objPlayer, NAV_HIDDEN, PlayerExitTransitionDone); } function PlayerExitTransitionDone (objPlayer) { if ( objPlayer.Bhv !=3D null ) for ( bhvIdx=3D0; bhvIdx < objPlayer.numBhv; bhvIdx++ )=09 { var bhv =3D objPlayer.Bhv[bhvIdx] if ( bhv =3D=3D null) =09 continue; if ( bhv.duration =3D=3D DUR_UNTIL_DONE ) =09 bhv.Stop( bhv ); =09 } SetVisibility (objPlayer.HTML, NAV_HIDDEN); =09 } function Trigger( trigType, trigBhv, player, scene ) { this.triggerType =3D trigType; this.triggerBhv =3D trigBhv; this.player =3D player; this.nextSceneNum =3D scene; } function EnableTrigger (objPlayer) { for ( trx in objPlayer.Triggers ) =09 { var trigger =3D objPlayer.Triggers[trx];=09 if ( trigger.triggerType =3D=3D null ) trigger.triggerType =3D 0; =09 var tt =3D trigger.triggerType; =09 if ( tt=3D=3D 0 ) =09 { objPlayer.HTML.NSLayer.captureEvents( Event.MOUSEUP | Event.MOUSEDOWN | = Event.MOUSEOVER | Event.MOUSEOUT ); objPlayer.HTML.NSLayer.onMouseUp =3D EventProcessor; objPlayer.HTML.NSLayer.onMouseDown =3D EventProcessor; objPlayer.HTML.NSLayer.onMouseOver =3D EventProcessor; objPlayer.HTML.NSLayer.onMouseOut =3D EventProcessor; } else if ( tt =3D=3D TT_BUTTONUP ) { objPlayer.HTML.NSLayer.captureEvents(Event.MOUSEUP); objPlayer.HTML.NSLayer.onMouseUp =3D EventProcessor; } else if ( tt =3D=3D TT_BUTTONDOWN ) { objPlayer.HTML.NSLayer.captureEvents(Event.MOUSEDOWN); objPlayer.HTML.NSLayer.onMouseDown =3D EventProcessor; } } } function DisableTrigger (objPlayer) { objPlayer.HTML.NSLayer.releaseEvents (Event.MOUSEUP | Event.MOUSEDOWN | = Event.MOUSEOVER | Event.MOUSEOUT); } function EventProcessor( e ) { var trigger; =09 var type; =09 var button; =09 var eventType; =09 var objPlayer; =09 if ( (objPlayer =3D GetPlayerFromName(this.id)) =3D=3D null)=09 return; type =3D e.type; button =3D e.which; if (type =3D=3D "mousedown") { if ( button !=3D 1 ) =09 return; eventType =3D TT_BUTTONDOWN; objPlayer.HTML.NSLayer.releaseEvents (Event.MOUSEDOWN); objPlayer.HTML.NSLayer.captureEvents (Event.MOUSEDOWN); } else if (type =3D=3D "mouseup") { if ( button !=3D 1 ) =09 return; eventType =3D TT_BUTTONUP; objPlayer.HTML.NSLayer.releaseEvents(Event.MOUSEUP); objPlayer.HTML.NSLayer.captureEvents(Event.MOUSEUP); } else if (type =3D=3D "mouseover") { eventType =3D TT_MOUSEOVER; } else if (type =3D=3D "mouseout") { eventType =3D TT_MOUSEOUT; } var triggerArray =3D objPlayer.Triggers; =09 var trigger; =09 for ( var trx=3D0; (trigger=3DtriggerArray[trx]) !=3D null; trx++ ) { if ( (trigger.triggerType =3D=3D 0) || (trigger.triggerType =3D=3D = eventType) ) { if ( trigger.triggerBhv =3D=3D TB_PAGE_TURNER ) { if ( (trigger.nextSceneNum =3D=3D null) || (trigger.nextSceneNum =3D=3D = "") ) g_utilDoc.DocSceneExit (); else g_utilDoc.DocSceneExit (parseInt (trigger.nextSceneNum)); } else if ( trigger.triggerBhv =3D=3D TB_START_PLAYER ) StartPlayer( GetPlayerFromName( trigger.player ) ); =09 else=20 { var objTrigPlayer =3D GetPlayerFromName( trigger.player ); =09 var bhv =3D objTrigPlayer.Bhv[trigger.triggerBhv]; =09 bhv.Trigger( bhv, eventType ); =09 } =09 } } } function Transition( type, rate, flyFrom, flySubtype ) { this.type =3D type; this.rate =3D rate; } function StartNavTransition (transObj, vis, callback) { SetVisibility (transObj.HTML, vis); callback (transObj); } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 var ST_WAV =3D 1;=09 var ST_MID =3D 2;=09 var NAV_EXT =3D "nav"=09 var MidiTag =3D null;=09 function Sound( delay, duration, loop, soundType, tagName, fileName ) { this.Init =3D InitSound; this.Start =3D StartSound; this.Trigger =3D StartSound; this.Stop =3D StopSound; this.StopEverything =3D StopSound; this.delay =3D delay; this.duration =3D duration; this.tagName =3D tagName; this.navLoop =3D (loop =3D=3D -1) ? true : false; this.fileName =3D fileName; this.soundType =3D soundType; } function InitSound (objParent, objSound) { if (objSound.duration =3D=3D SND_DUR_PROJECT) { objSound.html =3D g_utilDoc.GetProjectSoundHtml(objSound.fileName, = objSound.soundType, true); } else objSound.html =3D = document.layers.NavSoundElementsDiv.document.embeds[objSound.tagName] } function StartSound( objSound ) { if ( objSound.html !=3D null ) =09 objSound.html.play(objSound.navLoop); } function StopSound (objSound) { if (objSound.duration !=3D SND_DUR_PROJECT && objSound.html !=3D null)=20 { objSound.html.stop(); } } var TICKS_PER_FLASH =3D new Array (2,3,4,5,6);=20 function Flash (delay, rate) { this.Init =3D InitFlash; this.Start =3D StartFlash; this.Trigger =3D StartFlash; this.Stop =3D StopFlash; this.StopEverything =3D StopFlash; this.delay =3D delay; this.rate =3D rate; } function InitFlash (objPlayer, objBhv) { objBhv.objPlayer =3D objPlayer; objBhv.ElapsedTicks =3D 0; } function StartFlash (objBhv) { SetVisibility (objBhv.objPlayer.HTML, NAV_VISIBLE); g_utilDoc.StartAnimationTimer (objBhv, FlashTick); } function StopFlash (objBhv) { SetVisibility (objBhv.objPlayer.HTML, NAV_VISIBLE); } function FlashTick (objBhv) { if (0 =3D=3D (++objBhv.ElapsedTicks) % TICKS_PER_FLASH[objBhv.rate]) SetVisibility (objBhv.objPlayer.HTML, NAV_HIDDEN); else SetVisibility (objBhv.objPlayer.HTML, NAV_VISIBLE); return false;=20 } function Wave (delay, rate) { this.Init =3D InitWave; this.Start =3D StartWave; this.Trigger =3D StartWave; this.Stop =3D StopWave; this.StopEverything =3D StopWave; } function InitWave (objPlayer, objBhv) { } function StartWave (objBhv) { } function StopWave (objBhv) { } var SND_DUR_SCENE =3D -1;=09 var SND_DUR_PROJECT =3D 0;=09 function Swapper( idle, hover, click, replace ) { this.Init =3D InitSwap; this.Start =3D StartSwap; this.Trigger =3D TriggerSwap; this.Stop =3D StopSwap; this.StopEverything =3D StopSwap; this.idle =3D idle; this.hover =3D hover; this.click =3D click; this.replace =3D replace; this.Swapped =3D false; } function InitSwap (objParent, objSwap) { var idle =3D objSwap.idle; =09 var hover =3D objSwap.hover; var click =3D objSwap.click; if ( (hover !=3D null) && (hover !=3D "") && (document.all[hover].src = !=3D null) ) { SetVisibility (document.all[hover], NAV_HIDDEN); objSwap.srcHover =3D document.all[hover].src; document.all[hover].src =3D ""; } else objSwap.srcHover =3D document.all[idle].src; if ( (click !=3D null) && (click !=3D "") && (document.all[click].src = !=3D null) ) { SetVisibility (document.all[click], NAV_HIDDEN); objSwap.srcClick =3D document.all[click].src; document.all[click].src =3D ""; } else objSwap.srcClick =3D document.all[idle].src; objSwap.srcIdle =3D document.all[idle].src; } function StartSwap( objSwap ) { document.all[objSwap.idle].src =3D objSwap.srcIdle; } function TriggerSwap( objSwap, eventType ) { if ( eventType =3D=3D TT_BUTTONDOWN ) { document.all[objSwap.idle].src =3D objSwap.srcClick; if (true =3D=3D objSwap.Swapped) { objSwap.Swapped =3D false; if ((objSwap.hover =3D=3D null) || (objSwap.hover =3D=3D "")) objSwap.srcHover =3D objSwap.srcIdle; } else { objSwap.Swapped =3D true; if ((objSwap.hover =3D=3D null) || (objSwap.hover =3D=3D "")) { if (0 !=3D objSwap.replace) { objSwap.srcHover =3D objSwap.srcClick; } } } } else if ( eventType =3D=3D TT_BUTTONUP ) document.all[objSwap.idle].src =3D objSwap.srcHover; else if ( eventType =3D=3D TT_MOUSEOVER ) document.all[objSwap.idle].src =3D objSwap.srcHover; else if ( eventType =3D=3D TT_MOUSEOUT ) { if (true =3D=3D objSwap.Swapped && 0 !=3D objSwap.replace) document.all[objSwap.idle].src =3D objSwap.srcClick; else document.all[objSwap.idle].src =3D objSwap.srcIdle; } } function StopSwap (objSwap) { } var PATH_PER_TICK =3D new Array(50,40,30,20,10); =09 var PE_STOP =3D 0; =09 var PE_AGAIN =3D 1; =09 var PE_REV =3D 2; =09 var PE_EXIT =3D 3; =09 var PD_FWD =3D 1; var PD_BACK =3D -1; function Point( x, y, rate ) { this.x =3D x; this.y =3D y; this.rate =3D rate; } function Paths( delay, edgeEffect ) { this.Init =3D InitPathAnimation; this.Start =3D StartPathAnimation; this.Trigger =3D StartPathAnimation; this.Stop =3D StopPathAnimation; this.StopEverything =3D StopPathAnimation; this.delay =3D delay; this.edgeEffect =3D edgeEffect; } function InitPathAnimation( objPlayer, path ) { var segment; =09 var pathIndex; var totalDistance; =09 var distanceX; =09 var distanceY; var dx; =09 var dy; var travelTime; =09 var remX; =09 var remY; path.objPlayer =3D objPlayer; =09 halfWidth =3D Math.floor(objPlayer.HTML.offsetWidth/2); =09 halfHeight =3D Math.floor(objPlayer.HTML.offsetHeight/2); path[0].x -=3D halfWidth; path[0].y -=3D halfHeight; objPlayer.position.SetPosition( path[0].x, path[0].y ); for ( pathIndex=3D0; path[pathIndex+1] !=3D null; pathIndex++ )=09 { px =3D parseInt(pathIndex); =09 segment =3D path[px]; =09 path[px+1].x -=3D halfWidth; path[px+1].y -=3D halfHeight; distanceX =3D path[px+1].x - segment.x; =09 distanceY =3D path[px+1].y - segment.y; =09 totalDistance =3D Math.sqrt( (distanceX*distanceX) + = (distanceY*distanceY) ); travelTime =3D Math.round(totalDistance / PATH_PER_TICK[segment.rate]); if( travelTime > 0 ) { if ( distanceX > 0 ) =09 dx =3D Math.floor( distanceX / travelTime );=09 else if ( distanceX < 0 ) =09 dx =3D Math.ceil( distanceX / travelTime );=09 else dx =3D 0; if ( distanceY > 0 ) =09 dy =3D Math.floor( distanceY / travelTime ); else if ( distanceY < 0 ) dy =3D Math.ceil( distanceY / travelTime ); else dy =3D 0; } else { dx =3D dy =3D 0; } remX =3D distanceX - dx*travelTime; remY =3D distanceY - dy*travelTime; segment.number =3D px; =09 segment.ticks =3D 0; segment.travelTime =3D travelTime; segment.dx =3D dx; segment.dy =3D dy; segment.remX =3D remX; segment.remY =3D remY; } path.numSegs =3D parseInt(pathIndex); =09 path.dir =3D PD_FWD; =09 } function StartPathAnimation( path ) { path.currentSegment =3D path[0]; =09 path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 if ( path.dir =3D=3D PD_BACK ) =09 { for ( var ii=3D0; ii < path.numSegs; ii++ ) =09 { path[ii].dx *=3D -1; path[ii].dy *=3D -1; path[ii].remX *=3D -1; path[ii].remY *=3D -1; } path.dir =3D PD_FWD; =09 } g_utilDoc.StartAnimationTimer (path, PathAnimationTick); } function StopPathAnimation (path) { } function PathAnimationTick( path ) { var objPlayer =3D path.objPlayer; =09 var segment =3D path.currentSegment; =09 var currentPosition =3D objPlayer.position;=09 if ( ++segment.ticks <=3D segment.travelTime ) =09 { var newX =3D currentPosition.x + segment.dx; =09 if ( segment.ticks <=3D Math.abs(segment.remX) )=09 segment.remX > 0 ? newX++ : newX--; var newY =3D currentPosition.y + segment.dy; =09 if ( segment.ticks <=3D Math.abs(segment.remY) )=09 segment.remY > 0 ? newY++ : newY--; currentPosition.SetPosition( newX, newY );=09 return false; =09 } else if( segment.ticks=3D=3D1 && segment.travelTime=3D=3D0 ) { currentPosition.SetPosition( currentPosition.x + segment.remX, = currentPosition.y + segment.remY);=09 return false; =09 }=20 if ( ++path.cntSegs < path.numSegs ) { path.currentSegment =3D path[segment.number+path.dir]; =09 path.currentSegment.ticks =3D 0; =09 return false; } if ( path.edgeEffect =3D=3D PE_AGAIN ) =09 { objPlayer.position.SetPosition( path[0].x, path[0].y ); path.currentSegment =3D path[0]; =09 path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 return false; =09 } =09 else if ( path.edgeEffect =3D=3D PE_REV ) =09 { path.dir *=3D -1; =09 for ( var ii=3D0; ii < path.numSegs; ii++ ) { path[ii].dx *=3D -1; path[ii].dy *=3D -1; path[ii].remX *=3D -1; path[ii].remY *=3D -1; } path.currentSegment.ticks =3D 0; =09 path.cntSegs =3D 0; =09 return false; } else if ( path.edgeEffect =3D=3D PE_EXIT ) { PlayerExit( objPlayer ); return true; } else return true; =09 } var GROW_PER_TICK =3D new Array(20,14,8,4,1); =09 function Size( zoom, rate ) { this.zoom =3D zoom; this.rate =3D rate; } function Grows (delay, iAnchor) { this.Init =3D InitGrowAnimation; this.Start =3D StartGrowAnimation; this.Trigger =3D StartGrowAnimation; this.Stop =3D StopGrowAnimation; this.StopEverything =3D StopGrowAnimation; } function InitGrowAnimation (objPlayer, grow) { } function StartGrowAnimation (grow) {=09 } function StopGrowAnimation (grow) { } function SetVisibility (el, val) { if (el.id !=3D null) el.NSLayer.visibility =3D val; } function Position (obj) { this.object =3D obj; =20 this.x =3D parseInt (obj.HTML.NSLayer.left); =20 this.y =3D parseInt (obj.HTML.NSLayer.top); =20 this.SetPosition =3D SetPosition; } function SetPosition (newX, newY)=20 { var el =3D this.object.HTML; =09 if (el.id !=3D null) { =09 this.x =3D newX; this.y =3D newY; el.NSLayer.top =3D parseInt (newY); el.NSLayer.left =3D parseInt (newX); el.offsetTop =3D el.NSLayer.top; el.offsetLeft =3D el.NSLayer.left; } } function GetPlayerFromName( playerName ) { var objPlayer; if ( (DocScene) && (DocScene.Players !=3Dnull) && ((objPlayer =3D = DocScene.Players[playerName]) !=3D null) ) return objPlayer; return null; =09 } function GetObjectTypeFromName( nameString ) { var type =3D nameString.substr(0,1); =09 if (type =3D=3D NAME_SCENE)=20 return OBJ_SCENE; else if (type =3D=3D NAME_PLAYER)=20 return OBJ_PLAYER; } function GetPlayerTypeFromName( nameString ) { var type =3D nameString.substr(1,1); =09 if (type =3D=3D PLAYER_NAME_IMAGE) =20 return PLAYER_IMAGE; else if (type =3D=3D PLAYER_NAME_DRAW) =20 return PLAYER_DRAW; else if (type =3D=3D PLAYER_NAME_TEXT) =20 return PLAYER_TEXT; } ------=_NextPart_000_01D8_01C626A8.30424B10--