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.

1254 lines
50 KiB

  1. <html>
  2. <head>
  3. #include "header.inc"
  4. #include "debug_js.inc"
  5. // My local status
  6. #define MISTATUS_UNKNOWN 0x0000
  7. #define MISTATUS_OFFLINE 0x0001
  8. #define MISTATUS_ONLINE 0x0002
  9. #define MISTATUS_INVISIBLE 0x0006
  10. #define MISTATUS_BUSY 0x000A
  11. #define MISTATUS_BE_RIGHT_BACK 0x000E
  12. #define MISTATUS_IDLE 0x0012
  13. #define MISTATUS_AWAY 0x0022
  14. #define MISTATUS_ON_THE_PHONE 0x0032
  15. #define MISTATUS_OUT_TO_LUNCH 0x0042
  16. #define MISTATUS_LOCAL_FINDING_SERVER 0x0100
  17. #define MISTATUS_LOCAL_CONNECTING_TO_SERVER 0x0200
  18. #define MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER 0x0300
  19. #define MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER 0x0400
  20. <TITLE id="idTitle" name="idTitle">REMOTE_ASSISTANCE_INVITE</TITLE>
  21. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  22. <meta http-equiv="MSThemeCompatible" content="Yes">
  23. <LINK id="UI_StyleSheet1" REL="STYLESHEET" TYPE="text/css" HREF="../../Css/rcBuddy.css" >
  24. <LINK id="UI_StyleSheet2" REL="stylesheet" TYPE="text/css" HREF="hcp://system/css/shared.css">
  25. <OBJECT classid=clsid:B69003B3-C55E-4b48-836C-BC5946FC3B28 codeType=application/x-oleobject id=MsgrObj width=1 height=1></OBJECT>
  26. <SCRIPT>
  27. var g_bSignIn = false;
  28. // Timer stuff used for buffering Messenger Events
  29. var g_timeLastMessengerEventOccurred = 0;
  30. #define MESSENGER_EVENT_CALLBACK_TIME_NEEDED 200
  31. #define MESSENGER_EVENT_CALLBACK_TIME_LATER 1000
  32. var g_bSetMessengerEventCallback = false;
  33. </SCRIPT>
  34. <SCRIPT FOR="MsgrObj" EVENT="OnSignin" LANGUAGE="JavaScript">
  35. if (arguments[0] == 0)
  36. g_bSignIn = true;
  37. </SCRIPT>
  38. <SCRIPT FOR="MsgrObj" EVENT="OnMyStatusChange" LANGUAGE="JavaScript">
  39. DebugTrace("OnMyStatusChange");
  40. var state;
  41. try
  42. {
  43. state=MsgrObj.MyStatus;
  44. if(state == MISTATUS_LOCAL_FINDING_SERVER || state == MISTATUS_LOCAL_CONNECTING_TO_SERVER || state == MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER )
  45. {
  46. value=MISTATUS_LOCAL_CONNECTING_TO_SERVER;
  47. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  48. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  49. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  50. idDivMSNSigning.className="MaxWidth height14 Display valigntop";
  51. idEmailInput.focus();
  52. }
  53. else if (state&MISTATUS_ONLINE && value==MISTATUS_LOCAL_CONNECTING_TO_SERVER)
  54. {
  55. value=0;
  56. idDivMSNConnected.className="MaxWidth height14 Display";
  57. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  58. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  59. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  60. getContactList();
  61. idLink1Container.innerHTML="<img class='valignbottom borderNone' src='../common/dis_arrow.bmp'></img>&nbsp;&nbsp;<Span id='idLink1' name='idLink1' class='sys-font-body' disabled>"+ L_Invite_Text + "</span>";
  62. idEmailInput.focus();
  63. }
  64. else if (state==MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER)
  65. {
  66. g_bSignIn = false;
  67. value=0;
  68. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  69. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  70. idDivMSNSignIn.className="MaxWidth valigntop height14 Display";
  71. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  72. if (idDivMSNSetup.className=="MaxWidth valignmiddle height14 Display")
  73. {
  74. idLink3.focus();
  75. }
  76. if (idDivMSNSignIn.className=="MaxWidth valigntop height14 Display")
  77. {
  78. idbtnMSNSignIn.focus();
  79. }
  80. }
  81. else if(state==MISTATUS_OFFLINE && value==MISTATUS_LOCAL_CONNECTING_TO_SERVER)
  82. {
  83. value=0;
  84. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  85. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  86. idDivMSNSignIn.className="MaxWidth valigntop height14 Display";
  87. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  88. if (idDivMSNSetup.className=="MaxWidth valignmiddle height14 Display")
  89. {
  90. idLink3.focus();
  91. }
  92. if (idDivMSNSignIn.className=="MaxWidth valigntop height14 Display")
  93. {
  94. idbtnMSNSignIn.focus();
  95. }
  96. }
  97. else
  98. {
  99. if (0 == arguments[0])
  100. {
  101. getContactList();
  102. idLink1Container.innerHTML="<img class='valignbottom borderNone' src='../common/dis_arrow.bmp'></img>&nbsp;&nbsp;<Span id='idLink1' name='idLink1' class='sys-font-body' disabled>"+L_Invite_Text+"</span>";
  103. }
  104. }
  105. }
  106. catch(error)
  107. {
  108. alert(parent.parent.L_RCCTL_Text);
  109. return;
  110. }
  111. </SCRIPT>
  112. <SCRIPT FOR="MsgrObj" EVENT="OnContactStatusChange" LANGUAGE="JavaScript">
  113. DebugTrace("OnContactStatusChange");
  114. if (g_bSignIn)
  115. {
  116. HandleMessengerEvent();
  117. }
  118. </SCRIPT>
  119. <SCRIPT FOR="MsgrObj" EVENT="OnContactListRemove" LANGUAGE="JavaScript">
  120. DebugTrace("OnContactListRemote");
  121. if (0 == arguments[0] && g_bSignIn)
  122. {
  123. HandleMessengerEvent();
  124. }
  125. </SCRIPT>
  126. <SCRIPT FOR="MsgrObj" EVENT="OnContactListAdd" LANGUAGE="JavaScript">
  127. DebugTrace("OnContactListAdd");
  128. if (0 == arguments[0] && g_bSignIn)
  129. {
  130. HandleMessengerEvent();
  131. }
  132. </SCRIPT>
  133. <Script Language="VBScript">
  134. Function VBMessageBox(sPrompt, iBtn, sTitle)
  135. MsgBox sPrompt, iBtn, sTitle
  136. End Function
  137. </Script>
  138. <Script id="idScript1" name="idScript1" language="javascript">
  139. /*
  140. * Localizable constants, text and messages
  141. */
  142. var L_NOTO_Text = "Please provide a friendly name.";
  143. //var L_MSNNOTINSTALLED_Text ="Messenger is not installed."
  144. var L_ERRACCESSDENIED_Text = "Directly launching this page is not allowed. ";
  145. var L_MSOUTLOOK_Text ="Microsoft Outlook";
  146. var L_OUTLOOKEXPRESS_Text ="Outlook Express";
  147. var L_OUTLOOK_Text ="Outlook";
  148. var L_MICROSOFT_Text ="Microsoft";
  149. var L_EXPRESS_Text ="Express";
  150. var L_UNKNOWN_Text ="(Unknown)";
  151. var L_BUSY_Text ="(Busy)";
  152. var L_ONTHEPHONE_Text ="(On The Phone)";
  153. var L_BERIGHTBACK_Text ="(Be Right Back)";
  154. var L_AWAY_Text ="(Away)";
  155. var L_OUTTOLUNCH_Text ="(Out To Lunch)";
  156. var L_LOGON_Text ="Logging On...";
  157. var L_LOGOFF_Text ="Logging Off...";
  158. var L_SignInFailed_Text = "Sign in failed: ";
  159. var L_Invite_Text = "Invite this person";
  160. var L_None_Text = "None";
  161. var L_CONTINUE_Text ="Continue";
  162. var value;
  163. var oSmapi;
  164. var flag=0;
  165. var g_wshShell = null;
  166. function HandleMessengerEvent()
  167. {
  168. TraceFunctEnter("MessengerEventCallback");
  169. try
  170. {
  171. var timeObj;
  172. timeObj = new Date();
  173. // Mark the time this event got handles
  174. g_timeLastMessengerEventOccurred = timeObj.getTime();
  175. DebugTrace("Got event at : "+g_timeLastMessengerEventOccurred);
  176. // Check to see if we can set the callback function
  177. if (!g_bSetMessengerEventCallback)
  178. {
  179. DebugTrace("Setting Callback at : "+g_timeLastMessengerEventOccurred);
  180. g_bSetMessengerEventCallback = true;
  181. setTimeout( "MessengerEventCallback()", MESSENGER_EVENT_CALLBACK_TIME_LATER);
  182. }
  183. timeObj = null; // Free the Date object
  184. }
  185. catch (e)
  186. {
  187. alert("Error :"+e.description);
  188. }
  189. TraceFunctLeave();
  190. }
  191. function MessengerEventCallback()
  192. {
  193. TraceFunctEnter("MessengerEventCallback");
  194. var timeObj;
  195. var timemsNow = 0;
  196. timeObj = new Date();
  197. timemsNow = timeObj.getTime();
  198. DebugTrace("In Callback at : "+timemsNow);
  199. if (timemsNow - g_timeLastMessengerEventOccurred < MESSENGER_EVENT_CALLBACK_TIME_NEEDED)
  200. {
  201. DebugTrace("Not enough time passed since last callback!");
  202. // The last Messenger callback happened in less that MESSENGER_EVENT_CALLBACK_TIME_NEEDED ago
  203. // Set the callback for another MESSENGER_EVENT_CALLBACK_TIME_LATER
  204. setTimeout( "MessengerEventCallback()", MESSENGER_EVENT_CALLBACK_TIME_LATER);
  205. }
  206. else
  207. {
  208. DebugTrace("Updating the list!");
  209. // Update the UI
  210. getContactList();
  211. idLink1Container.innerHTML="<img class='valignbottom borderNone' src='../common/dis_arrow.bmp'></img>&nbsp;&nbsp;<Span id='idLink1' name='idLink1' class='sys-font-body' disabled>"+L_Invite_Text+"</span>";
  212. g_bSetMessengerEventCallback = false;
  213. }
  214. timeObj = null; // Free the Date object
  215. TraceFunctLeave();
  216. }
  217. function onLoadHelper()
  218. {
  219. TraceFunctEnter("onLoadHelper");
  220. try
  221. {
  222. if ( "object" != typeof( parent.idframeset ) )
  223. {
  224. //
  225. // Connection.htm needs some more time
  226. //
  227. setTimeout( "onLoad()", 5000 );
  228. }
  229. else
  230. {
  231. onLoad();
  232. }
  233. }
  234. catch (e)
  235. {
  236. alert(ERROR_STRING(parent.parent.L_RCCTL_Text, e));
  237. }
  238. TraceFunctLeave();
  239. }
  240. function onLoad()
  241. {
  242. TraceFunctEnter("onLoad");
  243. //check for the status of the MSN Messenger
  244. try
  245. {
  246. parent.idframeset.rows = "0%;*";
  247. if( null == parent.parent.OnLoad || parent.parent.g_bRAStart == null)
  248. {
  249. idBody.style.visibility = "hidden";
  250. parent.window.navigate( "hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Escalation/Common/rcscreen1.htm" );
  251. return;
  252. }
  253. // check to see if Messenger is allowed to run
  254. var wshShell = new ActiveXObject("WScript.Shell");
  255. var iNoMessenger = 0;
  256. try { // check policy
  257. iNoMessenger = wshShell.RegRead("HKLM\\Software\\policies\\Microsoft\\Messenger\\Client\\PreventRun");
  258. }
  259. catch (e)
  260. {
  261. // do nothing
  262. }
  263. if (iNoMessenger == 0)
  264. {
  265. try {
  266. // check local policy
  267. iNoMessenger = wshShell.RegRead("HKCU\\Software\\policies\\Microsoft\\Messenger\\Client\\PreventRun");
  268. }
  269. catch (e)
  270. {
  271. // do nothing
  272. }
  273. }
  274. if (iNoMessenger == 1)
  275. {
  276. idDivNoMSN.className="MaxWidth height14 Display";
  277. }
  278. else
  279. {
  280. var MSNState;
  281. MSNState = MsgrObj.MyStatus;
  282. switch(MSNState)
  283. {
  284. case MISTATUS_OFFLINE:
  285. case MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER:
  286. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  287. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  288. idDivMSNSignIn.className="MaxWidth valigntop height14 Display";
  289. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  290. idbtnMSNSignIn.focus();
  291. break;
  292. case MISTATUS_LOCAL_FINDING_SERVER:
  293. case MISTATUS_LOCAL_CONNECTING_TO_SERVER:
  294. case MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER:
  295. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  296. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  297. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  298. idDivMSNSigning.className="MaxWidth height14 Display valigntop";
  299. break;
  300. case MISTATUS_INVISIBLE:
  301. case MISTATUS_BUSY:
  302. case MISTATUS_BE_RIGHT_BACK:
  303. case MISTATUS_IDLE:
  304. case MISTATUS_AWAY:
  305. case MISTATUS_ON_THE_PHONE:
  306. case MISTATUS_OUT_TO_LUNCH:
  307. case MISTATUS_ONLINE:
  308. g_bSignIn = true;
  309. idDivMSNConnected.className="MaxWidth height14 Display";
  310. idDivMSNSetup.className="MaxWidth valignmiddle height14 DisplayNone";
  311. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  312. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  313. getContactList();
  314. break;
  315. case MISTATUS_UNKNOWN: // Doesn't know if we've MSN setup.
  316. default:
  317. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  318. idDivMSNSetup.className="MaxWidth valignmiddle height14 Display";
  319. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  320. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  321. idLink3.focus();
  322. break;
  323. }
  324. }
  325. }
  326. catch(error)
  327. {
  328. // Couldn't get state
  329. idDivMSNConnected.className="MaxWidth height14 DisplayNone";
  330. idDivMSNSetup.className="MaxWidth valignmiddle height14 Display";
  331. idDivMSNSignIn.className="MaxWidth valigntop height14 DisplayNone";
  332. idDivMSNSigning.className="MaxWidth height14 DisplayNone valigntop";
  333. idLink3.focus();
  334. return;
  335. }
  336. // #ifndef RA_PROTOTYPE
  337. // try
  338. // {
  339. // oSmapi = parent.parent.GetMapi();
  340. // oSmapi.Reload;
  341. // }
  342. // catch (error)
  343. // {
  344. // // Couldn't get mapi object;
  345. // alert(parent.parent.L_RCCTL_Text);
  346. // return;
  347. // }
  348. // // ShowEmailDiv();
  349. // #endif
  350. TraceFunctLeave();
  351. }
  352. // function ShowEmailDiv()
  353. // {
  354. // TraceFunctEnter("ShowEmailDiv");
  355. // try
  356. // {
  357. // switch(oSmapi.SMAPIClientName)
  358. // {
  359. // default:
  360. // idEmailGif.innerHTML="<Img src='../common/generic_mail.gif'>";
  361. // idEmail.innerHTML=oSmapi.SMAPIClientName;
  362. // break;
  363. // }
  364. // }
  365. // catch(error)
  366. // {
  367. // alert(parent.parent.L_RCCTL_Text);
  368. // return;
  369. // }
  370. // TraceFunctLeave();
  371. // }
  372. // Print a list of online contacts on the web page
  373. function getContactList()
  374. {
  375. TraceFunctEnter("getContactList");
  376. var txtOnline = "";
  377. var txtOnline1 = "";
  378. var txtOnline2 = "";
  379. var txtOnline3 = "";
  380. var txtOnline4 = "";
  381. var txtOnline5 = "";
  382. var txtOnline6 = "";
  383. var txtOnline7 = "";
  384. var txtOnline8 = "";
  385. var txtOffline = "";
  386. var nUser = 0;
  387. var User="";
  388. var list="";
  389. try
  390. {
  391. // Get the contact list
  392. list = MsgrObj.MyContacts;
  393. }
  394. catch(error)
  395. {
  396. alert(parent.parent.L_RCCTL_Text);
  397. return;
  398. }
  399. try
  400. {
  401. // Calculate the number of online contacts
  402. for (nUser=0; nUser<list.Count; nUser++)
  403. {
  404. User=list.Item(nUser);
  405. /*if (isStateOnline(User.Status))
  406. {
  407. txtOnline += "<BR>"+getUserWithState(User);
  408. }
  409. else
  410. {
  411. txtOffline += "<BR>"+getUserWithState(User);
  412. }
  413. */
  414. switch(User.Status)
  415. {
  416. case 0:
  417. case MISTATUS_OFFLINE:
  418. case MISTATUS_LOCAL_FINDING_SERVER:
  419. case 512:
  420. case 768:
  421. case 1024:
  422. txtOffline =getUserWithState(User)+txtOffline;
  423. break;
  424. case MISTATUS_ONLINE:
  425. txtOnline1 =getUserWithState(User)+txtOnline1;
  426. break;
  427. case MISTATUS_BUSY:
  428. txtOnline2 =getUserWithState(User)+txtOnline2;
  429. break;
  430. case MISTATUS_BE_RIGHT_BACK:
  431. txtOnline3 =getUserWithState(User)+txtOnline3;
  432. break;
  433. case MISTATUS_IDLE:
  434. txtOnline4 =getUserWithState(User)+txtOnline4;
  435. break;
  436. case MISTATUS_AWAY:
  437. txtOnline5 =getUserWithState(User)+txtOnline5;
  438. break;
  439. case MISTATUS_ON_THE_PHONE:
  440. txtOnline6 =getUserWithState(User)+txtOnline6;
  441. break;
  442. case MISTATUS_OUT_TO_LUNCH:
  443. txtOnline7 =getUserWithState(User)+txtOnline7;
  444. break;
  445. case MISTATUS_INVISIBLE:
  446. txtOnline8 =getUserWithState(User)+txtOnline8;
  447. break;
  448. }
  449. txtOnline=txtOnline1+txtOnline2+txtOnline5+txtOnline7+txtOnline6+txtOnline3+txtOnline4+txtOnline8;
  450. }
  451. if (txtOnline.length == 0)
  452. {
  453. txtOnline = "<BR><Span class='MaxWidth' id='idNoneOnline' name='idNoneOnline'><IMG alt='' src='../common/buddy_none.gif'>&nbsp;"+L_None_Text+"</span>";
  454. }
  455. if (txtOffline.length == 0)
  456. {
  457. txtOffline = "<BR><Span class='MaxWidth' id='idNoneOffline' name='idNoneOffline'><IMG alt='' src='../common/buddy_none.gif'>&nbsp;"+L_None_Text+"</span>";
  458. }
  459. document.all.mContactsOnline.innerHTML = txtOnline;
  460. document.all.mContactsOffline.innerHTML = txtOffline;
  461. }
  462. catch(error)
  463. {
  464. alert(parent.parent.L_RCCTL_Text);
  465. return;
  466. }
  467. TraceFunctLeave();
  468. }
  469. // Tell if the given state is an online state.
  470. /*function isStateOnline(state)
  471. {
  472. var ret;
  473. switch (state)
  474. {
  475. case 0:
  476. case MISTATUS_OFFLINE:
  477. case MISTATUS_LOCAL_FINDING_SERVER:
  478. case 512:
  479. case 768:
  480. case 1024:
  481. ret = 0;
  482. break;
  483. case MISTATUS_ONLINE:
  484. ret= 1;
  485. break;
  486. case MISTATUS_INVISIBLE:
  487. ret =8;
  488. break;
  489. case MISTATUS_BUSY:
  490. ret=2;
  491. break;
  492. case MISTATUS_BE_RIGHT_BACK:
  493. ret=3;
  494. break;
  495. case MISTATUS_IDLE:
  496. ret=4;
  497. break;
  498. case MISTATUS_AWAY:
  499. ret=5;
  500. break;
  501. case MISTATUS_ON_THE_PHONE:
  502. ret= 6;
  503. break;
  504. case MISTATUS_OUT_TO_LUNCH:
  505. ret =7
  506. break;
  507. }
  508. return ret;
  509. }*/
  510. function getUserWithState(pUser)
  511. {
  512. TraceFunctEnter("getUserWithState");
  513. var ret;
  514. var state;
  515. try
  516. {
  517. state=pUser.Status;
  518. switch (state)
  519. {
  520. case 0:
  521. statusImg ="<IMG alt='' src='../common/buddy_Offline.gif'>";
  522. statusText =L_UNKNOWN_Text;
  523. break;
  524. case MISTATUS_ONLINE:
  525. statusImg = "<IMG alt='' src='../common/buddy.gif'>";
  526. statusText="";
  527. break;
  528. case MISTATUS_OFFLINE:
  529. case MISTATUS_INVISIBLE:
  530. statusImg ="<IMG alt='' src='../common/buddy_Offline.gif'>";
  531. statusText="";
  532. break;
  533. case MISTATUS_BUSY:
  534. statusImg="<IMG alt='' src='../common/buddy_busy.gif'>";
  535. statusText=L_BUSY_Text;
  536. break;
  537. case MISTATUS_ON_THE_PHONE:
  538. statusImg = "<IMG alt='' src='../common/buddy_busy.gif'>";
  539. statusText=L_ONTHEPHONE_Text;
  540. break;
  541. case MISTATUS_BE_RIGHT_BACK:
  542. statusImg = "<IMG alt='' src='../common/buddy_away.gif'>";
  543. statusText=L_BERIGHTBACK_Text;
  544. break;
  545. case MISTATUS_IDLE:
  546. case MISTATUS_AWAY:
  547. statusImg ="<IMG alt='' src='../common/buddy_away.gif'>";
  548. statusText=L_AWAY_Text;
  549. break;
  550. case MISTATUS_OUT_TO_LUNCH:
  551. statusImg = "<IMG alt='' src='../common/buddy_away.gif'>";
  552. statusText=L_OUTTOLUNCH_Text;
  553. break;
  554. case MISTATUS_LOCAL_FINDING_SERVER:
  555. case 512:
  556. case 768:
  557. ret = L_LOGON_Text;
  558. break;
  559. case 1024:
  560. ret = L_LOGOFF_Text;
  561. break;
  562. }
  563. var sName = EscapeName(pUser.FriendlyName);
  564. var sSigninName = pUser.SigninName;
  565. if (state==MISTATUS_OFFLINE || state==MISTATUS_INVISIBLE)
  566. {
  567. ret="<BR><Span class='MaxWidth' name='idOfflineItem' id='idOfflineItem' onclick='EnableMSNInvite(\"" + sSigninName +"\");' ondblclick='EnableMSNInvite(\"" + sSigninName + "\");DoInvite(\"" + sSigninName +"\");'>&nbsp;"+statusImg+" "+ sName +statusText+"</span>";
  568. }
  569. else
  570. {
  571. ret="<BR><Span class='MaxWidth' name='idOnlineItem' id='idOnlineItem' onclick='EnableMSNInvite(\"" + sSigninName +"\");' ondblclick='EnableMSNInvite(\"" + sSigninName + "\");DoInvite(\"" + sSigninName +"\");'>&nbsp;"+statusImg+" "+sName+statusText+"</span>";
  572. }
  573. return ret;
  574. }
  575. catch(error)
  576. {
  577. alert(parent.parent.L_RCCTL_Text);
  578. return;
  579. }
  580. TraceFunctLeave();
  581. }
  582. function document.onclick()
  583. {
  584. TraceFunctEnter("document.onclick");
  585. try
  586. {
  587. if (event.srcElement.id!="idLink1")
  588. {
  589. var e=new Enumerator(mContactsOffline.all.tags("span"));
  590. for (;!e.atEnd();e.moveNext())
  591. {
  592. x = e.item();
  593. x.className="MaxWidth";
  594. }
  595. var e=new Enumerator(mContactsOnline.all.tags("span"));
  596. for (;!e.atEnd();e.moveNext())
  597. {
  598. x = e.item();
  599. x.className="MaxWidth";
  600. }
  601. idLink1Container.innerHTML="<img class='valignbottom borderNone' src='../common/dis_arrow.bmp'></img>&nbsp;&nbsp;<Span id='idLink1' name='idLink1' class='sys-font-body' disabled>" + L_Invite_Text + "</span>";
  602. }
  603. }
  604. catch(error)
  605. {
  606. alert(parent.parent.L_RCCTL_Text);
  607. return;
  608. }
  609. TraceFunctLeave();
  610. }
  611. function EnableMSNInvite(sName)
  612. {
  613. TraceFunctEnter("EnableMSNInvite");
  614. try
  615. {
  616. var e=new Enumerator(mContactsOffline.all.tags("span"));
  617. for (;!e.atEnd();e.moveNext())
  618. {
  619. x = e.item();
  620. x.className="MaxWidth";
  621. }
  622. var e=new Enumerator(mContactsOnline.all.tags("span"));
  623. for (;!e.atEnd();e.moveNext())
  624. {
  625. x = e.item();
  626. x.className="MaxWidth";
  627. }
  628. if (event.srcElement.tagName=="IMG")
  629. {
  630. event.srcElement.parentElement.className="MaxWidth sys-table-cell-bgcolor3";
  631. }
  632. else
  633. {
  634. event.srcElement.className="MaxWidth sys-table-cell-bgcolor3";
  635. }
  636. idLink1Container.innerHTML="<Img id='idimgLink1' name='idimgLink1' onclick='DoInvite(\"" + sName + "\");return false;' class='valignbottom borderNone' ondragstart='return false;' src='../common/green_rest_16x.bmp' onmouseover='this.style.cursor=\"hand\";document.getElementById(\"idLink1\").style.textDecorationUnderline=true' onmouseout='document.getElementById(\"idLink1\").style.textDecorationUnderline=false'></Img>&nbsp;&nbsp;<A href='' id='idLink1' name='idLink1' ondragstart='return false;' tabindex='1' class='valignmiddle sys-font-body sys-link-normal' onclick='DoInvite(\"" + sName + "\");return false;'>" +L_Invite_Text+"</A>";
  637. event.cancelBubble=true;
  638. }
  639. catch(error)
  640. {
  641. alert(parent.parent.L_RCCTL_Text);
  642. return;
  643. }
  644. TraceFunctLeave();
  645. }
  646. function EnableEmailInvite()
  647. {
  648. TraceFunctEnter("EnableEmailInvite");
  649. try
  650. {
  651. if(idEmailInput.value.length == 0)
  652. {
  653. if (window.event.keyCode == 13)
  654. {
  655. alert(L_NOTO_Text);
  656. idEmailInput.focus();
  657. window.event.returnValue=false;
  658. }
  659. else
  660. {
  661. idLink2Container.innerHTML = "<img class='valignbottom borderNone' src='../common/dis_arrow.bmp'></img>&nbsp;&nbsp;<Span id='idLink2' name='idLink2' class='sys-font-body' disabled>" + L_CONTINUE_Text + "</span>";
  662. }
  663. }
  664. else
  665. {
  666. if (window.event.keyCode == 13)
  667. {
  668. GotoEmail();
  669. window.event.returnValue=false;
  670. }
  671. else
  672. {
  673. idLink2Container.innerHTML ="<Img id='idimgLink2' name='idimgLink2' onclick='GotoEmail();return false;' class='valignbottom borderNone' ondragstart='return false;' src='../common/green_rest_16x.bmp' onmouseover='idimgLink2.style.cursor=\"hand\";document.getElementById(\"idLink2\").style.textDecorationUnderline=true;' onmouseout='document.getElementById(\"idLink2\").style.textDecorationUnderline=false;'></Img>&nbsp;&nbsp;<A href='' id='idLink2' name='idLink2' ondragstart='return false;' tabindex='4' class='valignmiddle sys-font-body sys-link-normal' onclick='GotoEmail();return false;'>" +L_CONTINUE_Text+"</A>";
  674. }
  675. }
  676. }
  677. catch(error)
  678. {
  679. alert(parent.parent.L_RCCTL_Text);
  680. return;
  681. }
  682. TraceFunctLeave();
  683. }
  684. function GotoEmail()
  685. {
  686. TraceFunctEnter("GotoEmail");
  687. try
  688. {
  689. parent.parent.sTo = idEmailInput.value;
  690. parent.navigate("rcScreen5.htm");
  691. }
  692. catch(error)
  693. {
  694. alert(parent.parent.L_RCCTL_Text);
  695. return;
  696. }
  697. TraceFunctLeave();
  698. }
  699. function SignIn()
  700. {
  701. TraceFunctEnter("SignIn");
  702. try {
  703. var oMsgrUI = new ActiveXObject("Messenger.MessengerApp");
  704. oMsgrUI.LaunchLogonUI();
  705. }
  706. catch(error)
  707. {
  708. alert(L_SignInFailed_Text + error.description);
  709. return;
  710. }
  711. TraceFunctLeave();
  712. }
  713. function DoInvite(sName)
  714. {
  715. TraceFunctEnter("DoInvite");
  716. var list, nUser;
  717. try
  718. {
  719. list = MsgrObj.MyContacts;
  720. for (nUser=0; nUser<list.Count; nUser++)
  721. {
  722. User=list.Item(nUser);
  723. if (User.SigninName==sName)
  724. {
  725. if (User.Status==MISTATUS_IDLE || User.Status==MISTATUS_AWAY)
  726. {
  727. var L_CONFIRMAWAYUSER_Text=" is away from the computer, do you still want to send the invitation?";
  728. if (confirm(User.FriendlyName + L_CONFIRMAWAYUSER_Text))
  729. {
  730. //alert("Start RA using IM for user: " + sName);
  731. // continue.
  732. // Fix for Bug 437527. - Check if the Messenger is ONLINE or not.
  733. // Fix for Bug 469656 - Check if the Messenger is ONLINE by doing a bitwise AND of status and MISTATUS_ONLINE.
  734. // MISTATUS_ONLINE, MISTATUS_INVISIBLE, MISTATUS_BUSY, MISTATUS_BE_RIGHT_BACK, MISTATUS_IDLE,
  735. // MISTATUS_AWAY, MISTATUS_ON_THE_PHONE, MISTATUS_OUT_TO_LUNCH all these denote ONLINE state.
  736. var EffectiveStatus = User.Status & MISTATUS_ONLINE;
  737. if(EffectiveStatus != MISTATUS_ONLINE)
  738. {
  739. var L_SessionStatusAppShutDown_Text = "The Windows Messenger server has stopped responding. Please try to connect again.";
  740. var L_RA_Text = "Remote Assistance";
  741. VBMessageBox(L_SessionStatusAppShutDown_Text, 48, L_RA_Text);
  742. return;
  743. }
  744. }
  745. else
  746. return;
  747. }
  748. else if (User.Status==MISTATUS_OFFLINE||User.Status==MISTATUS_INVISIBLE)
  749. {
  750. var L_ConfirmOfflineUser_Text =" is offline. Do you want to send an e-mail invitation?";
  751. if (confirm(User.FriendlyName + L_ConfirmOfflineUser_Text))
  752. {
  753. // if (oSmapi == null)
  754. // {
  755. // oSmapi = parent.parent.GetMapi();
  756. // }
  757. // oSmapi.ClearRecipList();
  758. // oSmapi.AddRecipient(User.EmailAddress);
  759. parent.parent.sTo = User.FriendlyName;
  760. parent.navigate("rcScreen5.htm");
  761. }
  762. return;
  763. }
  764. else
  765. {
  766. //alert("Start RA using IM for user: " + sName);
  767. }
  768. break;
  769. }
  770. }
  771. }
  772. catch(error)
  773. {
  774. alert(parent.parent.L_RCCTL_Text);
  775. return;
  776. }
  777. if (nUser >= list.Count)
  778. {
  779. alert(parent.parent.L_RCCTL_Text);
  780. return;
  781. }
  782. // If the process goes to here, we know we've found the User object.
  783. // invite the user
  784. try {
  785. #if 0
  786. // 1. might need to filter out NONE-.NET service users
  787. if (User.ServiceId != "{9b017612-c9f1-11d2-8d9f-0000f875c541}")
  788. {
  789. var UseExchangeIM = 0;
  790. if (g_wshShell == null)
  791. g_wshShell = new ActiveXObject("WScript.Shell");
  792. try {
  793. UseExchangeIM = g_wshShell.RegRead("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\UseExchangeIM");
  794. }
  795. catch(e) {} // legal failure; do nothing
  796. if ((UseExchangeIM & 0x1) != 1) // filter out none .NET buddy invitation
  797. {
  798. var L_NoExchangeIM_Text = "Your corporate network configuration does not support using Windows Messenger with Remote Assistance.";
  799. var L_RA_Text = "Remote Assistance";
  800. VBMessageBox(L_NoExchangeIM_Text, 48, L_RA_Text);
  801. return;
  802. }
  803. }
  804. #endif
  805. var vArgs = new Array(2);
  806. oSession = new ActiveXObject("rcbdyctl.IMSession");
  807. // vArgs[0] = oSession;
  808. // vArgs[1] = User;
  809. // window.showModalDialog("rcInviteStatus.htm",
  810. // vArgs, "DialogWidth:405px;DialogHeight:168px;Status:no;");
  811. oSession.HSC_Invite(User);
  812. oSession = null;
  813. }
  814. catch (e)
  815. {
  816. var L_IMSessionFailed_Text = "Send Invitation failed: ";
  817. alert(L_IMSessionFailed_Text + e.description);
  818. }
  819. TraceFunctLeave();
  820. }
  821. // function EmailChange()
  822. // {
  823. // TraceFunctEnter("EmailChange");
  824. // try
  825. // {
  826. // if (oSmapi == null)
  827. // {
  828. // oSmapi = parent.parent.GetMapi();
  829. // }
  830. // oSmapi.ClearRecipList();
  831. // oSmapi.AddRecipient(idEmailInput.value);
  832. // }
  833. // catch(error)
  834. // {
  835. // alert(parent.parent.L_RCCTL_Text);
  836. // return;
  837. // }
  838. // TraceFunctLeave();
  839. // }
  840. // function DoAddressBox()
  841. // {
  842. // TraceFunctEnter("DoAddressBox");
  843. // var i = 0;
  844. // var s = "";
  845. // try
  846. // {
  847. // if (oSmapi == null)
  848. // {
  849. // oSmapi = parent.parent.GetMapi();
  850. // }
  851. // oSmapi.Logon();
  852. // oSmapi.OpenAddressBox();
  853. // for (i =0; i< oSmapi.Recipients.Count ; i++)
  854. // {
  855. // if (i>0)
  856. // {
  857. // s += "; ";
  858. // }
  859. // s += oSmapi.Recipients.item(i).Name;
  860. // }
  861. // idEmailInput.focus();
  862. // idEmailInput.value = s;
  863. // if (idEmailInput.value!="")
  864. // {
  865. // idLink2Container.innerHTML = "<A class='valignmiddle sys-font-body sys-link-normal' ondragstart='return false;' id='idLink2' name='idLink2' href='' onclick='GotoEmail();return false;' tabindex='4'><img class='valignbottom borderNone' src='../common/green_rest_16x.bmp'></img>&nbsp;&nbsp;&nbsp;" + L_CONTINUE_Text + "</A>";
  866. // }
  867. // }
  868. // catch(error)
  869. // {
  870. // if (parent.parent.L_RCCTL_Text != null) // user switch to another page
  871. // {
  872. // alert(parent.parent.L_RCCTL_Text);
  873. // }
  874. // return;
  875. // }
  876. // TraceFunctLeave();
  877. // }
  878. /*
  879. * NOTE: This function should always be the last function defined for
  880. * localization reasons. If you have script with localizable strings
  881. * defined below this routine, then it would not get localized
  882. */
  883. function EscapeName( szName )
  884. {
  885. TraceFunctEnter("");
  886. try
  887. {
  888. var szTmp = new String( szName );
  889. var re = /\'/g;
  890. var szEscapedName = szTmp.replace( re, "&prime;" );
  891. re = /\"/g;
  892. szEscapedName = szEscapedName.replace( re, "&Prime;" );
  893. szEscapedName = parent.parent.EscapedName( szName );
  894. }
  895. catch(error)
  896. {
  897. alert(parent.parent.L_RCCTL_Text);
  898. return;
  899. }
  900. TraceFunctLeave();
  901. return szEscapedName;
  902. }
  903. </Script>
  904. <Style>
  905. .Height2
  906. {
  907. height:20px;
  908. }
  909. .height14
  910. {
  911. height:150px;
  912. }
  913. .Width9
  914. {
  915. width:80%;
  916. }
  917. .width16
  918. {
  919. width:20%;
  920. }
  921. .PositionR
  922. {
  923. position:relative;
  924. }
  925. .ZIndex1
  926. {
  927. Z-index:1;
  928. }
  929. .OverflowyScroll
  930. {
  931. overflow-y:auto;
  932. }
  933. .cellpadding3
  934. {
  935. padding-right:0px;
  936. }
  937. </Style>
  938. </head>
  939. <Body id="idBody" name="idBody" class="margin sys-rhp-bgcolor" scroll="auto" onload="onLoadHelper();">
  940. <Table id="idTableFrame" name="idTableFrame" cellpadding="16px" cellspacing="0" class="Maxwidth">
  941. <TR>
  942. <TD>
  943. <Table id="RA_Invite" name="RA_Invite" border="0" cellspacing="0" cellpadding="0" class="MaxWidth">
  944. <TR>
  945. <TD id="idTd1" name="idTd1">
  946. <Span id="idMainTitle" name="idMainTitle" class="sys-font-heading3 sys-rhp-color-title">Remote Assistance</span>
  947. </TD>
  948. </TR>
  949. <TR>
  950. <TD class="height9">
  951. </TD>
  952. </TR>
  953. <TR>
  954. <TD id="idTd2" name="idTd2">
  955. <span id="idSubTitle" name="idSubTitle" class="sys-font-body-bold sys-color-body">Pick how you want to contact your assistant</span>
  956. </TD>
  957. </TR>
  958. <TR>
  959. <TD class="height4">
  960. </TD>
  961. </TR>
  962. <TR>
  963. <TD id="idTd3" name="idTd3">
  964. <span id="idMethod1" name="idMethod1" class="sys-font-body-bold sys-color-body"><span id="idMethod1Status">Use Windows Messenger ...</span></span>
  965. </TD>
  966. </TR>
  967. <TR>
  968. <TD class="Height5">
  969. </TD>
  970. </TR>
  971. <TR>
  972. <TD>
  973. <table border="0" cellspacing="0" cellpadding="0" class="Maxwidth sys-toppane-color-border sys-table-cell-bgcolor5 bordertype1">
  974. <TR>
  975. <TD id="MSNCell1" name="MSNCell1" align="center" class="valigntop sys-table-cell-bgcolor3 width1">
  976. <BR>
  977. <Img id="idimg1" name="idimg1" src="../common/messenger_big.gif"></Img>
  978. <BR>
  979. <span id="idMSN" name="idMSN" class="sys-font-body sys-color-body">Windows Messenger<BR></span>
  980. <BR>
  981. </TD>
  982. <TD>
  983. <!--Already signed into MSN -->
  984. <Div id="idDivMSNConnected" name="idDivMSNConnected" class="MaxWidth height14 DisplayNone" >
  985. <Table cellpadding="6px" cellspacing="0" border="0" class="MaxLayout PositionR ZIndex1">
  986. <TR>
  987. <TD>
  988. <table cellspacing="6px" cellpadding="0" border="0" class="MaxWidth">
  989. <TR>
  990. <TD id="idTd4" name="idTd4" class="cellpadding3">
  991. <Div id="idMSNList" name="idMSNList" class=" sys-toppane-color-border bordertype1 sys-table-cell-bgcolor1 OverflowyScroll sys-font-body height1">
  992. &nbsp;&nbsp;<Span id="idOnline" name="idOnline" class="sys-font-body-bold sys-color-body">Online</Span>
  993. <Span id="mContactsOnline" class="sys-font-body sys-color-body"></span><BR>
  994. &nbsp;&nbsp;<span id="idOffline" name="idOffline" class="sys-font-body-bold sys-color-body">Not online</Span>
  995. <span id="mContactsOffline" class="sys-font-body sys-color-body"></Span></BR>
  996. </Div>
  997. </TD>
  998. </TR>
  999. <TR>
  1000. <TD id="idTd15" name="idTd15" nowrap>
  1001. <Span id="idLink1Container" name="idLink1Container">
  1002. <img id="idimg2" name="idimg2" class="valignbottom borderNone" src="../common/dis_arrow.bmp"></img>
  1003. <Span id="idLink1" name="idLink1" class="sys-font-body" disabled>&nbsp;Invite this person</span>
  1004. </Span>
  1005. </TD>
  1006. </TR>
  1007. </table>
  1008. </TD>
  1009. </TR>
  1010. </Table>
  1011. </Div>
  1012. <!--Setup for MSN -->
  1013. <Div id="idDivMSNSetup" name="idDivMSNSetup" class="MaxWidth valignmiddle height14 DisplayNone">
  1014. <Table cellpadding="16px" cellspacing="0" border="0" class="MaxLayout PositionR ZIndex1">
  1015. <TR>
  1016. <TD id="idTd5" name="idTd5" class="valigntop">
  1017. <span id="idText1" name="idText" class="sys-font-body-bold sys-color-body">Windows Messenger is not installed</Span>
  1018. <P id="idP1" name="idP1">
  1019. <A href="http://messenger.microsoft.com/" name="idLink3" id="idLink3" class="sys-font-body sys-link-normal" target="_blank" tabindex="1">Download Windows Messenger</A>
  1020. </TD>
  1021. </TR>
  1022. </Table>
  1023. </Div>
  1024. <!--Sign-in for MSN -->
  1025. <Div id="idDivMSNSignIn" name="idDivMSNSignIn" class="MaxWidth valigntop height14 DisplayNone">
  1026. <table cellpadding="16px" cellspacing="0" border="0" class="MaxLayout PositionR Zindex1">
  1027. <TR>
  1028. <TD id="idTd6" name="idTd6" class="valignTop">
  1029. <Span id="Text1" name="Text1" class="sys-font-body sys-color-body">To send an invitation to a Windows Messenger contact, you must sign in.</span>
  1030. <P id="idP2" name="idP2">
  1031. <Button id="idbtnMSNSignIn" name="idbtnMSNSignIn" class="sys-font-body sys-color-body" onclick="SignIn();" tabindex="1">&nbsp;&nbsp;&nbsp;&nbsp;Sign In&nbsp;&nbsp;&nbsp;&nbsp;</Button>
  1032. </TD>
  1033. </TR>
  1034. </Table>
  1035. </Div>
  1036. <!--Signing intoMSN -->
  1037. <Div id="idDivMSNSigning" name="idDivMSNSigning" class="MaxWidth height14 DisplayNone valigntop" >
  1038. <Table cellpadding="16px" cellspacing="0" border="0" class="MaxLayout PositionR ZIndex1">
  1039. <TR>
  1040. <TD class="width16">
  1041. </TD>
  1042. <TD class="valignTop">
  1043. <img id="idimg6" name="idimg6" src="../common/logon_anim.gif"></img>
  1044. <P id="idP3" name="idP3">
  1045. <Span id="idMSNSigning" name="idMSNSigning" class="MaxWidth sys-font-body-bold sys-color-body " >
  1046. Signing in ....
  1047. </span>
  1048. </TD>
  1049. </TR>
  1050. </Table>
  1051. </Div>
  1052. <!--No Messenger allowed -->
  1053. <Div id="idDivNoMSN" name="idDivNoMSN" class="MaxWidth height14 DisplayNone valigntop" >
  1054. <Table cellpadding="16px" cellspacing="0" border="0" class="MaxLayout PositionR ZIndex1">
  1055. <TR>
  1056. <TD class="width16">
  1057. </TD>
  1058. <TD class="valignTop">
  1059. <P id="idP4" name="idP4">
  1060. <Span id="idNoMSN" name="idNoMSN" class="MaxWidth sys-font-body-bold sys-color-body " >
  1061. An administrator has denied permission to use Windows Messenger. For information, contact your administrator.
  1062. </span>
  1063. </TD>
  1064. </TR>
  1065. </Table>
  1066. </Div>
  1067. </TD>
  1068. </TR>
  1069. </table>
  1070. </TD>
  1071. </TR>
  1072. <TR>
  1073. <TD class="height7">
  1074. </TD>
  1075. </TR>
  1076. <TR>
  1077. <TD id="idTd8" name="idTd8">
  1078. <span id="idMethod2" name="idMethod2" class="sys-font-body-bold sys-color-body">or prepare an e-mail invitation</span>
  1079. </TD>
  1080. </TR>
  1081. <TR>
  1082. <TD class="Height5">
  1083. </TD>
  1084. </TR>
  1085. <TR>
  1086. <TD>
  1087. <table border="0" cellspacing="0" cellpadding="0" class="Maxwidth sys-toppane-color-border sys-table-cell-bgcolor5 bordertype1">
  1088. <TR>
  1089. <TD id="EmailCell1" name="EmailCell1" align="center" class="sys-table-cell-bgcolor3 valigntop width1" nowrap>
  1090. <BR>
  1091. <Span id="idEmailGif" name="idEmailGif"><Img src='../common/generic_mail.gif'></span>
  1092. <BR>
  1093. <span id="idEmail" name="idEmail" class="sys-font-body sys-color-body">E-mail</span>
  1094. <BR><BR>
  1095. </TD>
  1096. <TD class="height6">
  1097. <!-- Email client already setup -->
  1098. <Div id="idDivEmailConnected" name="idDivEmailConnected" class="MaxLayout height1 valignmiddle">
  1099. <Table cellpadding="6px" cellspacing="0" border="0" class="MaxLayout PositionR ZIndex1">
  1100. <TR>
  1101. <TD>
  1102. <table cellspacing="6px" cellpadding="0" border="0" class="MaxLayout">
  1103. <TR>
  1104. <TD id="idSpanTd" name="idSpanTd" colspan=3>
  1105. <Span id="idSpanTitle" name="idSpanTitle" class="sys-font-body sys-color-body">Type your assistant's first name:</Span>
  1106. </TD>
  1107. </TR>
  1108. <TR>
  1109. <TD id="idInputCell" name="idInputCell" class="Height2 width9">
  1110. <Input id="idEmailInput" name="idEmailInput" type="text" class="valignTop MaxWidth" onpaste="EnableEmailInvite();" onkeyup="EnableEmailInvite();" tabindex="2">
  1111. </TD>
  1112. </TR>
  1113. <TR>
  1114. <TD id="idTd10" name="idTd10" class="valigntop" nowrap colspan=3>
  1115. <Span id="idLink2Container" name="idLink2Container">
  1116. <img id="idimg4" name="idimg4" class="valignbottom borderNone" src="../common/dis_arrow.bmp"></img>
  1117. <Span id="idLink2" name="idLink2" class="sys-font-body" disabled>&nbsp;Continue</span>
  1118. </span>
  1119. </TD>
  1120. </TR>
  1121. </table>
  1122. </TD>
  1123. </TR>
  1124. </Table>
  1125. </Div>
  1126. </TD>
  1127. </TR>
  1128. </table>
  1129. </TD>
  1130. </TR>
  1131. <TR>
  1132. <TD class="Height10">
  1133. </TD>
  1134. </TR>
  1135. <TR>
  1136. <TD class="Height10">
  1137. </TD>
  1138. </TR>
  1139. <TR>
  1140. <TD id="idTd13" name="idTd13">
  1141. <Img id="idimg5"
  1142. name="idimg5"
  1143. onclick="parent.window.navigate('rcScreen8.htm');return false;"
  1144. class="valignbottom borderNone"
  1145. ondragstart="return false;"
  1146. src="../common/green_rest_16x.bmp"
  1147. onmouseover="this.style.cursor='hand';document.getElementById('idLinkMethod3').style.textDecorationUnderline=true"
  1148. onmouseout="document.getElementById('idLinkMethod3').style.textDecorationUnderline=false">
  1149. </Img>
  1150. &nbsp;
  1151. <A href="" id="idLinkMethod3"
  1152. name="idLinkMethod3"
  1153. ondragstart="return false;"
  1154. tabindex="5"
  1155. class="valignmiddle sys-font-body sys-link-normal"
  1156. onclick="parent.window.navigate('rcScreen8.htm');return false;">
  1157. Save invitation as a file (Advanced)
  1158. </A>
  1159. </TD>
  1160. </TR>
  1161. </Table>
  1162. </TD>
  1163. </TR>
  1164. </Table>
  1165. </Body>
  1166. </HTML>