Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

870 lines
25 KiB

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML xmlns:IE>
  3. <HEAD>
  4. <TITLE>System Restore (Step 1)</TITLE>
  5. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
  6. <META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">
  7. <OBJECT ID=ObjSystemRestore CLASSID="CLSID:fd589b7c-7ce0-11d3-b9e5-00c04f79e399"></OBJECT>
  8. <SCRIPT ID="RestoreUI" LANGUAGE=JavaScript SRC="RestoreUI.js"></SCRIPT>
  9. <LINK id="UI_StyleSheet" REL="stylesheet" TYPE="text/css" HREF="rstrui.css">
  10. <STYLE>
  11. @media all
  12. {
  13. IE\:Calendar
  14. {
  15. behavior: url(calendar.htc) ;
  16. cal--title-background-color : #296695;
  17. cal--title-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  18. cal--title-font-size : 8pt;
  19. cal--title-font-weight : bold;
  20. cal--title-text-align : center;
  21. cal--dayTitle-background-color : #b7d7f0;
  22. cal--dayTitle-color : #2f6790;
  23. cal--dayTitle-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  24. cal--dayTitle-font-size : 8pt;
  25. cal--dayTitle-font-weight : bold;
  26. cal--dayTitle-text-align : center;
  27. cal--navButton-background-color : #b7d7f0;
  28. cal--navButton-color : #2f6790;
  29. cal--navButton-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  30. cal--navButton-font-size : 8pt;
  31. cal--navButton-font-weight : bold;
  32. cal--navButton-text-align : center;
  33. cal--offMonth-background-color : white;
  34. cal--offMonth-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  35. cal--offMonth-font-size : 8pt;
  36. cal--offMonth-font-weight : normal;
  37. cal--offMonth-text-align : right;
  38. cal--offMonth-vertical-align : text-top;
  39. cal--currentMonth-background-color: white;
  40. cal--currentMonth-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  41. cal--currentMonth-font-size : 8pt;
  42. cal--currentMonth-font-weight : normal;
  43. cal--currentMonth-text-align : right;
  44. cal--currentMonth-vertical-align : text-top;
  45. cal--selectedDay-background-color : #296695;
  46. cal--selectedDay-color : white;
  47. cal--selectedDay-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  48. cal--selectedDay-font-size : 9pt;
  49. cal--selectedDay-font-weight : bold;
  50. cal--selectedDay-text-align : right;
  51. cal--selectedDay-vertical-align : text-top;
  52. cal--validDay-background-color : white;
  53. cal--validDay-color : navy;
  54. cal--validDay-font-family : Tahoma, Verdana, Franklin Gothic, Arial;
  55. cal--validDay-font-size : 9pt;
  56. cal--validDay-font-weight : bold;
  57. cal--validDay-text-align : right;
  58. cal--validDay-vertical-align : text-top;
  59. }
  60. }
  61. </STYLE>
  62. <script>
  63. var g_bPageLoaded = false ;
  64. var g_nSelectedPoint = -1 ;
  65. var g_nRPExistsCurDay = false ;
  66. var L_RPAppInstall_ToolTip = "Restores your computer to the point before this program was installed";
  67. var L_RPAppUninstall_ToolTip = "Restores your computer to the point before this program was removed";
  68. var L_RPRestore_ToolTip = "Restores your computer to the point before this restoration occurred";
  69. var L_RPSysChkPt_ToolTip = "Restores your computer to this time";
  70. var L_RPDriverInstall_ToolTip = "Restores your computer to the point before this driver was installed";
  71. var L_RPModifySettings_ToolTip = "Restores your computer to the point before this program was modified";
  72. var L_RPRecovery_ToolTip = "Restores your computer to the point before this recovery happened";
  73. var L_RPDefault_ToolTip = "Restores your computer to this time";
  74. var L_NoRestorePtSelected_Message =
  75. "Please pick a point to restore your computer to and then click Next.";
  76. var L_NoRestorePtsOnDay_Message = "There are no restore points created yet for this day. To restore immediately, pick another day and restore point, and then try again.";
  77. var L_NoRestorePts_Message = "There are currently no restore points available.";
  78. function OnLink_HelpF1()
  79. {
  80. OnLink_Choose();
  81. }
  82. function UpdateEventList()
  83. {
  84. var i = 0 ;
  85. var varDateSel = ObjSystemRestore.SelectedDate;
  86. var fRPExists = false ;
  87. var nPoint = ObjSystemRestore.SelectedPoint;
  88. var nListPoint = 0;
  89. var nCurPoints = 0;
  90. var nSel = 0;
  91. var oRPList = window.document.all.LstRestorePoint ;
  92. //
  93. // By default nothing selected
  94. //
  95. g_nSelectedPoint = -1 ;
  96. RP_DelAllElements();
  97. for ( i = ObjSystemRestore.Count; i > 0; i-- )
  98. {
  99. var rpi = ObjSystemRestore( i-1 );
  100. dateRPI = rpi.TimeStamp( 0 );
  101. if ( ObjSystemRestore.CompareDate( varDateSel, dateRPI ) == 0 )
  102. {
  103. fRPExists = true ;
  104. var oEntry = document.createElement("LI");
  105. var oDiv = document.createElement("DIV");
  106. oDiv.dir = "ltr";
  107. oDiv.noWrap = true;
  108. oDiv.tabIndex = -1;
  109. oDiv.innerHTML = "&nbsp;&nbsp;" +
  110. ObjSystemRestore.FormatTime( dateRPI ) +
  111. "&nbsp;&nbsp;";
  112. var oSpan = document.createElement("SPAN");
  113. oSpan.dir = "ltr";
  114. oSpan.tabIndex = -1;
  115. oSpan.innerText = rpi.Name;
  116. oDiv.appendChild( oSpan );
  117. oEntry.appendChild( oDiv );
  118. oEntry.value = i-1;
  119. oEntry.tabIndex = -1;
  120. //
  121. // Set tip based on the type of restore point, else go to the nice default tip
  122. //
  123. if ( rpi.Type == 0 ) {
  124. oEntry.title = L_RPAppInstall_ToolTip ;
  125. }
  126. else if ( rpi.Type == 1 ) {
  127. oEntry.title = L_RPAppUninstall_ToolTip ;
  128. }
  129. else if ( rpi.Type == 6 ) {
  130. oEntry.title = L_RPRestore_ToolTip ;
  131. }
  132. else if ( rpi.Type == 7 ) {
  133. oEntry.title = L_RPSysChkPt_ToolTip ;
  134. }
  135. else if ( rpi.Type == 10 ) {
  136. oEntry.title = L_RPDriverInstall_ToolTip ;
  137. }
  138. else if ( rpi.Type == 12 ) {
  139. oEntry.title = L_RPModifySettings_ToolTip ;
  140. }
  141. else if ( rpi.Type == 14 ) {
  142. oEntry.title = L_RPRecovery_ToolTip;
  143. }
  144. else {
  145. oEntry.title = L_RPDefault_ToolTip ;
  146. };
  147. //
  148. // Append element to list
  149. //
  150. LstRestorePoint.appendChild(oEntry);
  151. if ( nPoint == i-1 ) {
  152. nListPoint = nCurPoints ;
  153. };
  154. nCurPoints++;
  155. }
  156. }
  157. if(fRPExists){
  158. var oNodes = LstRestorePoint.childNodes;
  159. if (ObjSystemRestore.RestorePtSelected == false)
  160. {
  161. nListPoint=0;
  162. ObjSystemRestore.SelectedPoint = oNodes.item(0).value;
  163. }
  164. }
  165. //
  166. // If a point has been selected highlight this point
  167. //
  168. if ( fRPExists && ObjSystemRestore.RestorePtSelected ) {
  169. setItem(LstRestorePoint,nListPoint)
  170. };
  171. //
  172. // If there are no restore points on the day then print a message
  173. // that other days have restore points so check some other day
  174. //
  175. if ( fRPExists == false )
  176. {
  177. var oEntry = document.createElement("LI");
  178. oEntry.innerHTML = "\<DIV TABINDEX=-1 STYLE=\"margin: 10px;\"\>" +
  179. L_NoRestorePtsOnDay_Message +
  180. "\<\/DIV\>";
  181. LstRestorePoint.appendChild(oEntry);
  182. calgrid.focus();
  183. }
  184. //
  185. // Restore points for the current day
  186. //
  187. g_nRPExistsCurDay = fRPExists ;
  188. TxtDateSel.innerText = ObjSystemRestore.FormatDate( varDateSel, true );
  189. if ( g_nRPExistsCurDay )
  190. {
  191. TxtDateSel.style.color = "FFFFFF";
  192. }
  193. else
  194. {
  195. TxtDateSel.style.color = "silver";
  196. }
  197. }
  198. function OnCancel()
  199. {
  200. if ( ObjSystemRestore.Cancel() )
  201. {
  202. external.window.close();
  203. }
  204. }
  205. function OnBack()
  206. {
  207. if ( g_bPageLoaded == false )
  208. return ;
  209. ObjSystemRestore.CanNavigatePage = true ;
  210. self.location = "SRUI-Main.htm";
  211. }
  212. function OnNext()
  213. {
  214. if ( g_bPageLoaded == false )
  215. return ;
  216. if (!ObjSystemRestore.CanRunRestore())
  217. {
  218. external.window.close();
  219. return;
  220. }
  221. if ( g_nRPExistsCurDay == false )
  222. {
  223. ObjSystemRestore.ShowMessage( L_NoRestorePtSelected_Message );
  224. }
  225. else
  226. {
  227. if ( g_nSelectedPoint >= 0 ) {
  228. if ( ObjSystemRestore.CheckRestore() )
  229. {
  230. ObjSystemRestore.CanNavigatePage = true ;
  231. self.location = "SRUI-Confirm.htm";
  232. }
  233. }
  234. else {
  235. ObjSystemRestore.ShowMessage( L_NoRestorePtSelected_Message );
  236. };
  237. };
  238. }
  239. //
  240. // When user selects the previous day in the restore point list
  241. //
  242. function OnBtnBack()
  243. {
  244. var varDateSel = ObjSystemRestore.SelectedDate;
  245. var varDateRPI;
  246. var varDateTemp = null;
  247. if ( g_bPageLoaded == false )
  248. return ;
  249. //
  250. // Remove selected restore point
  251. //
  252. ObjSystemRestore.RestorePtSelected = false ;
  253. for ( i = 0; i < ObjSystemRestore.Count; i++ )
  254. {
  255. varDateRPI = ObjSystemRestore( i ).TimeStamp( 0 );
  256. if ( ObjSystemRestore.CompareDate( varDateSel, varDateRPI ) > 0 )
  257. {
  258. if ( varDateTemp == null || ObjSystemRestore.CompareDate( varDateRPI, varDateTemp ) > 0 )
  259. {
  260. varDateTemp = varDateRPI;
  261. }
  262. }
  263. }
  264. if ( varDateTemp != null )
  265. {
  266. ObjSystemRestore.SelectedDate = varDateTemp;
  267. UpdateEventList();
  268. }
  269. //
  270. // Update the calender with the selected date
  271. //
  272. var oCurDate = new Date(ObjSystemRestore.SelectedDate);
  273. document.all.cal.value = oCurDate.getDate() + "/" + (oCurDate.getMonth()+1) + "/" + oCurDate.getFullYear() ;
  274. }
  275. //
  276. // When user selects next day in the restore point list
  277. //
  278. function OnBtnNext()
  279. {
  280. var varDateSel = ObjSystemRestore.SelectedDate;
  281. var varDateRPI;
  282. var fFoundPoint = false ;
  283. var varDateTemp = null;
  284. if ( g_bPageLoaded == false )
  285. return ;
  286. //
  287. // Remove selected restore point and find next restore point,
  288. // only special case is if there are no restore points and
  289. // today is higher than the current date then we must navigate
  290. // to today even though it has no restore points
  291. //
  292. ObjSystemRestore.RestorePtSelected = false ;
  293. for ( i = 0; i < ObjSystemRestore.Count; i++ )
  294. {
  295. varDateRPI = ObjSystemRestore( i ).TimeStamp( 0 );
  296. if ( ObjSystemRestore.CompareDate( varDateSel, varDateRPI ) < 0 )
  297. {
  298. if ( varDateTemp == null || ObjSystemRestore.CompareDate( varDateRPI, varDateTemp ) < 0 )
  299. {
  300. varDateTemp = varDateRPI;
  301. }
  302. }
  303. }
  304. if ( varDateTemp != null )
  305. {
  306. ObjSystemRestore.SelectedDate = varDateTemp;
  307. UpdateEventList();
  308. }
  309. else {
  310. if ( ObjSystemRestore.CompareDate( varDateSel, ObjSystemRestore.CurrentDate ) < 0 )
  311. {
  312. ObjSystemRestore.SelectedDate = ObjSystemRestore.CurrentDate ;
  313. UpdateEventList();
  314. }
  315. }
  316. //
  317. // Update the calender with the selected date
  318. //
  319. var oCurDate = new Date(ObjSystemRestore.SelectedDate);
  320. document.all.cal.value = oCurDate.getDate() + "/" + (oCurDate.getMonth()+1) + "/" + oCurDate.getFullYear() ;
  321. }
  322. //
  323. // When user selects a day in the calendar code has to be updated
  324. //
  325. function OnCalDateChange()
  326. {
  327. var e = window.event.srcElement ;
  328. var oNewDate = null ;
  329. if ( window.event.propertyName == "value" )
  330. {
  331. oNewDate = new Date(e.year,(e.month-1),e.day);
  332. //
  333. // If a date has been changed/selected by the user set the external date the
  334. // same and also update the event list
  335. //
  336. if ( ObjSystemRestore.CompareDate( ObjSystemRestore.SelectedDate, oNewDate.getVarDate() ) != 0 )
  337. {
  338. ObjSystemRestore.RestorePtSelected = false ;
  339. ObjSystemRestore.SelectedDate = oNewDate.getVarDate() ;
  340. UpdateEventList();
  341. }
  342. };
  343. }
  344. function checkParent(src, tag) {
  345. while ("HTML" != src.tagName) {
  346. if (tag == src.tagName)
  347. return src;
  348. src = src.parentElement;
  349. }
  350. return null;
  351. }
  352. function selectItem(list) {
  353. var el = checkParent(event.srcElement, "LI");
  354. //
  355. // In cases where the UL is selected then we have
  356. // already gone up past the LI so null will be
  357. // returned (assuming the page has no other UL's)
  358. //
  359. if ( !el )
  360. return ;
  361. if ( g_nRPExistsCurDay == false )
  362. return ;
  363. if ("LI" == el.tagName && el != list.selected) {
  364. if (null != list.selected)
  365. {
  366. list.selected.className = "";
  367. list.selected.setAttribute("tabindex" , -1, 0);
  368. }
  369. el.className = "selected";
  370. list.selected = el;
  371. el.setAttribute("tabindex" , 0, 0);
  372. }
  373. if (null != list.selected)
  374. list.selected.focus();
  375. g_nSelectedPoint = getSelectedPoint();
  376. //
  377. // Set the new restore point
  378. //
  379. if ( getSelectedPoint() >= 0 )
  380. ObjSystemRestore.SelectedPoint = getSelectedPointValue();
  381. }
  382. //
  383. // Given a list and a value of an element in the list find the element
  384. // and set this element as the selected element
  385. //
  386. function setItem(list,num) {
  387. var oNodes = list.childNodes ;
  388. if ( oNodes.length > 0 ) {
  389. if ( num >= 0 && num < oNodes.length ) {
  390. var el = oNodes.item(num);
  391. if ("LI" == el.tagName && el != list.selected) {
  392. if (null != list.selected)
  393. {
  394. list.selected.className = "";
  395. list.selected.setAttribute("tabindex" , -1, 0);
  396. }
  397. el.className = "selected";
  398. list.selected = el;
  399. el.setAttribute("tabindex" , 0, 0);
  400. }
  401. }
  402. }
  403. g_nSelectedPoint = getSelectedPoint();
  404. //
  405. // Set the new restore point
  406. //
  407. if ( getSelectedPoint() >= 0 )
  408. ObjSystemRestore.SelectedPoint = getSelectedPointValue();
  409. }
  410. function selectItemKey(list)
  411. {
  412. if ( g_nRPExistsCurDay == true )
  413. {
  414. if ( event.keyCode == 38 ) { // up arrow
  415. setItem(list, g_nSelectedPoint-1);
  416. window.event.returnValue=true;
  417. }
  418. else if ( event.keyCode == 40 ) { // down arrow
  419. setItem(list, g_nSelectedPoint+1);
  420. window.event.returnValue=true;
  421. }
  422. else if ( event.keyCode == 13 ) { // enter key
  423. OnNext();
  424. window.event.returnValue=false;
  425. }
  426. if (null != list.selected)
  427. list.selected.focus();
  428. window.event.cancelBubble=true;
  429. }
  430. }
  431. function RP_DelAllElements()
  432. {
  433. var oAttach = window.document.all.LstRestorePoint ;
  434. var oNodes = oAttach.childNodes ;
  435. var nLength = oNodes.length ;
  436. var nSelected = -1 ;
  437. while ( oNodes.length > 0 ) {
  438. oNodes.item(0).removeNode(true);
  439. }
  440. }
  441. function getSelectedPoint()
  442. {
  443. var oAttach = window.document.all.LstRestorePoint ;
  444. var oNodes = oAttach.childNodes ;
  445. var nSelected = -1 ;
  446. if ( oNodes.length > 0 ) {
  447. for ( i = 0 ; i < oNodes.length ; i++ ) {
  448. if ( oNodes.item(i) == oAttach.selected ) {
  449. nSelected = i
  450. break ;
  451. };
  452. }
  453. };
  454. return nSelected ;
  455. }
  456. function getSelectedPointValue()
  457. {
  458. var oAttach = window.document.all.LstRestorePoint ;
  459. var oNodes = oAttach.childNodes ;
  460. var nSelected = -1 ;
  461. var nValue = 0 ;
  462. if ( oNodes.length > 0 ) {
  463. for ( i = 0 ; i < oNodes.length ; i++ ) {
  464. if ( oNodes.item(i) == oAttach.selected ) {
  465. nSelected = i
  466. nValue = oNodes.item(i).value ;
  467. break ;
  468. };
  469. }
  470. };
  471. return nValue ;
  472. }
  473. </script>
  474. <SCRIPT FOR=window EVENT=onresize>
  475. ObjSystemRestore.CanNavigatePage = true ;
  476. self.location = "SRUI-Pick.htm";
  477. </SCRIPT>
  478. <script for=window event=onload>
  479. var calendar = document.all.cal ;
  480. var i = 0 ;
  481. if (!ObjSystemRestore.CanRunRestore())
  482. {
  483. external.window.close();
  484. return;
  485. }
  486. fnSetLowColorImage();
  487. ObjSystemRestore.CanNavigatePage = false ;
  488. window.HomePageBody.style.visibility = "visible";
  489. //
  490. // Initialize calendar object with dates
  491. //
  492. var oMinDate = new Date(ObjSystemRestore.MinDate);
  493. var oMaxDate = new Date(ObjSystemRestore.MaxDate);
  494. var oCurDate = new Date(ObjSystemRestore.CurrentDate);
  495. var oSelDate ;
  496. if ( ObjSystemRestore.RestorePtSelected )
  497. {
  498. oSelDate = new Date(ObjSystemRestore.SelectedDate);
  499. }
  500. else
  501. {
  502. oSelDate = new Date(ObjSystemRestore.CurrentDate);
  503. }
  504. calendar.minDate = oMinDate.getDate() + "/" + (oMinDate.getMonth()+1) + "/" + oMinDate.getFullYear() ;
  505. calendar.maxDate = oMaxDate.getDate() + "/" + (oMaxDate.getMonth()+1) + "/" + oMaxDate.getFullYear() ;
  506. for ( i = 0; i < ObjSystemRestore.Count; i++ )
  507. {
  508. var oRpDate = new Date( ObjSystemRestore( i ).TimeStamp( 0 ) );
  509. calendar.addValidDate = oRpDate.getDate() + "/" + (oRpDate.getMonth()+1) + "/" + oRpDate.getFullYear() ;
  510. }
  511. calendar.addValidDate = oCurDate.getDate() + "/" + (oCurDate.getMonth()+1) + "/" + oCurDate.getFullYear() ;
  512. calendar.value = oCurDate.getDate() + "/" + (oCurDate.getMonth()+1) + "/" + oCurDate.getFullYear() ;
  513. //
  514. // If a date has already been selected then set this
  515. // date in the calendar
  516. //
  517. if ( ObjSystemRestore.RestorePtSelected )
  518. {
  519. document.all.cal.value = oSelDate.getDate() + "/" + (oSelDate.getMonth()+1) + "/" + oSelDate.getFullYear() ;
  520. }
  521. //
  522. // Now make calendar visible
  523. //
  524. TdCalendar.style.visibility = "visible";
  525. if ( ObjSystemRestore.Count == 0 )
  526. {
  527. var oEntry = document.createElement("LI");
  528. oEntry.innerHTML = "\<DIV TABINDEX=-1 STYLE=\"margin: 10px;\"\>" +
  529. L_NoRestorePts_Message +
  530. "\<\/DIV\>";
  531. LstRestorePoint.appendChild(oEntry);
  532. window.BtnNext.disabled = true;
  533. window.BtnCancel.focus();
  534. }
  535. else
  536. {
  537. UpdateEventList();
  538. if (null != LstRestorePoint.selected)
  539. LstRestorePoint.selected.focus();
  540. }
  541. //
  542. // Set page loaded
  543. //
  544. g_bPageLoaded = true ;
  545. </script>
  546. </HEAD>
  547. <!--
  548. Body of doc
  549. -->
  550. <BODY ID="HomePageBody">
  551. <!--
  552. Background image located on the bottom right of the page
  553. -->
  554. <DIV style="position: absolute; bottom: 0px; right: 0px; z-index: -1">
  555. <img src="watermark.jpg" border=0 width="270" height="297"></DIV>
  556. <table width=100% height=100% cellspacing=0 cellpadding=0 border=0><tbody>
  557. <!--
  558. Page header
  559. -->
  560. <tr height="60px"><td id="TdBranding" colspan=3 class="styHeaderBlock">
  561. <table class="styImage" width=100% height=100% cellspacing=0 cellpadding=0 background="SR_Grad.jpg" style="border-collapse: collapse" bordercolor="#111111"><tbody><tr>
  562. <td width="65px" nowrap>&nbsp;</td>
  563. <td width=80% valign=top nowrap>
  564. <div id="TxtHeader" class="styHeaderText">
  565. <font color="#FFFFFF">Select a Restore Point </font>
  566. </div>
  567. </td>
  568. <td>
  569. <table><tr>
  570. <td>
  571. <a id="NoLoc1" class="styLink" href="javascript:OnLink_Choose();">
  572. <img src="help.gif" border=0 width="32" height="32">
  573. </a>
  574. </td>
  575. <td>
  576. <a id="NoLoc1" class="styLink" href="javascript:OnLink_Choose();">
  577. <font color="#FFFFFF"> <id id=HelpId>Help</id></font>
  578. </a>
  579. </td>
  580. </tr></table>
  581. <id id="NoLoc2">&nbsp;</id>
  582. </td>
  583. </tr></tbody></table>
  584. </td></tr>
  585. <tr height="3px"><td class="styHorzLine" colspan=3></td></tr>
  586. <!--
  587. Top anchor
  588. -->
  589. <tr height="25px"><td colspan=3>
  590. <table width=100% height=100% cellspacing=0 cellpadding=0><tbody><tr>
  591. <td width=90%></td>
  592. <td class="styImage">
  593. </td>
  594. </tr></tbody></table>
  595. </td></tr>
  596. <tr>
  597. <!-- Left anchor -->
  598. <td id="NoLoc3" class="styImage" width=8% align=left valign=bottom>
  599. </td>
  600. <td>
  601. <table width=100% height=100% cellspacing=0 cellpadding=0 border=0><tbody>
  602. <tr>
  603. <!--
  604. PAGE CONTENT
  605. -->
  606. <td class="styContentBlock">
  607. <DIV id="TxtMain1" class="styText">
  608. The following calendar displays in bold all of the dates that have restore
  609. points available. The list displays the restore points that are available for
  610. the selected date.
  611. <br><br>
  612. Possible types of restore points are: system checkpoints (scheduled restore
  613. points created by your computer), manual restore points (restore points
  614. created by you), and installation restore points (automatic restore points created when certain
  615. programs are installed).
  616. <br><br>
  617. </DIV>
  618. <table cellpadding=0 cellspacing=0><tbody>
  619. <tr class="styTextBold">
  620. <td id="TdStep1">
  621. 1. On this calendar, click a bold date.
  622. </td>
  623. <td>&nbsp;</td>
  624. <td id="TdStep2">
  625. 2. On this list, click a restore point.
  626. </td>
  627. </tr>
  628. <tr height=8px colspan=3><td></td></tr>
  629. <tr>
  630. <td id="TdCalendar" style="visibility:hidden">
  631. <IE:Calendar id="cal" ONPROPERTYCHANGE="OnCalDateChange();">
  632. </IE:Calendar>
  633. </td>
  634. <td>&nbsp;</td>
  635. <td>
  636. <table id="RestorePoint_Cell" STYLE="border : 1px solid black" cellspacing=0 cellpadding=0><tbody>
  637. <tr CLASS="styNavButtonTable">
  638. <TD id=L_ButLeft valign=center>
  639. <BUTTON CLASS="styNavButtons" id=button1 onclick=OnBtnBack() name=button1 title="Shows the previous day.">
  640. &lt;
  641. </BUTTON>
  642. </TD>
  643. <TD id=L_ButRight align=center valign=center WIDTH="86%">
  644. <DIV id=TxtDateSel class="styTextBold">
  645. &nbsp;
  646. </DIV>
  647. </TD>
  648. <TD id=L_Day_Cell align=right valign=center>
  649. <BUTTON CLASS="styNavButtons" id=button2 onclick=OnBtnNext() name=button2 title="Shows the next day.">
  650. &gt;
  651. </BUTTON>
  652. </TD>
  653. </TR>
  654. <TR>
  655. <TD id="RestorePointListTD" align=center class="styListCell" colspan=3>
  656. <DIV align=left ID="RestorePointList" class="styList">
  657. <UL TABINDEX=-1 ID="LstRestorePoint" ONCLICK="selectItem(this);" ONKEYDOWN="selectItemKey(this);">
  658. </UL>
  659. </DIV>
  660. </TD>
  661. </TR>
  662. </tbody></TABLE>
  663. </td>
  664. </tr>
  665. </tbody></table>
  666. </td>
  667. <!-- Right padding -->
  668. <td class="styText" width=14%>&nbsp;</td>
  669. </tr>
  670. <!--
  671. Navigation row
  672. -->
  673. <tr height="24px">
  674. <td class="styText" height="12px" colspan=2 nowrap>
  675. <table cellspacing=0 cellpadding=0 border=0><tbody><tr>
  676. <td width="70%">&nbsp;</td>
  677. <td class="styText" width="10%" nowrap>
  678. <button id="BtnBack" class="styButton" onclick="OnBack()" accesskey="B" tabindex=0>
  679. &lt; <U>B</U>ack
  680. </button>
  681. &nbsp;&nbsp;
  682. <button id="BtnNext" class="styButton" onclick="OnNext()" accesskey="N" tabindex=0>
  683. <U>N</U>ext &gt;
  684. </button>
  685. &nbsp;&nbsp;
  686. <button id="BtnCancel" class="styButton" onclick="OnCancel()" accesskey="C" tabindex=0>
  687. <U>C</U>ancel
  688. </button>
  689. </td>
  690. </tr></tbody></table>
  691. </td>
  692. </tr></tbody></table>
  693. </td>
  694. <!-- Right anchor -->
  695. <td id="NoLoc4" class="styImage" width=8% align=right valign=bottom>
  696. </td>
  697. </tr>
  698. <!--
  699. Bottom anchor
  700. -->
  701. <tr height="24px"><td colspan=3>
  702. <table width=100% height=100% cellspacing=0 cellpadding=0><tbody><tr>
  703. <td width=90%></td><td class="styImage">
  704. </td>
  705. </tr></tbody></table>
  706. </td></tr>
  707. </tbody></table>
  708. </BODY>
  709. </HTML>