home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 April B / Pcwk4b98.iso / ie401gb / IE4NT_S2.CAB / IE4NT_2.CAB / SHDOCVW.DLL / 2110 / ABOUT.DLG next >
Text File  |  1997-11-18  |  25KB  |  791 lines

  1. <HTML id=dlgAbout STYLE="width: 25.9em; height: 22em">
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  3. <head>
  4. <TITLE>
  5. About Internet Explorer
  6. </TITLE>
  7. <style>
  8.     .versionformat {
  9.         color: black;
  10.         font-family: MS Sans Serif;
  11.         font-size: 8pt;
  12.         position: absolute; 
  13.         left: 0em; 
  14.     top: 0em;
  15.         height: 2em; 
  16.         width:25em;
  17.     z-index: 20;
  18.        }
  19.  
  20.     .textformat {
  21.     color: black;
  22.         font-family: MS Sans Serif;
  23.         font-size:8pt;
  24.         position: absolute; 
  25.         left: 10.2em; 
  26.         top: 19.8em;  //19.5em;
  27.         height: 3em; 
  28.         width:26.5em;
  29.     }
  30.  
  31.     .logo {
  32.     color: LIGHTGREY;
  33.     font-family: MS Sans Serif;
  34.         font-size:40pt;
  35.         position: absolute; 
  36.         left: 1.9em; 
  37.         top: 4.5em;
  38.         height: 0.5em; 
  39.         width:1em;
  40.     z-index: -1;
  41.     }
  42.   .button{
  43.     position: absolute;
  44.     top: 28em;
  45.     width: 7em;
  46.     height: 2.2em;
  47.     color: black;
  48.     font-family: MS Sans Serif;
  49.            font-size:8pt;
  50.     cursor: hand;
  51.     z-index: 100;
  52.  
  53.     }
  54. </style>
  55.  
  56.  
  57.  
  58. </head>
  59.  
  60. <body id=bodyid onload="OnPageLoad()" onfilterchange="bodyOnFilterChange()" onkeydown="bodyOnKeyDown()" bgcolor="white" scroll=no leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0 style="border:none">
  61. <!--Graphics -->
  62. <div id="allPic"  STYLE="width:25em;position: absolute; top: 0px;left:0px;font-family: MS Sans Serif;font-size: 8pt; z-index: 13;">
  63. </div>
  64. <img src="ie256.gif" id="ID_IE" CLASS="Movable" style="position:absolute; left:0; top:0; width:0; height:0; visibility:hidden; z-index: 10;" FinalHeight=44, FinalWidth=39, FinalX=353, FinalY=0>
  65. <img src="world256.gif" id="ID_World"
  66.         style="position:absolute; left:0px; top:0px; width:0; height:0; visibility:hidden; z-index: 3;" 
  67.         FinalHeight=86, FinalWidth=86, FinalX=12, FinalY=56 nOrigLeft=86, nOrigTop=86>
  68.  
  69. <img src=ietxt256.bmp id="ID_IEText" style="position:absolute; left:104; top:61; width:269; height:109; visibility:hidden; z-index:100" alt="Microsoft Internet Explorer"
  70.     SuperClass="Flingable" xDelta="0" yDelta="0" reqDirX=1 reqDirY=0 nScore=2>
  71.  
  72. <img src=lines256.bmp id=lines style="position:absolute;left:0;top:0;visibility:hidden">
  73.  
  74. <div id="versionDetails" class=versionformat style="color: white; left: 10.2em;top: 15.7em">
  75. Version <SPAN id=spaVersion ></SPAN><br>
  76. Cipher Strength: <SPAN id=spaCipher ></SPAN><br>
  77. <span id=minorversion></SPAN><br>
  78. </div>
  79.  
  80. <div id="userInfo"  class=textformat style="visibility:hidden;z-index: 10;line-height: 140%">
  81.     <SPAN id=spaText>Product ID: <SPAN id=pID></SPAN></SPAN>
  82.     <BR><A href="" id=copyrightLink onclick="copyrightclick()"  > Copyright Information</A><!-- onmouseover="copyrightmouseover()" onmouseout="copyrightmouseout()" --> 
  83. </div>
  84.  
  85. <DIV id="copyrightDetails"  class=textformat style="visibility:hidden">
  86.     Based on NCSA Mosaic. NCSA Mosaic(TM); was developed at the National Center for
  87.     Supercomputing Applications at the University of Illinois at Urbana-Champaign. Distributed under a 
  88.     licensing agreement with Spyglass, Inc.
  89. </DIV>
  90.  
  91. <!-- <div id="copyrightLogo" class=logo style="visibility:hidden;z-index: 9">©©©</DIV> -->
  92. <DIV id="copyrightDetails2" class=textformat style="visibility:hidden">
  93.     <P>Contains security software licensed from<BR>RSA Data Security Inc.</P>
  94.     <p style="position: relative; top: -0.5em">Portions of this software are based in part<BR>on the work of the Independent
  95.     JPEG Group.</P>
  96. </DIV>
  97. <DIV id="copyrightDetails3" class=textformat style="visibility:hidden">
  98.     <p>Contains SOCKS client software licensed from<BR>Hummingbird Communications Ltd</P>
  99.     <p style="position: relative; top: -0.5em">Contains ASN.1 software licensed from<BR>Open Systems Solutions, Inc.</P>
  100. </DIV>
  101. <DIV id="copyrightDetails4" class=textformat style="visibility:hidden">
  102.     <p>Multimedia software components, including Indeo(R); video, Indeo(R) audio, and Web Design Effects are provided by Intel Corp</P>
  103. </DIV>
  104.  
  105.  
  106. <DIV id=warning  class=textformat style="visibility:hidden">
  107. Warning:  This computer program is protected by copyright law and
  108. international treaties.  Unauthorized reproduction or distribution of
  109. this program, or any portion of it, may result in severe civil and
  110. criminal penalties, and will be prosecuted to the maximum extent
  111. possible under the law.
  112. </div>
  113. <div id=gettingStarted class=textformat style="visibility:hidden;line-height:175%"><a href="res://ie4tour.dll/tour.htm#MinimalTour=1" onclick="gettingStartedClick()">Take a Quick Tour</A>
  114. <div id=techSupport style="visibility:hidden"><a href="http://www.microsoft.com/iesupport/">Technical Support</a></div>
  115. <DIV id=copyrightMicrosoft  style="visibility:hidden"><a href="http://www.microsoft.com/" id="copyright">Copyright ©1995-97 Microsoft Corp.</a><span id="rightsReserved"><BR>All rights reserved.</span></DIV>
  116. </DIV>
  117. <BUTTON id="backButton" class=button accessKey="B" onClick="backButtononclick()" style="left: 31.5em; visibility: hidden">< <U>B</U>ack</BUTTON> <!-- onmouseover="buttonOnMouseOver()" onmouseout="buttonOnMouseOut()" --> 
  118. <BUTTON id="nextButton" class=button accessKey="N" onClick="nextButtononclick()"  style="left: 31.5em; visibility: hidden"><U>N</U>ext ></BUTTON> <!-- onmouseover="buttonOnMouseOver()" onmouseout="buttonOnMouseOut()" --> 
  119. <BUTTON id="okButton" class=button onClick="window.close();" style="left: 29.5em; visibility: hidden">OK</BUTTON> <!-- onmouseover="buttonOnMouseOver()" onmouseout="buttonOnMouseOut()" --> 
  120. <BUTTON id="ID_Lock" class=button onClick="UnLock(ID_Lock);" style="left:104; top:61; visibility: hidden; z-index:1">Unlock</BUTTON>
  121. <SCRIPT language=javascript>
  122. window.onerror = HandleError;
  123. var isMMInstalled=0;  //Disable MM because of DirectD flicker bug on S3 cards
  124. var beforeLinksDivCount=5;
  125. var totaldivCount=8;
  126. var noReEntry=0;
  127. var curDiv=0;
  128. var fade=0;
  129. var backwards=0;
  130. divNames = new Object();
  131. divNames[0]="userInfo";
  132. divNames[1]="copyrightDetails";
  133. divNames[2]="copyrightDetails2";
  134. divNames[3]="copyrightDetails3";
  135. divNames[4]="copyrightDetails4";
  136. divNames[5]="warning";
  137. divNames[6]="gettingStarted";
  138. divNames[7]="techSupport";
  139. divNames[8]="copyrightMicrosoft";
  140.  
  141. var g_nFinalGrowth = 12;
  142. var g_nCurrGrowth = 0;
  143.  
  144. var g_nDragOffsetX=0;
  145. var g_nDragOffsetY=0;
  146. var g_fInDrag=0;
  147. var g_nStep=0;
  148. var g_nMaxStepHistory=4;
  149. var g_szPrevElement="";
  150. var g_cFlungObjects=0;
  151. var g_nScore=0;
  152. var g_nScoreNeeded=3;  // 1 for text  + 1 for button
  153.  
  154. FlingingItems = new Object();
  155.  
  156. CursorHistoryX = new Object();
  157. CursorHistoryY = new Object();
  158.  
  159. var g_nWobbleAmount = 4;
  160.  
  161. //+-------------------------------------------------------------------
  162. //
  163. //  Synopsis:   Turns off error messages in dialogs
  164. //
  165. //  Arguments:  none
  166. //
  167. //  returns:    true (tells browser not to handle message)
  168. //
  169. //--------------------------------------------------------------------
  170.  
  171.  
  172. function HandleError(message, url, line)
  173. {
  174.     var L_Dialog_ErrorMessage = "An error has occured in this dialog.";
  175.     var L_ErrorNumber_Text = "Error: ";
  176.  
  177.     var str = L_Dialog_ErrorMessage + "\n\n" 
  178.         + L_ErrorNumber_Text + line + "\n"
  179.         + message;
  180.  
  181.     alert (str);
  182.     window.close();
  183.  
  184.     return true;
  185. }
  186.  
  187.  
  188. //function called by body.onload.  Starts initial animation
  189. function OnPageLoad()
  190. {
  191.     var L_UpdateVersions_Text = "Update versions: "; 
  192.    
  193.     if(window.screen.colorDepth<8)
  194.     {
  195.         document.all["ID_IE"].src="ie.gif";
  196.         document.all["ID_World"].src="world.bmp";
  197.         document.all["lines"].src="lines.bmp";
  198.         document.all["ID_IEText"].src="ietext.bmp";
  199.     }
  200.     else
  201.         document.body.bgColor="#F8F8F8";
  202.  
  203.     if(isMMInstalled==1)
  204.     {
  205.         for(i=0;i<=beforeLinksDivCount;i++)
  206.         {
  207.             document.all[divNames[i]].style.filter="blendTrans(duration=0.5)";
  208.             document.all[divNames[i]].onfilterchange="onfilterchangeHandler()";
  209.         }
  210.         for(i=beforeLinksDivCount+1;i<=totaldivCount;i++)
  211.         {
  212.             document.all[divNames[i]].style.filter="blendTrans(duration=0.5)";
  213.             document.all[divNames[i]].onfilterchange="onfilterchangeHandlerLinks()";
  214.         }
  215.         document.all.copyrightLogo.style.filter="blendTrans(duration=0.5)";
  216.     }
  217.  
  218.     if ((null != window.dialogArguments))
  219.     {
  220.         arrArgs = window.dialogArguments.split("~");
  221.         spaVersion.innerText = arrArgs[0];
  222.         if (arrArgs[3] == "168") spaCipher.innerText = "128-bit supported";
  223.         if (arrArgs[3] == "128") spaCipher.innerText = "40-bit supported";
  224.         pID.innerText=arrArgs[4];
  225.     }
  226.  
  227.     //Check for QFEs
  228.     var mv=window.navigator.appMinorVersion;
  229.     if(mv!="0") minorversion.innerText=L_UpdateVersions_Text + mv;
  230.     spaText.innerText = spaText.innerText;
  231.     backButton.style.posLeft=okButton.style.posLeft-15.3;
  232.     nextButton.style.posLeft=okButton.style.posLeft-7.6;
  233.     allPic.style.pixelLeft=userInfo.offsetLeft-103;
  234.     allPic.style.pixelTop=(versionDetails.offsetTop-170)/2;
  235.  
  236.     //start initial animation
  237.     document.all["ID_World"].style.visibility="";
  238.     document.all["ID_IE"].style.visibility="";
  239.  
  240.     // Create final x/y for World and Logo.
  241.     document.all["ID_IE"].FinalX=allPic.style.posLeft+350;
  242.     document.all["ID_IE"].FinalY=allPic.style.posTop+0;
  243.     document.all["ID_World"].FinalX=allPic.style.posLeft+10;
  244.     document.all["ID_World"].FinalY=allPic.style.posTop+50;
  245.     document.all["ID_World"].nOrigLeft=document.all["ID_World"].FinalX;
  246.     document.all["ID_World"].nOrigTop=document.all["ID_World"].FinalY;
  247.  
  248.     // Move World and Logo onto screen.
  249.     window.setTimeout("DoGrow();",100);
  250. }
  251.  
  252. //this function grows the earth and IE logos from the upper left corner
  253. function DoGrow()
  254. {
  255.     g_nCurrGrowth += 1;
  256.  
  257.     ID_World.style.posHeight = Math.round(parseInt(ID_World.FinalHeight) * (g_nCurrGrowth/g_nFinalGrowth));
  258.     ID_World.style.posWidth = Math.round(parseInt(ID_World.FinalWidth) * (g_nCurrGrowth/g_nFinalGrowth));
  259.     ID_World.style.posLeft = Math.round(parseInt(ID_World.FinalX) * (g_nCurrGrowth/g_nFinalGrowth));
  260.     ID_World.style.posTop = Math.round(parseInt(ID_World.FinalY) * (g_nCurrGrowth/g_nFinalGrowth));
  261.  
  262.     document.all.ID_IE.style.posHeight = Math.round(parseInt(document.all.ID_IE.FinalHeight) * (g_nCurrGrowth/g_nFinalGrowth));
  263.     document.all.ID_IE.style.posWidth = Math.round(parseInt(document.all.ID_IE.FinalWidth) * (g_nCurrGrowth/g_nFinalGrowth));
  264.     document.all.ID_IE.style.posLeft = Math.round(parseInt(document.all.ID_IE.FinalX) * (g_nCurrGrowth/g_nFinalGrowth));
  265.     document.all.ID_IE.style.posTop = Math.round(parseInt(document.all.ID_IE.FinalY) * (g_nCurrGrowth/g_nFinalGrowth));
  266.  
  267.  
  268.     if(g_nCurrGrowth < g_nFinalGrowth)
  269.     {
  270.         window.setTimeout("DoGrow()",1);
  271.     }
  272.     else
  273.     {
  274.         window.setTimeout("DoPics()",200);
  275.     }
  276. }
  277.  
  278. //When done growing, display the other parts of the IE splash screen
  279. function DoPics() {
  280.     ID_IEText.style.posTop=allPic.offsetTop+60;
  281.     ID_IEText.style.posLeft=allPic.offsetLeft+98;
  282.     ID_IEText.style.visibility="";
  283.  
  284.     ID_Lock.style.posTop=ID_IEText.style.posTop+30;
  285.     ID_Lock.style.posLeft=ID_IEText.style.posLeft+100;
  286.     ID_Lock.style.visibility="";
  287.  
  288.     lines.style.posLeft=allPic.style.posLeft+43;
  289.     lines.style.posTop=allPic.style.posTop+17;
  290.     lines.style.visibility="";
  291.  
  292.     window.setTimeout("startVersion()",500);
  293. }
  294.  
  295. //Start version number sliding in from bottom
  296. function startVersion() {
  297.     versionDetails.style.posTop=28;
  298.     versionDetails.style.color="black";
  299.     DoVersion();
  300. }
  301.  
  302. function DoVersion() {
  303. if (versionDetails.style.posTop>15.7) versionDetails.style.posTop=versionDetails.style.posTop-1;
  304. if (versionDetails.style.posTop<=15.7) 
  305.     {
  306.     versionDetails.style.posTop=15.7;
  307.     okButton.style.visibility="";
  308.     okButton.focus();
  309.     window.setTimeout("DoShow()",100);
  310.     showDiv=-2;
  311.     }
  312. else window.setTimeout("DoVersion()",1);
  313. }
  314.  
  315. //General function for showing the different paragraphs of text
  316. //If MM is used, performs a fade-in transition
  317.  
  318. function DoShow() {
  319. if(isMMInstalled==1) document.all[divNames[curDiv]].filters[0].Apply();
  320. document.all[divNames[curDiv]].style.visibility="visible";
  321. if(isMMInstalled==1) document.all[divNames[curDiv]].filters[0].Play();
  322. //Next two lines call the filterchanged events manually
  323. //when MM is not enabled
  324. else if(curDiv<=beforeLinksDivCount) onfilterchangeHandler();
  325. else onfilterchangeHandlerLinks();
  326. }
  327.  
  328. //General function for hiding the different paragraphs
  329. //IF MM is used, performs a fade-out transition
  330.  
  331. function DoFade() {
  332. var divNum=DoFade.arguments[0];
  333. fade=1;
  334. if(isMMInstalled==1) document.all[divNames[divNum]].filters[0].Apply();
  335. document.all[divNames[divNum]].style.visibility="hidden";
  336. if(isMMInstalled==1) document.all[divNames[divNum]].filters[0].Play();
  337. //Next two lines call the filterchanged events manually
  338. //when MM is not enabled
  339. else if(curDiv<=beforeLinksDivCount) onfilterchangeHandler();
  340. else {
  341.     if(backwards==0) curDiv=curDiv-1; 
  342.     onfilterchangeHandlerLinks();
  343.     }
  344. }
  345.  
  346. //Logo behind copyright info needs separate fade routine
  347.  
  348. //function DoLogoFade() { //Fade logo characters
  349. //if(isMMInstalled==1) document.all.copyrightLogo.filters[0].Apply();
  350. //document.all.copyrightLogo.style.visibility="hidden";
  351. //if(isMMInstalled==1) document.all.copyrightLogo.filters[0].Play();
  352. //}
  353.  
  354. //When copyright link is clicked, show first paragraph of copyright info
  355.  
  356. function copyrightclick(){
  357. window.event.returnValue=0;
  358. if (noReEntry!=1) 
  359.     {
  360.     backButton.style.visibility="";    
  361.     nextButton.style.visibility="";    
  362.     backButton.disabled=0;
  363.     curDiv=1;
  364.     noReEntry=1;
  365.     DoFade(0);
  366. //    DoLogoFade();
  367.     }
  368. }
  369.  
  370. //Show logo underneath copyright link when hover over
  371. //function copyrightmouseover(){
  372. //copyrightLogo.style.visibility="visible";
  373. //}
  374.  
  375. //Hide logo again when mouse leaves copyright link
  376. //function copyrightmouseout(){
  377. //copyrightLogo.style.visibility="hidden";
  378. //}
  379.  
  380. //Go back one paragraph.  Check to see if at beginning
  381. function backButtononclick(){
  382. if (noReEntry==0) {
  383.     curDiv=curDiv-1;
  384.     if(curDiv<0) curDiv=0;
  385.     else {
  386.          noReEntry=1;
  387.          backwards=1;
  388.          //Fade old div out
  389.          DoFade(curDiv+1); 
  390.          }
  391.     }
  392. setButtonColor();
  393. }
  394.  
  395. //Go forward one paragraph
  396. function nextButtononclick(){
  397. if (noReEntry==0) {
  398.     curDiv=curDiv+1;
  399.     if(curDiv>beforeLinksDivCount+1) curDiv=beforeLinksDivCount+1;
  400.     else {
  401.          noReEntry=1;
  402.          //Fade old div out
  403.          DoFade(curDiv-1);
  404.          }
  405.     }
  406. setButtonColor();
  407. }
  408.  
  409. //Check to see if one of the buttons should be disabled
  410. //if at the beginning or end of the paragraphs
  411.  
  412. function setButtonColor() {
  413. if((curDiv==beforeLinksDivCount+1)&&(backwards==0)) {
  414.     nextButton.style.color="";
  415.     nextButton.disabled=1;
  416.     }
  417. else {
  418.       nextButton.disabled=0;
  419.       if(curDiv==0) {
  420.     backButton.style.color="";
  421.     backButton.disabled=1;
  422.     }
  423.       else backButton.disabled=0;
  424.      }
  425. }
  426.  
  427. //Respond to ESC key
  428.  
  429. function bodyOnKeyDown() {
  430. if (window.event.keyCode==27) window.close();
  431. }
  432.  
  433. //General function for turning the buttons text blue when mouseover
  434.  
  435. function buttonOnMouseOver(){
  436. var srcElement=window.event.srcElement;
  437. if (((srcElement.id!="backButton")|| (backButton.disabled==0))&&((srcElement.id!="nextButton")||(nextButton.disabled==0))) window.event.srcElement.style.color="blue";
  438. }
  439.  
  440. //General function for restoring the buttons text when mouse out
  441.  
  442. function buttonOnMouseOut(){
  443. var srcElement=window.event.srcElement;
  444. if (((srcElement.id!="backButton")|| (backButton.disabled==0))&&((srcElement.id!="nextButton")||(nextButton.disabled==0))) window.event.srcElement.style.color="";
  445. }
  446.  
  447. //launch IE tour in new window
  448.  
  449. function gettingStartedClick() {
  450. var foo="gettingstarted";
  451. window.open("res://ie4tour.dll/tour.htm#MinimalTour=1",foo,"");
  452. window.event.returnValue=false;
  453. return false;
  454. }
  455.  
  456. //Event is called when a transition is complete
  457. //Used to go from fade of one paragraph to show of the next
  458. //This event is called manually when MM is not enabled
  459.  
  460. function onfilterchangeHandler() {
  461. if(fade==1) window.setTimeout("DoShow()",100);
  462. else noReEntry=0;
  463. backwards=0;
  464. fade=0;
  465. }
  466.  
  467. //Separate event for the links, since they act differently
  468. //This is also called manually when MM is not enabled
  469.  
  470. function onfilterchangeHandlerLinks() {
  471. if(backwards!=1) { //going forwards
  472.     if(curDiv<totaldivCount) 
  473.         {
  474.         curDiv=curDiv+1;
  475.         window.setTimeout("DoShow()",100);
  476.         }
  477.     else     noReEntry=0;
  478.     }        
  479. else { //going backwards
  480.     if(curDiv>beforeLinksDivCount) { //still have links to fade
  481.         curDiv=curDiv-1;
  482.         window.setTimeout("DoFade(" +parseInt(curDiv+1) +")",100);
  483.         }
  484.     else {    //show div the comes before the links
  485.         curDiv=beforeLinksDivCount;
  486.         window.setTimeout("DoShow()",100);
  487.         }
  488.     }          
  489. fade=0;
  490. }
  491.  
  492.  
  493. // BUGBUG: This is a hack to work around MSHTML crashing on document.onselectstart events
  494. // being canceled (false being returned).
  495. var g_fWasMouseDown;
  496.  
  497. function MyOnMouseDown()
  498. {
  499.     g_fWasMouseDown = window.event.button;
  500. }
  501.  
  502. document.onmousedown = MyOnMouseDown;
  503.  
  504.  
  505. function CancelEvent()
  506. {
  507.     if (2 == g_fWasMouseDown)
  508.     {
  509.         return true;        // Trident crashes when Right-Click events are canceled.
  510.     }
  511.  
  512.     return false;   // Cancel event.
  513. }
  514.  
  515. // Disable text and object selecting.
  516. document.onselectstart = CancelEvent;
  517. document.ondragstart = CancelEvent;
  518.  
  519. function OpenEEGG()
  520. {
  521.     // Do the navigation
  522.     window.open("wcee.htm", "TheWCEE", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=414,height=352");
  523.     window.close();
  524.     return false;
  525. }
  526.  
  527.  
  528. function GetIndex(nStep, nDelta)
  529. {
  530.     nReturn = nStep + nDelta;
  531.  
  532.     if (nReturn < 0)
  533.         nReturn += g_nMaxStepHistory;
  534.  
  535.     if (g_nMaxStepHistory <= nReturn)
  536.         nReturn -= g_nMaxStepHistory;
  537.  
  538.     return nReturn;
  539. }
  540.  
  541. function StartFlinging()
  542. {
  543.     nStop = 1;
  544.  
  545.     for (j in FlingingItems)
  546.     {
  547.         obj = FlingingItems[j];
  548.  
  549.         if(obj.xDelta != 0) obj.style.pixelLeft += obj.xDelta;
  550.         if(obj.yDelta != 0) obj.style.pixelTop += obj.yDelta;
  551.  
  552.         if ((obj.style.pixelLeft > -1000) && (obj.style.pixelLeft < 2000) &&
  553.             (obj.style.pixelTop > -1000) && (obj.style.pixelTop < 2000))
  554.             nStop = 0;
  555.     }
  556.  
  557.     // Stop looping when object is fully off the screen.
  558.     if (0 == nStop)
  559.     {
  560.         window.setTimeout("StartFlinging()", 10);
  561.     }
  562. }
  563.  
  564. function TrackStep(x, y, e, bkey)
  565. {
  566.     CursorHistoryX[g_nStep] = x;
  567.     CursorHistoryY[g_nStep] = y;
  568.  
  569.     // Did we just bounce into a flingable object?
  570.     if ((e.SuperClass != g_szPrevElement) && (e.SuperClass == "Flingable"))
  571.     {
  572.         fValidFling = 1;
  573.         // Yes, so see if we can fling it.
  574.  
  575.         if (0 == e.reqDirX)
  576.         {
  577.             nIndex = 0;
  578.  
  579.             // It's necessary that all x movement remain within object width.
  580.             while ((nIndex < (g_nMaxStepHistory - 1)) && (1 == fValidFling))
  581.             {
  582.                 nPrevX = CursorHistoryX[GetIndex(g_nStep, -nIndex)];
  583.                 if ((nPrevX < e.style.pixelLeft) ||
  584.                     (nPrevX > e.style.pixelLeft + e.style.pixelWidth))
  585.                 {
  586.                     fValidFling = 0;
  587.                 }
  588.                 nIndex++;
  589.             }
  590.         }
  591.         else
  592.         {
  593.             nIndex = 0;
  594.  
  595.             // It's necessary that all x movement stay constantly left or right.
  596.             while ((nIndex < (g_nMaxStepHistory - 1)) && (1 == fValidFling))
  597.             {
  598.                 if (0 < e.reqDirX)
  599.                 {
  600.                     if (CursorHistoryX[GetIndex(g_nStep, -nIndex)] < CursorHistoryX[GetIndex(g_nStep, -nIndex - 1)])
  601.                     {
  602.                         fValidFling = 0;
  603.                     }
  604.                 }
  605.                 else
  606.                 {
  607.                     if (CursorHistoryX[GetIndex(g_nStep, -nIndex)] > CursorHistoryX[GetIndex(g_nStep, -nIndex - 1)])
  608.                     {
  609.                         fValidFling = 0;
  610.                     }
  611.                 }
  612.                 nIndex++;
  613.             }
  614.         }
  615.  
  616.         if (1 == fValidFling)
  617.         {
  618.             if (0 == e.reqDirY)
  619.             {
  620.                 nIndex = 0;
  621.  
  622.                 // It's necessary that all y movement remain within object height.
  623.                 while ((nIndex < (g_nMaxStepHistory - 1)) && (1 == fValidFling))
  624.                 {
  625.                     nPrevY = CursorHistoryY[GetIndex(g_nStep, -nIndex)];
  626.                     if ((nPrevY < e.style.pixelTop) ||
  627.                         (nPrevY > e.style.pixelTop + e.style.pixelHeight))
  628.                     {
  629.                         fValidFling = 0;
  630.                     }
  631.                     nIndex++;
  632.                 }
  633.             }
  634.             else
  635.             {
  636.                 nIndex = 0;
  637.  
  638.                 // It's necessary that all y movement stay constantly up or down.
  639.                 while ((nIndex < (g_nMaxStepHistory - 1)) && (1 == fValidFling))
  640.                 {
  641.                     if (0 < e.reqDirY)
  642.                     {
  643.                         if (CursorHistoryY[GetIndex(g_nStep, -nIndex)] < CursorHistoryY[GetIndex(g_nStep, -nIndex - 1)])
  644.                         {
  645.                             fValidFling = 0;
  646.                         }
  647.                     }
  648.                     else
  649.                     {
  650.                         if (CursorHistoryY[GetIndex(g_nStep, -nIndex)] > CursorHistoryY[GetIndex(g_nStep, -nIndex - 1)])
  651.                         {
  652.                             fValidFling = 0;
  653.                         }
  654.                     }
  655.                     nIndex++;
  656.                 }
  657.             }
  658.         }
  659.  
  660.         if ((1 == fValidFling) && bkey)
  661.         {
  662.             nXDelta = CursorHistoryX[g_nStep] - CursorHistoryX[GetIndex(g_nStep, -g_nMaxStepHistory + 1)];
  663.             nYDelta = CursorHistoryY[g_nStep] - CursorHistoryY[GetIndex(g_nStep, -g_nMaxStepHistory + 1)];
  664.  
  665.             if (0 != e.reqDirX)
  666.                 e.xDelta = Math.round(nXDelta / 2);
  667.             else
  668.                 e.xDelta = 0;
  669.  
  670.             if (0 != e.reqDirY)
  671.                 e.yDelta = Math.round(nYDelta / 2);
  672.             else
  673.                 e.yDelta = 0;
  674.  
  675.             FlingingItems[FlingingItems.length] = e;
  676.             g_cFlungObjects++;
  677.             g_nScore += (g_cFlungObjects * e.nScore);
  678.             StartFlinging();
  679.         }
  680.  
  681.     }
  682.  
  683.  
  684.     // Increment
  685.     g_szPrevElement = e.SuperClass;
  686.     g_nStep = GetIndex(g_nStep, 1);
  687. }
  688.  
  689. function StartWorldGrow()
  690. {
  691.     if (ID_World.style.pixelWidth > 800)
  692.     {
  693.         OpenEEGG();
  694.     }
  695.     else
  696.     {
  697.         ID_World.style.pixelWidth += 100;
  698.         ID_World.style.pixelHeight += 100;
  699.         ID_World.style.pixelLeft -= 30;
  700.         ID_World.style.pixelTop -= 30;
  701.         window.setTimeout("StartWorldGrow()", 10);
  702.     }
  703. }
  704.  
  705. function UpdateMouse(x, y, shift, button)
  706. {
  707.     var e;
  708.  
  709.     e = event.srcElement;
  710.  
  711.     if ((0 == g_fInDrag) && (e.className == "Movable"))
  712.     {
  713.         g_fInDrag = 1;
  714.         g_nDragOffsetX = event.x - document.all["ID_IE"].style.pixelLeft;
  715.         g_nDragOffsetY = event.y - document.all["ID_IE"].style.pixelTop;
  716.     }
  717.  
  718.  
  719.     if ((1 == event.button) && (1 == g_fInDrag) && (true == event.ctrlKey))
  720.     {
  721.         document.all["ID_IE"].style.pixelLeft = event.x - g_nDragOffsetX;
  722.         document.all["ID_IE"].style.pixelTop = event.y - g_nDragOffsetY;
  723.  
  724.         TrackStep(event.x, event.y, e, event.ctrlKey);
  725.     }
  726.     else
  727.     {
  728.         g_fInDrag = 0;
  729.  
  730.         // Check if IE Logo was dropped on the world.
  731.         if ((document.all["ID_IE"].style.pixelLeft > document.all["ID_World"].style.pixelLeft) &&
  732.             (document.all["ID_IE"].style.pixelLeft + document.all["ID_IE"].style.pixelWidth < document.all["ID_World"].style.pixelLeft + document.all["ID_World"].style.pixelWidth) &&
  733.             (document.all["ID_IE"].style.pixelTop > document.all["ID_World"].style.pixelTop) &&
  734.             (document.all["ID_IE"].style.pixelTop + document.all["ID_IE"].style.pixelHeight < document.all["ID_World"].style.pixelTop + document.all["ID_World"].style.pixelHeight) &&
  735.             g_nScore >= g_nScoreNeeded)
  736.         {
  737.             // Move the logo so we don't continue to navigate over and over again.
  738.             document.all["ID_IE"].style.pixelLeft = parseInt(document.all["ID_IE"].FinalX);
  739.             document.all["ID_IE"].style.pixelTop = parseInt(document.all["ID_IE"].FinalY);
  740.  
  741.             document.all["ID_IE"].style.visibility="hidden";
  742.  
  743.             // Make this cover everything else.
  744.             document.all["ID_World"].style.zIndex = "1000";
  745.             
  746.             g_nScore = 0;
  747.             StopWobble(ID_World);
  748.             window.setTimeout("StartWorldGrow()", 10);
  749.         }
  750.     }
  751.  
  752.     return 1;
  753. }
  754.  
  755. document.onmousemove = UpdateMouse;
  756.  
  757. function WobbleControl(obj)
  758. {
  759.     if (0 != obj.wobbleTimer)
  760.     {
  761.         obj.style.posLeft = parseInt(obj.nOrigLeft) + Math.round(Math.random() * 2 * g_nWobbleAmount) - g_nWobbleAmount;
  762.         obj.style.posTop = parseInt(obj.nOrigTop) + Math.round(Math.random() * 2 * g_nWobbleAmount) - g_nWobbleAmount;
  763.     }
  764. }
  765.  
  766. function StartWobble(obj)
  767. {
  768.     obj.wobbleTimer = setInterval("WobbleControl(ID_World)", 100);
  769. }
  770.  
  771. function StopWobble(obj)
  772. {
  773.     if (0 != obj.wobbleTimer)
  774.     {
  775.         clearInterval(obj.wobbleTimer);
  776.         obj.wobbleTimer = 0;
  777.         document.all["ID_World"].posLeft = parseInt(document.all["ID_World"].nOrigLeft);
  778.         document.all["ID_World"].posTop = parseInt(document.all["ID_World"].nOrigTop);
  779.     }
  780. }
  781.  
  782. function UnLock(obj)
  783. {
  784.     g_nScore += 1;
  785.     obj.disabled = true;
  786.     StartWobble(obj);
  787. }
  788. </SCRIPT>
  789. </body>
  790. </html>
  791.