home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 November / VPR9811A.BIN / Msie4sp1 / ie4_s3.cab / IE4_3.CAB / SHDOCVW.DLL / 2110 / ABOUT.DLG next >
Text File  |  1998-05-15  |  25KB  |  785 lines

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