2025-04-27 07:49:33 -04:00

392 lines
7.0 KiB
JavaScript

/*++
Copyright (c) 1999-2000 Microsoft Corporation
Module Name:
RAClient.js
Abstract:
Contains Javascript code common to both client and server side UI
Author:
Rajesh Soy 10/00
Revision History:
Rajesh Soy - created 10/25/2000
--*/
//
// Configuration stuff
//
var g_bVoIPEnabled = true;
//
// Globals
//
var g_szLocalUser = null;
//
// GetLocalUser: Obtains the domain\username of local user
//
function GetLocalUser()
{
TraceFunctEnter("GetPlatform");
try
{
var oShell = new ActiveXObject("WScript.Shell");
var oEnv = oShell.Environment("process");
g_szLocalUser = oEnv("USERNAME");
}
catch(error)
{
FatalError( error.description );
}
TraceFunctLeave();
return g_szLocalUser;
}
//
// GetPlatform: Obtains the platform architecture on which this script runs
//
function GetPlatform()
{
TraceFunctEnter("GetPlatform");
try
{
var oShell = new ActiveXObject("WScript.Shell");
var oEnv = oShell.Environment("process");
g_oSAFRemoteAssistanceHelper.m_szPlatform = oEnv("PROCESSOR_ARCHITECTURE");
}
catch(error)
{
FatalError( error.description );
}
TraceFunctLeave();
return g_oSAFRemoteAssistanceHelper.m_szPlatform;
}
var L_RCCTL_MSG = "Failed on getting RcBdyCtl: ";
var L_NOIP_MSG = "There is no connection to the Internet.\nCannot proceed further without an internet connection enabled.";
//
// GetLocalIPAddr: Fetch the IP address of the local machine
//
function GetLocalIPAddr()
{
var oSetting = null;
var ip = null;
try
{
oSetting = new ActiveXObject("RcBdyCtl.Setting");
ip = oSetting.GetIPAddress;
if (ip.length == 0) {
alert(L_NOIP_MSG);
return ip;
}
oSetting = null;
}
catch(e)
{
alert(L_RCCTL_MSG + e.description);
return ip;
}
return ip;
}
//
// ChangeHCToKioskMode: Changes from full HC view to kiosk mode view
//
function ChangeHCToKioskMode(left, top, width, height)
{
TraceFunctEnter("ChangeHCToKioskMode");
try
{
DebugTrace("Changing to kioskmode");
//
// In order to use this, include the following in your HTM file:
// <HTML XMLNS:helpcenter>
// <style>
// helpcenter\:context
// {
// behavior : url(#default#pch_context);
// }
// </style>
//
// <helpcenter:context id=idCtx />
//
idCtx.ChangeContext( "kioskmode", "");
idCtx.setWindowDimensions( left, top, width, height);
}
catch(error)
{
FatalError( error.description );
}
TraceFunctLeave();
}
//
// GetWinDir: Returns path to SystemRoot
//
function GetWinDir()
{
TraceFunctEnter("GetWinDir");
var szWinDir = null;
try
{
var oShell = new ActiveXObject("WScript.Shell");
var oEnv = oShell.Environment("process");
szWinDir = oEnv("SystemRoot");
}
catch(error)
{
FatalError(error.description, error);
}
TraceFunctLeave();
return szWinDir;
}
//
// LaunchHelp: Launches Help topic in kioskmode Helpctr
//
function LaunchHelp( nTopicId )
{
TraceFunctEnter("LaunchHelp");
try
{
var szURL = 'hcp://CN=Microsoft%20Corporation,L=Redmond,S=Washington,C=US/Remote%20Assistance/Common/RAHelp.htm?' + nTopicId;
var szWinDir = GetWinDir();
window.showModelessDialog( szURL, szWinDir, "dialogHeight:400px;dialogWidth:550px;status:no;resizable:yes" );
}
catch(error)
{
FatalError(error.description, error);
}
TraceFunctLeave();
return;
}
//
// Error Handling & Tracing
//
var g_bDebug = false;
var g_szFuncName = null;
var TraceFso = null;
var TraceFileHandle = null;
var TraceFile = null;
var TracetFileName = null;
function InitTrace()
{
if ( true == g_bDebug )
{
try{
TraceFso = new ActiveXObject("Scripting.FileSystemObject");
var tFolder = TraceFso.GetSpecialFolder(2); // Get Path to temp directory
TracetFileName = tFolder + "\\" + "RC.log";
TraceFileHandle = TraceFso.OpenTextFile( TracetFileName, 8, -2 );
DebugTrace( "Start of new helpsession:::" );
}
catch(x)
{
//
// Cant do much. Ignore this error
//
g_bDebug = false;
}
}
return;
}
function EndTrace()
{
if ( true == g_bDebug )
{
DebugTrace( "End of new helpsession:::" );
try
{
TraceFileHandle.Close();
}
catch(e)
{
// ignore this
}
}
}
function DebugTrace( szMsg )
{
if ( true == g_bDebug )
{
if( null == TraceFileHandle )
{
InitTrace();
}
var d = new Date();
try
{
TraceFileHandle.WriteLine( d.toLocaleString() + "::" + szMsg );
}
catch(e)
{
// Dont do any thing.
}
}
}
function TraceFunctEnter( szFuncName )
{
g_szFuncName = szFuncName;
DebugTrace("Entering " + g_szFuncName);
}
function TraceFunctLeave()
{
DebugTrace("Leaving " + g_szFuncName);
}
function FatalError( szMessage, error, bClose)
{
try
{
var szMsg = null;
if ( true == g_bDebug )
{
if(null != error)
{
DebugTrace( "Function: " + g_szFuncName + "\nError Message: " + szMessage + "\nError Description: " + error.description + "\nError Number: " + error.number);
alert( "Function: " + g_szFuncName + "\nError Message: " + szMessage + "\nError Description: " + error.description + "\nError Number: " + error.number);
}
else
{
DebugTrace("Function: " + g_szFuncName + "\nError Message: " + szMessage );
alert( "Function: " + g_szFuncName + "\nError Message: " + szMessage );
}
}
else
{
if((null != szMessage )&&( szMessage.length > 0)&&( null == error ))
{
szMsg = szMessage + ".\n" + L_ERRFATAL_MSG;
if(null != oSAFClassFactory)
{
szMsg = szMsg + L_ERRFATAL1_MSG;
}
alert( szMsg );
}
else if((null != szMessage )&&( szMessage.length > 0)&&( null != error ))
{
szMsg = szMessage + "\nReason: " + error.description + ".\n" + L_ERRFATAL_MSG;
if(null != oSAFClassFactory)
{
szMsg = szMsg + L_ERRFATAL1_MSG;
}
alert( szMsg );
}
else if(((null != szMessage )||( szMessage.length > 0))&&( null != error ))
{
szMsg = "\nError: " + error.description + ".\n" + L_ERRFATAL_MSG;
if(null != oSAFClassFactory)
{
szMsg = szMsg + L_ERRFATAL1_MSG;
}
alert( szMsg );
}
}
//
// Close Down Help Center
//
if ((null == bClose) || (true == bClose))
{
//
// End Tracing
//
EndTrace();
if(null != oSAFClassFactory)
{
oSAFClassFactory.Close();
}
}
}
catch(x)
{
// ...
}
}
//
// Collection of open sub-windows
//
var openWins = new Array(10); // Hope not to open more than 10 sub-windows at any given time
var openWinCnt = 0; // Count of open windows
function AddOpenSubWin( win )
{
try
{
openWins[openWinCnt%10] = win;
openWinCnt++;
}
catch(error)
{
// Ignore
}
}
function CloseOpenSubWin()
{
var i = 0;
for ( i=0; i< 10; i++)
{
if(null != openWins[i])
{
try
{
if(openWins[i].closed == false)
{
openWins[i].close();
}
}
catch(error)
{
// Ignore
}
}
}
}