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--