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.

996 lines
26 KiB

  1. <HTML XMLNS:helpcenter>
  2. <HEAD>
  3. #include "header.inc"
  4. #include "debug_js.inc"
  5. #include "constants.inc"
  6. #define MAC_IF_DIRECTLAUNCH if(null==parent.idFrameSet0)
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8. <meta http-equiv="MSThemeCompatible" content="Yes">
  9. <TITLE>Remote Assistance</TITLE>
  10. <LINK id="UI_StyleSheet" REL="stylesheet" TYPE="text/css" HREF="../../Css/rc.css">
  11. <LINK id="UI_StyleSheet1" REL="stylesheet" TYPE="text/css" HREF="../../Css/RAChat.css">
  12. #ifdef _OLDSVRTOOLBAR
  13. <LINK ID=Stylesheet_Ref1 href="hcp://system/css/Behaviors.css" rel=STYLESHEET type=text/css>
  14. <LINK ID=Stylesheet_Ref2 href="hcp://system/css/Layout.css" rel=STYLESHEET type=text/css>
  15. <LINK ID=Stylesheet_Ref3 href="hcp://system/css/NavBar.css" rel=STYLESHEET type=text/css>
  16. #endif
  17. <LINK ID=Stylesheet_Ref4 href="hcp://system/css/shared.css" rel=STYLESHEET type=text/css>
  18. <SCRIPT Language="JScript">
  19. /*
  20. * Localizable constants, text and messages
  21. */
  22. var L_CONNECTED_Text = " Connected/";
  23. var L_DISCONNECTING_Text = "Disconnecting...";
  24. //
  25. // SAF Class Factory object
  26. //
  27. var oSAFClassFactory = null;
  28. //
  29. // Security Check
  30. //
  31. function DoLoad()
  32. {
  33. var L_ERRACCESSDENIED_Text = "Directly launching this page is not allowed. ";
  34. MAC_IF_DIRECTLAUNCH
  35. {
  36. idBody.style.visibility = "hidden";
  37. alert( L_ERRACCESSDENIED_Text );
  38. return;
  39. }
  40. }
  41. //
  42. // InitRAServerToolBar: Initiates the RC Session
  43. //
  44. function InitRAServerToolBar()
  45. {
  46. MAC_IF_DIRECTLAUNCH
  47. {
  48. return;
  49. }
  50. try
  51. {
  52. InitTrace();
  53. TraceFunctEnter("InitRAServerToolBar");
  54. idBody.disabled = false;
  55. //
  56. // Connection Status
  57. //
  58. UpdateStatus( parent.L_SCREENVIEWONLY_Text );
  59. //
  60. // Reject RC button is disabled
  61. //
  62. #ifndef _HSSTOOLBAR
  63. // Start off with the button enabled
  64. btnVoice.disabled = false;
  65. txtVoice.disabled = false;
  66. idStopControl.disabled = true;
  67. #else
  68. EnableButton( "btnVoice" );
  69. DisableButton( "idStopControl" );
  70. #endif
  71. // Point the oSAFClassFactory to it's parent
  72. if (parent.oSAFClassFactory != null)
  73. {
  74. oSAFClassFactory = parent.oSAFClassFactory;
  75. }
  76. }
  77. catch(error)
  78. {
  79. //
  80. // Fatal Error: Unable to initialize
  81. //
  82. parent.FatalError( parent.L_RCCTL_Text, error );
  83. }
  84. TraceFunctLeave();
  85. return;
  86. }
  87. //
  88. // AbortConnection: Routine that disconnects the session
  89. //
  90. function AbortConnection()
  91. {
  92. TraceFunctEnter("AbortConnection");
  93. try
  94. {
  95. if( false == parent.g_bConnected )
  96. {
  97. //
  98. // Not connected
  99. //
  100. TraceFunctLeave();
  101. return;
  102. }
  103. //
  104. // Disconnect the connection to Helper, if the connection is broken by the Helpee
  105. //
  106. parent.g_bUserDisconnect = true;
  107. if(true == parent.g_bUserDisconnect)
  108. {
  109. DebugTrace("Calling DisconnectRC...");
  110. DisconnectRC();
  111. }
  112. if (null != parent.g_objPanic)
  113. {
  114. DebugTrace("Calling parent.g_objPanic.ClearPanicHook");
  115. parent.g_objPanic.ClearPanicHook();
  116. }
  117. //
  118. // Close down the UI
  119. //
  120. //parent.oSAFClassFactory.Close();
  121. }
  122. catch(error)
  123. {
  124. parent.FatalError( parent.L_RCCTL_Text, error );
  125. }
  126. TraceFunctLeave();
  127. return;
  128. }
  129. var g_oCols = null;
  130. var g_oRows = null;
  131. var g_oWidth = null;
  132. var screenLeft = window.screenLeft;
  133. var screenTop = window.screenTop;
  134. #if 0
  135. //
  136. // Helpee_HideChat: Toggles the chat box controls
  137. //
  138. function Helpee_HideChat()
  139. {
  140. TraceFunctEnter("Helpee_HideChat");
  141. try
  142. {
  143. if( false == parent.g_bConnected )
  144. {
  145. //
  146. // Not connected
  147. //
  148. TraceFunctLeave();
  149. return;
  150. }
  151. if(false == parent.g_bChatBoxHidden)
  152. {
  153. //
  154. // Chatbox is visible. Hide it
  155. //
  156. g_oCols = parent.idFrameSet1.cols;
  157. g_oRows = parent.idFrameSet0.rows;
  158. parent.idFrameSet0.rows = "*,0%";
  159. parent.idFrameSet1.cols = "0%,*";
  160. parent.g_bChatBoxHidden = true;
  161. idtogglechat.innerHTML = "&nbsp;&nbsp;Show Chat&nbsp;";
  162. idChatimg.src = "../Common/show-chat.gif";
  163. //
  164. // Reduce the size of the window
  165. //
  166. screenLeft = parent.idCtx.x;
  167. screenTop = parent.idCtx.y;
  168. parent.idCtx.setWindowDimensions( screenLeft, screenTop, c_RCControlHiddenWidth, c_RCControlHiddenHeight);
  169. }
  170. else
  171. {
  172. //
  173. // Chatbox is Hidden. Show it
  174. //
  175. parent.idFrameSet1.cols = g_oCols;
  176. parent.idFrameSet0.rows = g_oRows;
  177. parent.g_bChatBoxHidden = false;
  178. idtogglechat.innerHTML = "&nbsp;&nbsp;Hide Chat&nbsp;";
  179. idChatimg.src = "../Common/hide-chat.gif";
  180. //
  181. // Restore the size of the window
  182. //
  183. if( screenLeft != parent.idCtx.x )
  184. {
  185. screenLeft = parent.idCtx.x;
  186. }
  187. if( screenTop != parent.idCtx.y )
  188. {
  189. screenTop = parent.idCtx.y;
  190. }
  191. parent.idCtx.setWindowDimensions( screenLeft, screenTop, c_RCChatWidth, c_RCChatHeight);
  192. }
  193. }
  194. catch(error)
  195. {
  196. alert(error.description);
  197. }
  198. TraceFunctLeave();
  199. return;
  200. }
  201. #endif
  202. //
  203. // Disconnect: Disconnects the RC Connection made by Expert
  204. //
  205. function DisconnectRC()
  206. {
  207. MAC_IF_DIRECTLAUNCH
  208. {
  209. return;
  210. }
  211. TraceFunctEnter("DisconnectRC");
  212. try
  213. {
  214. // If we are connected for VoIP, then disconnect the server
  215. if ( true == parent.g_bVoipOn)
  216. {
  217. parent.g_bVoipOn = false;
  218. #ifndef _HSSTOOLBAR
  219. btnVoice.Disabled = true;
  220. txtVoice.Disabled = true;
  221. #else
  222. DebugTrace("Calling DisableButton on btnVoice");
  223. DisableButton( "btnVoice" );
  224. #endif
  225. }
  226. // Call Exit on the Voice object to release reference in RTC
  227. if (parent.g_Helpee_oSAFIntercomServer)
  228. {
  229. DebugTrace("Calling parent.g_Helpee_oSAFIntercomServer.Exit");
  230. try
  231. {
  232. parent.g_Helpee_oSAFIntercomServer.Exit();
  233. DebugTrace("parent.g_Helpee_oSAFIntercomServer.Exit succeeded");
  234. }
  235. catch(error)
  236. {
  237. //
  238. // BUGBUG: g_Helpee_oSAFIntercomServer.Exit should not throw exception. JPerez to fix it
  239. //
  240. DebugTrace( "Error: " + error.description + " Number: " + error.number);
  241. }
  242. }
  243. if( false == parent.g_bConnected )
  244. {
  245. //
  246. // Not connected
  247. //
  248. TraceFunctLeave();
  249. return;
  250. }
  251. DebugTrace("Disabling controls...");
  252. parent.idBody.disabled = true;
  253. parent.frames.idFrameChatTop.btnSendChat.disabled = true;
  254. parent.frames.idFrameChatTop.idchatText.disabled = true;
  255. idBody.disabled = true;
  256. idStatus.innerText = L_DISCONNECTING_Text;
  257. if( true == parent.g_bConnected)
  258. {
  259. if(null != parent.parent.oRCSession)
  260. {
  261. DebugTrace("Calling parent.parent.oRCSession.Disconnect...");
  262. parent.parent.oRCSession.Disconnect();
  263. }
  264. parent.g_bConnected = false;
  265. }
  266. }
  267. catch(error)
  268. {
  269. parent.FatalError( parent.L_RCCTL_Text, error );
  270. }
  271. TraceFunctLeave();
  272. EndTrace();
  273. return;
  274. }
  275. var ip= null;
  276. //
  277. // LaunchFileXfer: Launches the File Xfer UI
  278. //
  279. function LaunchFileXfer( mode )
  280. {
  281. TraceFunctEnter("LaunchFileXfer");
  282. var vArgs = new Array(11);
  283. try
  284. {
  285. if( false == parent.g_bConnected )
  286. {
  287. //
  288. // Not connected
  289. //
  290. TraceFunctLeave();
  291. return;
  292. }
  293. if(0 == mode)
  294. {
  295. vArgs[0] = mode; // Source Mode
  296. vArgs[1] = parent.g_Helpee_oControlChannel; // Control Channel
  297. vArgs[2] = parent.g_Helpee_oSAFRemoteDesktopChannelMgr; // Channel Manager
  298. // The following is added so that a unique channel id is created for each of the
  299. // filexfer channels. The unique channel id is IP Address.MonthDayYearMillisec
  300. if(null == ip)
  301. {
  302. ip = parent.GetLocalIPAddr();
  303. }
  304. vArgs[3] = ip; // Channel ID
  305. vArgs[4] = new ActiveXObject("Scripting.FileSystemObject");
  306. vArgs[5] = parent.oSAFClassFactory; // SAF ClassFactory object
  307. vArgs[6] = parent.parent.gHelper; // Receiver - Remote User
  308. vArgs[7] = new ActiveXObject("SAFRCFileDlg.FileOpen");
  309. // Logging DCR - Sending in a reference to the RAEventLog object
  310. //
  311. vArgs[8] = parent.g_szLocalUser; // Local User
  312. vArgs[9] = parent.parent.gHelperIP; // Remote IP
  313. vArgs[10] = new ActiveXObject("RACplDlg.RAEventLog");
  314. var subWin = window.showModelessDialog( c_szFileXferURL, vArgs, "dialogwidth:" + c_FileXferWidth + "px;dialogHeight:" + c_FileXferHeight + "px;status:no;resizable:no;help:no");
  315. parent.AddOpenSubWin( subWin );
  316. }
  317. }
  318. catch(error)
  319. {
  320. parent.FatalError( parent.L_RCCTL_Text, error );
  321. }
  322. TraceFunctLeave();
  323. return;
  324. }
  325. //
  326. // Helpee_SendVoice: Send voice across
  327. //
  328. function Helpee_SendVoice()
  329. {
  330. TraceFunctEnter( "Helpee_SendVoice" );
  331. try
  332. {
  333. // Check to see if the voice button is disabled
  334. if ((true == btnVoice.disabled) || (true == txtVoice.disabled))
  335. {
  336. return;
  337. }
  338. //
  339. // Check if VoIP is enabled
  340. //
  341. if(false == parent.g_bVoIPEnabled )
  342. {
  343. //
  344. // VoIP is disabled
  345. //
  346. return;
  347. }
  348. if( false == parent.g_bConnected )
  349. {
  350. //
  351. // Not connected
  352. //
  353. TraceFunctLeave();
  354. return;
  355. }
  356. // Gray button
  357. #ifndef _HSSTOOLBAR
  358. btnVoice.disabled = true;
  359. txtVoice.disabled = true;
  360. #else
  361. DisableButton( "btnVoice" );
  362. #endif
  363. // Disable incoming 'PreStart' requests
  364. parent.g_bStartEnabled = false;
  365. // Send the Helper/Client a PreStart Message
  366. parent.Helpee_SendControlCommand( c_szVoipPreStart );
  367. }
  368. catch( error )
  369. {
  370. parent.FatalError( parent.L_RCCTL_Text, error );
  371. }
  372. TraceFunctLeave();
  373. return;
  374. }
  375. //
  376. // Helpee_HandleOptions: Set Options
  377. //
  378. function Helpee_HandleOptions()
  379. {
  380. TraceFunctEnter("Helper_HandleOptions");
  381. try
  382. {
  383. if( false == parent.g_bConnected )
  384. {
  385. //
  386. // Not connected
  387. //
  388. TraceFunctLeave();
  389. return;
  390. }
  391. var vArgs=new Array(3);
  392. vArgs[0]=parent;
  393. vArgs[1]="";
  394. vArgs[2]="";
  395. var ret=window.showModalDialog("SettingServer.htm",vArgs,"dialogWidth:405px;dialogHeight:233px;dialogTop:200px;dialogLeft:400px;edge:raised;status:no;help:no;");
  396. }
  397. catch( error )
  398. {
  399. parent.FatalError( parent.L_RCCTL_Text, error );
  400. }
  401. TraceFunctLeave();
  402. return;
  403. }
  404. function Help()
  405. {
  406. TraceFunctEnter("Help");
  407. try
  408. {
  409. parent.LaunchHelpEx(0);
  410. }
  411. catch( error )
  412. {
  413. parent.FatalError( parent.L_ERRFATAL_Text, error );
  414. }
  415. TraceFunctLeave();
  416. }
  417. function UpdateStatus( szMsg )
  418. {
  419. TraceFunctEnter("UpdateStatus");
  420. try
  421. {
  422. if( (szMsg != parent.L_DISCONNECTION_Text) && (szMsg != parent.L_HELPEEDISCONNECTED_Text))
  423. {
  424. idStatus.innerText = " " + parent.parent.gHelper + ":\n" + L_CONNECTED_Text + "\n" + szMsg;
  425. }
  426. else
  427. {
  428. idStatus.innerText = " " + szMsg;
  429. }
  430. }
  431. catch(error)
  432. {
  433. parent.FatalError( parent.L_RCCTL_Text, error );
  434. }
  435. TraceFunctLeave();
  436. }
  437. function UpdateChatStatus( szMsg )
  438. {
  439. TraceFunctEnter("UpdateChatStatus");
  440. try
  441. {
  442. if( szMsg == parent.L_EXPERTTYPING_Text )
  443. {
  444. S0TR7T0.innerText = parent.parent.gHelper + parent.L_EXPERTTYPING_Text;
  445. }
  446. else
  447. {
  448. var oDate = new Date();
  449. S0TR7T0.innerText = szMsg + oDate.toLocaleString();
  450. }
  451. }
  452. catch(error)
  453. {
  454. parent.FatalError( parent.L_RCCTL_Text, error );
  455. }
  456. TraceFunctLeave();
  457. }
  458. function document.onkeydown()
  459. {
  460. TraceFunctEnter("onkeydown");
  461. try
  462. {
  463. switch( window.event.keyCode ) {
  464. case 0x8:
  465. window.event.returnValue = false;
  466. break;
  467. case 0x9:
  468. #ifndef _HSSTOOLBAR
  469. if ((idStopControl.disabled == false) && (window.event.srcElement.id == "idStopControl") && (window.event.shiftKey == true))
  470. {
  471. parent.frames.idFrameChatTop.SetRevFocus();
  472. window.event.returnValue = false;
  473. }
  474. else if ((idStopControl.disabled == true) && (window.event.srcElement.id == "FileXferId") && (window.event.shiftKey == true))
  475. {
  476. parent.frames.idFrameChatTop.SetRevFocus();
  477. window.event.returnValue = false;
  478. }
  479. else if ((window.event.srcElement.id == "btnHelp")&&(window.event.shiftKey == false))
  480. {
  481. parent.frames.idFrameChatTop.SetFocus();
  482. window.event.returnValue = false;
  483. }
  484. #endif
  485. break;
  486. case 0x64:
  487. if( window.event.altKey == true )
  488. {
  489. window.event.returnValue = false;
  490. }
  491. break;
  492. }
  493. }
  494. catch(error)
  495. {
  496. SetFocus();
  497. window.event.returnValue = false;
  498. }
  499. TraceFunctLeave();
  500. }
  501. function SetFocus()
  502. {
  503. #ifndef _HSSTOOLBAR
  504. TraceFunctEnter("SetFocus");
  505. try
  506. {
  507. if ( idStopControl.disabled == false )
  508. {
  509. document.all("idStopControl").focus();
  510. }
  511. else
  512. {
  513. document.all("FileXferId").focus();
  514. }
  515. }
  516. catch(error)
  517. {
  518. DebugTrace("Error: " + error.description );
  519. }
  520. TraceFunctLeave();
  521. #endif
  522. }
  523. function SetRevFocus()
  524. {
  525. #ifndef _HSSTOOLBAR
  526. TraceFunctEnter("SetFocus");
  527. try
  528. {
  529. document.all("btnHelp").focus();
  530. }
  531. catch(error)
  532. {
  533. DebugTrace("Error: " + error.description );
  534. }
  535. TraceFunctLeave();
  536. #endif
  537. }
  538. function onFocus()
  539. {
  540. TraceFunctEnter("onFocus");
  541. try
  542. {
  543. window.event.srcElement.className = "VAlign styServerToolbarBorder styText Cursor sys-header-gradient-top";
  544. window.event.returnValue = false;
  545. }
  546. catch(error)
  547. {
  548. // ignore
  549. }
  550. TraceFunctLeave();
  551. }
  552. function onBlur()
  553. {
  554. TraceFunctEnter("onBlur");
  555. try
  556. {
  557. window.event.srcElement.className = "VAlign styServerToolbarBorder styText Cursor sys-homepage-bgcolor";
  558. window.event.returnValue = false;
  559. }
  560. catch(error)
  561. {
  562. // ignore
  563. }
  564. TraceFunctLeave();
  565. }
  566. function onMouseOver()
  567. {
  568. TraceFunctEnter("onMouseOver");
  569. try
  570. {
  571. if( false == window.event.srcElement.disabled )
  572. {
  573. window.event.srcElement.focus();
  574. }
  575. }
  576. catch(error)
  577. {
  578. // Ignore
  579. }
  580. TraceFunctLeave();
  581. }
  582. </SCRIPT>
  583. #ifdef _HSSTOOLBAR
  584. <SCRIPT LANGUAGE="Javascript" EVENT="onCommand( tb, id )" FOR="idTB">
  585. switch ( id ) {
  586. case "idStopControl":
  587. parent.Helpee_RejectRC(1);
  588. break;
  589. case "FileXferId":
  590. LaunchFileXfer( 0 );
  591. break;
  592. case "btnVoice":
  593. case "btnVoiceStop":
  594. Helpee_SendVoice();
  595. break;
  596. case "btnOptions":
  597. Helpee_HandleOptions();
  598. break;
  599. case "btnAbortConnection":
  600. AbortConnection();
  601. break;
  602. case "btnHelp":
  603. Help();
  604. break;
  605. }
  606. </SCRIPT>
  607. <SCRIPT LANGUAGE="Javascript">
  608. function DisableButton( id )
  609. {
  610. idTB.SetState( id, false );
  611. }
  612. function EnableButton( id )
  613. {
  614. idTB.SetState( id, true );
  615. }
  616. function HideButton( id )
  617. {
  618. idTB.SetVisibility( id, false );
  619. }
  620. function ShowButton( id )
  621. {
  622. idTB.SetVisibility( id, true );
  623. }
  624. </SCRIPT>
  625. #endif // _HSSTOOLBAR
  626. <STYLE>
  627. .height3
  628. {
  629. height:115px;
  630. }
  631. .height4
  632. {
  633. height:21px;
  634. }
  635. .height6
  636. {
  637. height:100px;
  638. }
  639. .height9
  640. {
  641. height:2px;
  642. }
  643. .padding10
  644. {
  645. padding-bottom:5px;
  646. }
  647. </STYLE>
  648. </Head>
  649. <BODY id="idBody" onload='DoLoad()' onunload=DisconnectRC() scroll=auto tabindex=-1 disabled class="sys-homepage-bgcolor">
  650. <Table id="T0" name="T0" class="MaxLayout" cellpadding="0px" cellspacing=0 border=0>
  651. <tr id="TR0T0" name="TR0T0">
  652. <td colspan=2 id="TR0T0" name="TR0T0" class="height3 padding5 padding8 padding10">
  653. <Table border=0 cellspacing=0 cellpadding="0px" class="MaxLayout">
  654. <TR>
  655. <TD class="padding5 padding8 padding10">
  656. <Table id="T0TR0T0" name="T0TR0T0" cellpadding=0 cellspacing=0 border=0 class="MaxLayout">
  657. <TR id="TR0T0TR0T0" name="TR0T0TR0T0">
  658. <TD id="TD0TR0T0TR0T0" name="TD0TR0T0TR0T0" class="height4 sys-toppane-header-bgcolor sys-font-body-bold sys-toppane-header-color">
  659. &nbsp;&nbsp;Connection Status
  660. </TD>
  661. </TR>
  662. <TR id="TR1T0TR0T0" name="TR1T0TR0T0">
  663. <TD id="TD0TR1T0TR0T0" name="TD0TR1T0TR0T0" class="sys-bottompane-bgcolor">
  664. <Span id="idStatus" name="idStatus" class="MaxLayout sys-font-body styPadding sys-color-body-ok">
  665. Connecting...
  666. </Span>
  667. </TD>
  668. </TR>
  669. </Table>
  670. </TD>
  671. </TR>
  672. </Table>
  673. </td>
  674. </tr>
  675. <tr>
  676. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  677. </tr>
  678. #ifdef _OLDSVRTOOLBAR
  679. <tr id="TR1T0" name="TR1T0">
  680. <td id="TD0TR1T0" name="TD0TR1T0" align="left" class="styServerToolbarBorder">
  681. <helpcenter:button id="idStopControl" name="idStopControl" onclick="parent.Helpee_RejectRC(1);" tabindex=1 accesskey="C" style="height:100%;width:100%"
  682. body='
  683. <img id="imgStopControl" name="imgStopControl" src="StopControl.gif">
  684. <Span id="RejectId" name="RejectId" class="styText">
  685. &nbsp;&nbsp;&nbsp;&nbsp;Stop <u>C</u>ontrol (ESC)
  686. </Span>
  687. '
  688. />
  689. </td>
  690. </tr>
  691. <tr id="TR2T0" name="TR2T0">
  692. <td id="TD0TR2T0" name="TD0TR2T0" align="left" class="styServerToolbarBorder" >
  693. <helpcenter:button id="FileXferId" name="FileXferId" onclick="LaunchFileXfer(0);" tabindex=2 accesskey="F" style="height:100%;width:100%"
  694. body='
  695. <img src="../Common/SendFile.gif" id="imgSendFile" name="imgSendFile" >
  696. <Span class="styText" id="txtSendFile" name="txtSendFile">
  697. &nbsp;&nbsp;&nbsp;Send a <u>F</u>ile
  698. </Span>
  699. '
  700. />
  701. </td>
  702. </tr>
  703. <tr id="TR3T0" name="TR3T0">
  704. <td id="TD0TR3T0" name="TD0TR3T0" align="left" class="styServerToolbarBorder">
  705. <helpcenter:button id="btnVoice" name="btnVoice" onclick="Helpee_SendVoice();" tabindex=3 accesskey="T" style="height:100%;width:100%"
  706. body='
  707. <img id="imgVoicePic" name="imgVoicePic" src="../Common/SendVoice.gif" >
  708. <Span class="styText" id="txtVoice" name="txtVoice">
  709. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start <u>T</u>alking
  710. </Span>
  711. '
  712. />
  713. </td>
  714. </tr>
  715. <tr id="TR4T0" name="TR4T0">
  716. <td id="TD0TR4T0" name="TD0TR4T0" align="left" class="styServerToolbarBorder">
  717. <helpcenter:button id="btnOptions" name="btnOptions" onclick="Helpee_HandleOptions();" tabindex=4 accesskey="S" style="height:100%;width:100%"
  718. body='
  719. <img id="imgSettings" name="imgSettings" src="../Common/Options.gif" >
  720. <Span class="styText" id="txtSettings" name="txtSettings">
  721. &nbsp;&nbsp;&nbsp;&nbsp;<u>S</u>ettings
  722. </Span>
  723. '
  724. />
  725. </td>
  726. </tr>
  727. <tr id="TR5T0" name="TR5T0">
  728. <td id="TD0TR5T0" name="TD0TR5T0" align="left" class="styServerToolbarBorder">
  729. <helpcenter:button id="btnAbortConnection" name="btnAbortConnection" onclick="AbortConnection();" tabindex=5 accesskey="D" style="height:100%;width:100%"
  730. body='
  731. <img src="../Common/Quit.gif" id="imgQuit" name="imgQuit" >
  732. <Span class="styText" id="txtQuit" name="txtQuit">
  733. &nbsp;&nbsp;<u>D</u>isconnect
  734. </Span>
  735. '
  736. />
  737. </td>
  738. </tr>
  739. <tr id="TR6T0" name="TR6T0">
  740. <td id="TD0TR6T0" name="TD0TR6T0" align="left" class="styServerToolbarBorder">
  741. <helpcenter:button id="btnHelp" name="btnHelp" onclick="Help();" tabindex=6 accesskey="H" style="height:100%;width:100%"
  742. body='
  743. <img src="../Common/HelpCenter.gif" id="imgHelp" name="imgHelp">
  744. <Span class="styText" id="txtHelp" name="txtHelp">
  745. &nbsp;&nbsp;&nbsp;<u>H</u>elp
  746. </Span>
  747. '
  748. />
  749. </td>
  750. </tr>
  751. <tr id="TR7T0" name="TR7T0">
  752. <td id="TR7T0" name="TR7T0" class="styServerToolbarBorder" style="height:100px" valign="bottom" align="middle">
  753. <Span id="S0TR7T0" name="S0TR7T0" class="styText sys-rhp-splash-color"> &nbsp; </Span>
  754. </td>
  755. </tr>
  756. #else // _OLDSVRTOOLBAR
  757. #ifdef _HSSTOOLBAR
  758. <OBJECT id="idTB" name="idTB" CLASSID="CLSID:FC7D9E08-3F9E-11d3-93C0-00C04F72DAF7" WIDTH=165 HEIGHT=300>
  759. <PARAM id=NoLoc1 name="Definition" value="RAServerToolbar.xml">
  760. </OBJECT>
  761. #else
  762. <tr id="TR1T0" name="TR1T0">
  763. <td id="TD0TR1T0" name="TD0TR1T0" align="left" class="VAlign width2 padding1">
  764. <Button align="left" class="Cursor MaxLayout" id="idStopControl" name="idStopControl" onclick="parent.Helpee_RejectRC(1);" tabindex=1 accesskey="C" title="Take back control of your mouse and keyboard">
  765. <img id="imgStopControl" name="imgStopControl" src="StopControl.gif">
  766. </Button>
  767. </td>
  768. <td id="TD1TR1T0" name="TD0TR1T0" align="left" class="VAlign padding5 padding8 padding10">
  769. <A disabled id="RejectId" name="RejectId" class="sys-font-body sys-link-homepage" href="" onClick="if( idStopControl.disabled == false ) parent.Helpee_RejectRC(1);return false;" title="Take back control of your mouse and keyboard">
  770. Stop <u>C</u>ontrol (ESC)
  771. </A>
  772. </td>
  773. </tr>
  774. <tr>
  775. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  776. </tr>
  777. <tr id="TR2T0" name="TR2T0">
  778. <td id="TD0TR2T0" name="TD0TR2T0" align="left" class="VAlign width2 padding1">
  779. <Button align="left" class="Cursor MaxLayout" id="FileXferId" name="FileXferId" onclick="LaunchFileXfer(0);" tabindex=2 accesskey="F" title="Sends a file or photo across to the expert's computer">
  780. <img src="../Common/SendFile.gif" id="imgSendFile" name="imgSendFile">
  781. </Button>
  782. </td>
  783. <td id="TD1TR2T0" name="TD0TR2T0" align="left" class="VAlign padding5 padding8 padding10">
  784. <A class="sys-font-body sys-link-homepage" id="txtSendFile" name="txtSendFile" href="" onclick="LaunchFileXfer(0);return false;" title="Sends a file or photo across to the expert's computer">
  785. Send a <u>F</u>ile
  786. </A>
  787. </td>
  788. </tr>
  789. <tr>
  790. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  791. </tr>
  792. <tr id="TR3T0" name="TR3T0">
  793. <td id="TD0TR3T0" name="TD0TR3T0" align="left" class="VAlign width2 padding1">
  794. <Button align="left" class="Cursor MaxLayout" id="btnVoice" name="btnVoice" onclick="Helpee_SendVoice();" tabindex=3 accesskey="T" title="Establishes an audio connection">
  795. <img id="imgVoicePic" name="imgVoicePic" src="../Common/SendVoice.gif">
  796. </Button>
  797. </td>
  798. <td id="TD1TR3T0" name="TD0TR3T0" align="left" class="VAlign padding5 padding8 padding10">
  799. <A class="sys-font-body sys-link-homepage" id="txtVoice" name="txtVoice" href="" onclick="Helpee_SendVoice();return false;" title="Establishes an audio connection">
  800. Start <u>T</u>alking
  801. </A>
  802. </td>
  803. </tr>
  804. <tr>
  805. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  806. </tr>
  807. <tr id="TR4T0" name="TR4T0">
  808. <td id="TD0TR4T0" name="TD0TR4T0" align="left" class="VAlign width2 padding1">
  809. <Button align="left" class="Cursor MaxLayout" id="btnOptions" name="btnOptions" onclick="Helpee_HandleOptions();" tabindex=4 accesskey="S" title="Adjust your audio settings">
  810. <img id="imgSettings" name="imgSettings" src="../Common/Options.gif">
  811. </Button>
  812. </td>
  813. <td id="TD1TR4T0" name="TD0TR4T0" align="left" class="VAlign padding5 padding8 padding10">
  814. <A class="sys-font-body sys-link-homepage" id="txtSettings" name="txtSettings" href="" onclick="Helpee_HandleOptions();return false;" title="Adjust your audio settings">
  815. <u>S</u>ettings
  816. </A>
  817. </td>
  818. </tr>
  819. <tr>
  820. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  821. </tr>
  822. <tr id="TR5T0" name="TR5T0">
  823. <td id="TD0TR5T0" name="TD0TR5T0" align="left" class="VAlign width2 padding1">
  824. <Button align="left" class="Cursor MaxLayout" id="btnAbortConnection" name="btnAbortConnection" onclick="AbortConnection();" tabindex=5 accesskey="D" title="Ends Remote Assistance session">
  825. <img src="../Common/Quit.gif" id="imgQuit" name="imgQuit">
  826. </Button>
  827. </td>
  828. <td id="TD1TR5T0" name="TD0TR5T0" align="left" class="VAlign padding5 padding8 padding10">
  829. <A class="sys-font-body sys-link-homepage" id="txtQuit" name="txtQuit" href="" onclick="AbortConnection(); return false;" title="Ends Remote Assistance session">
  830. <u>D</u>isconnect
  831. </A>
  832. </td>
  833. </tr>
  834. <tr>
  835. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  836. </tr>
  837. <tr id="TR6T0" name="TR6T0">
  838. <td id="TD0TR6T0" name="TD0TR6T0" align="left" class="VAlign width2 padding1">
  839. <Button align="left" class="Cursor MaxLayout" id="btnHelp" name="btnHelp" onclick="Help();" tabindex=6 accesskey="H" title="Help on using Remote Assistance">
  840. <img src="../Common/HelpCenter.gif" id="imgHelp" name="imgHelp">
  841. </Button>
  842. </td>
  843. <td id="TD1TR6T0" name="TD0TR6T0" align="left" class="VAlign padding5 padding8 padding10">
  844. <A class="sys-font-body sys-link-homepage" id="txtHelp" name="txtHelp" href="" onclick="Help();return false;" title="Help on using Remote Assistance">
  845. <u>H</u>elp
  846. </A>
  847. </td>
  848. </tr>
  849. <tr>
  850. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  851. </tr>
  852. <tr id="TR7T0" name="TR7T0">
  853. <td colspan=2 id="TR7T0" name="TR7T0" class="valignbottom height6" align="middle">
  854. <Span id="S0TR7T0" name="S0TR7T0" class="sys-font-body sys-rhp-splash-color"> &nbsp; </Span>
  855. </td>
  856. </tr>
  857. <tr>
  858. <td colspan=2 class="height9 sys-RA-gradient-H"></td>
  859. </tr>
  860. <TR>
  861. <td colspan=2 class="height5">
  862. </TD>
  863. </TR>
  864. #endif // _HSSTOOLBAR
  865. #endif // _OLDSVRTOOLBAR
  866. </Table>
  867. </BODY>
  868. </HTML>