763 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			763 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <HTML>
 | |
| <!--
 | |
| Copyright (c) 2000 Microsoft Corporation
 | |
| -->
 | |
| <HEAD>
 | |
| <TITLE>Remote Assistance</TITLE>
 | |
| <meta http-equiv="MSThemeCompatible" content="Yes">
 | |
| <LINK id="UI_StyleSheet" REL="stylesheet" TYPE="text/css" HREF="../../Css/rc.css">
 | |
| <script LANGUAGE="Javascript" >
 | |
| 
 | |
| var g_oSAFRemoteAssistanceHelper	= null;
 | |
| var oSAFClassFactory                = parent.oSAFClassFactory;
 | |
| 	
 | |
| 
 | |
| /*++
 | |
| 	Control handling routines
 | |
| --*/
 | |
| //
 | |
| // Security Check
 | |
| //
 | |
| function DoLoad()
 | |
| {
 | |
| 	var L_ERRACCESSDENIED_MSG	= "Directly launching this page is not allowed. ";
 | |
| 
 | |
| 	if( null == parent.TraceFunctEnter )
 | |
| 	{
 | |
| 		idBody.style.visibility = "hidden";
 | |
| 		alert( L_ERRACCESSDENIED_MSG );
 | |
| 		return;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| //
 | |
| // Helper_InitializeTools: Stuff done when the RCControl page is loaded  
 | |
| //
 | |
| function Helper_InitializeTools()
 | |
| {	
 | |
| 	parent.TraceFunctEnter("Helper_InitializeTools");
 | |
| 	
 | |
| 	try
 | |
| 	{
 | |
| 		// Gray out the voice button
 | |
| 		btnVoice.disabled = true;
 | |
| 		
 | |
| 		//
 | |
| 		// Point to the parent Helper object
 | |
| 		// 
 | |
| 		if (parent.g_oSAFRemoteAssistanceHelper != null)
 | |
| 		{
 | |
| 			g_oSAFRemoteAssistanceHelper = parent.g_oSAFRemoteAssistanceHelper;
 | |
| 		}
 | |
| 
 | |
| 		//
 | |
| 		// Setup the control
 | |
| 		//
 | |
| 		parent.Helper_SetupControlChannel();
 | |
| 
 | |
| 		 
 | |
| 		btnTakeControl_1.innerHTML = 'Take <u>C</u>ontrol'; 
 | |
|  
 | |
| 		//
 | |
| 		// Initialization
 | |
| 		//
 | |
| 		g_oSAFRemoteAssistanceHelper.m_bConnected = true;
 | |
| 		
 | |
| 		//
 | |
| 		// See the remote screen
 | |
| 		//
 | |
| 		g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient.ConnectRemoteDesktop();
 | |
| 
 | |
| 		// ToDo: Change this like the helpee side
 | |
| 
 | |
| 		//
 | |
| 		// If VoIP is enabled
 | |
| 		//
 | |
| 		if(true == parent.g_bVoIPEnabled )
 | |
| 		{
 | |
| 			//
 | |
| 			// Create the m_oSAFIntercomClient 
 | |
| 			// NOTE: call connect in ListenSuccess Message
 | |
| 			// alert("Creating m_oSAFIntercomClient...");
 | |
| 			if(null == oSAFClassFactory)
 | |
| 			{
 | |
| 				parent.FatalError("oSAFClassFactory is null");
 | |
| 			}
 | |
| 			
 | |
| 			g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient = oSAFClassFactory.CreateObject_IntercomClient();
 | |
| 
 | |
| 			if( null == g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient )
 | |
| 			{
 | |
| 				parent.FatalError("g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient is null");
 | |
| 			}
 | |
| 			
 | |
| 			// Catch the onConnectionComplete on the helper/client
 | |
| 			// alert("onConnectionComplete");
 | |
| 			g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient.onConnectionComplete = Helper_onVoiceConnectionComplete;
 | |
| 
 | |
| 			g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient.onVoiceDisconnected = Helper_onVoiceDisconnected;
 | |
| 
 | |
| 			g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient.onVoiceConnected = Helper_onVoiceConnected;
 | |
| 
 | |
| 			g_oSAFRemoteAssistanceHelper.m_oSAFIntercomClient.onVoiceDisabled = Helper_onVoiceDisabled;
 | |
| 			// alert("Success");
 | |
| 		}
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError(error.description);
 | |
| 	}
 | |
| 	 
 | |
|  
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| 
 | |
| //
 | |
| // Helper_ResizeControl: Resize the task bar
 | |
| //
 | |
| function Helper_ResizeControl()
 | |
| {
 | |
| 	//
 | |
| 	// Resize the dialog window
 | |
| 	//
 | |
| 	window.dialogHeight = c_RCControlHeight;
 | |
| 	window.dialogWidth = c_RCControlWidth;		
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| //
 | |
| // Routine to enable Remote Control
 | |
| //
 | |
| function Helper_TakeControl()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_TakeControl");
 | |
| 	 
 | |
| 	try
 | |
| 	{	
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		if((null != g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient) && (false == btnTakeControl_1.disabled))
 | |
| 		{
 | |
| 			//parent.DebugTrace("null != g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient");
 | |
| 			
 | |
| 			//
 | |
| 			// If RemoteControl is not ON already, Enable it
 | |
| 			//
 | |
| 			if( false == g_oSAFRemoteAssistanceHelper.m_bRCEnabled )
 | |
| 			{	
 | |
| 				parent.Helper_SendControlCommand( parent.c_szRemoteCtrlStart );
 | |
| 					
 | |
| 				//
 | |
| 				// Disable Take Control button
 | |
| 				//
 | |
| 				 
 | |
| 				btnTakeControl_1.disabled = true;
 | |
| 				parent.frames.idFrameStatus.Helper_UpdateStatus( "Waiting for " + g_oSAFRemoteAssistanceHelper.m_szUserName + " to respond" );
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 
 | |
| 				btnTakeControl_1.innerHTML = 'Take <u>C</u>ontrol';
 | |
| 				g_oSAFRemoteAssistanceHelper.m_bRCEnabled = false;
 | |
| 				
 | |
| 				setTimeout("parent.Helper_ResetHelpee()", 1000);	// BUGBUG: Another gross timing issue
 | |
| 					
 | |
| 				//
 | |
| 				// Change Mode
 | |
| 				//
 | |
| 				parent.frames.idFrameStatus.Helper_UpdateStatus( "View Only" );
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( parent.L_ERRRCTOGGLEFAILED_MSG, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| //
 | |
| // Helper_LaunchFileXfer: Launches the File Xfer UI
 | |
| //
 | |
| function Helper_LaunchFileXfer( mode )
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_LaunchFileXfer");
 | |
| 	var vArgs			= new Array(8);
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		vArgs[0] = mode;	// Source Mode
 | |
| 		vArgs[1] = g_oSAFRemoteAssistanceHelper.m_oControlChannel;				// Control Channel
 | |
| 		vArgs[2] = g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopChannelMgr;	// Channel Manager
 | |
| 		vArgs[3] = g_oSAFRemoteAssistanceHelper.m_iChannelId;
 | |
| 		vArgs[4] = g_oSAFRemoteAssistanceHelper.m_oFso;			// File system object
 | |
| 		vArgs[5] = g_oSAFRemoteAssistanceHelper.m_oSAFClassFactory;	// File SaveAs dialog object
 | |
| 		vArgs[6] = g_oSAFRemoteAssistanceHelper.m_szUserName;		// Receiver
 | |
| 		try {
 | |
| 			vArgs[7] = new ActiveXObject("SAFRCFileDlg.FileOpen");
 | |
| 		}
 | |
| 		catch (error)
 | |
| 		{
 | |
| 			FatalError( error.description, error ); 
 | |
| 		}
 | |
| 
 | |
| 		var subWin = window.showModelessDialog( parent.c_szFileXferURL, vArgs, "dialogwidth:" + parent.c_FileXferWidth + "px;dialogHeight:" + parent.c_FileXferHeight + "px;status:no;resizable:no"); 
 | |
| 		parent.AddOpenSubWin( subWin );
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| //
 | |
| // Helper_QuitMethod: Quit the UI
 | |
| //
 | |
| function Helper_QuitMethod()
 | |
| {
 | |
| 	if( null == parent.TraceFunctEnter )
 | |
| 	{
 | |
| 		return;
 | |
| 	}
 | |
| 	parent.TraceFunctEnter("Helper_QuitMethod");
 | |
| 	
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		//
 | |
| 		// Disconnect RC
 | |
| 		//
 | |
| 		idBody.disabled = true;
 | |
| 		parent.frames.idFrameStatus.btnActual.disabled=true;
 | |
| 		parent.frames.idFrameStatus.btnScale.disabled=true;
 | |
| 		parent.frames.idFrameStatus.Helper_UpdateStatus( "Disconnecting..."  );
 | |
| 		parent.RCDisconnect();
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
|  
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| //
 | |
| // Helper_SendVoice: Send voice across
 | |
| //
 | |
| function Helper_SendVoice()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_SendVoice");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 		//
 | |
| 		// Check if VoIP is enabled
 | |
| 		//
 | |
| 		if(false == parent.g_bVoIPEnabled )
 | |
| 		{	
 | |
| 			//
 | |
| 			// VoIP is disabled
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		// Gray button
 | |
| 		btnVoice.disabled = true;
 | |
| 
 | |
| 		// Disable incoming 'PreStart' requests
 | |
| 		parent.g_bStartEnabled = false;
 | |
| 
 | |
| 		// Send the Helpee/Client a PreStart message
 | |
| 		parent.Helper_SendControlCommand( parent.c_szVoipPreStart );
 | |
| 		
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| 
 | |
| //
 | |
| // Helper_HandleOptions: Set Options
 | |
| //
 | |
| function Helper_HandleOptions()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_HandleOptions");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			parent.TraceFunctLeave();
 | |
| 			return;
 | |
| 		}
 | |
| 		
 | |
| 		//
 | |
| 		// TODO: Add code here
 | |
| 		var obj=new ActiveXObject("Rcbdyctl.Setting");
 | |
| 		var vArgs=new Array(3);
 | |
| 		vArgs[0]=parent;
 | |
| 		vArgs[1]=obj;
 | |
| 		vArgs[2]="";
 | |
| 				
 | |
| 		var ret=window.showModalDialog("Setting.htm",vArgs,"dialogWidth:375px;dialogHeight:340px;dialogTop:200px;dialogLeft:400px;edge:raised;scroll:no;status:no;");
 | |
| 		
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| } 
 | |
| 
 | |
| // 	Helper_SendChatData sends chat data to remote machine
 | |
| //
 | |
| function Helper_SendChatData() 
 | |
| {	
 | |
| 	parent.TraceFunctEnter("Helper_SendChatData");
 | |
| 	
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			return;
 | |
| 		}
 | |
|          
 | |
| 		if ((g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient != null) && ( parent.frames.idFrameChat.idchatText.value.length > 0 ))
 | |
| 		{
 | |
| 			if (false == g_oSAFRemoteAssistanceHelper.m_bNewBinaries)
 | |
| 			{
 | |
| 				//
 | |
| 				// Send chat data to user (using Old interfaces)
 | |
| 				//
 | |
| 				g_oSAFRemoteAssistanceHelper.m_oSAFRemoteDesktopClient.SendChannelData(parent.c_szChatChannelID, parent.frames.idFrameChat.idchatText.value);
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				//
 | |
| 				// Send chat data to user (using New interfaces)
 | |
| 				//
 | |
| 				g_oSAFRemoteAssistanceHelper.m_oChatChannel.SendChannelData( parent.frames.idFrameChat.idchatText.value );
 | |
| 			}
 | |
| 			
 | |
| 			//
 | |
| 			// Update chat history window
 | |
| 			//
 | |
| 			if(null != g_oSAFRemoteAssistanceHelper.m_szLocalUser)
 | |
| 			{
 | |
| 				parent.frames.idFrameChat.idIncomingChatText.value = parent.frames.idFrameChat.idIncomingChatText.value + "\n " + g_oSAFRemoteAssistanceHelper.m_szLocalUser + ":\n   ";
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				parent.frames.idFrameChat.idIncomingChatText.value = parent.frames.idFrameChat.idIncomingChatText.value + L_cszExpertID;
 | |
| 			}
 | |
| 			
 | |
| 			parent.frames.idFrameChat.idIncomingChatText.value = parent.frames.idFrameChat.idIncomingChatText.value + parent.frames.idFrameChat.idchatText.value;
 | |
| 
 | |
| 			//
 | |
| 			// Clear chat msg window
 | |
| 			//
 | |
| 			parent.frames.idFrameChat.idchatText.value="";
 | |
| 			
 | |
| 			//
 | |
| 			// Reset the focus
 | |
| 			//
 | |
| 			parent.frames.idFrameChat.idchatText.focus();
 | |
| 			
 | |
| 			//
 | |
| 			// Scroll down
 | |
| 			//
 | |
| 			parent.frames.idFrameChat.idIncomingChatText.doScroll("scrollbarPageDown");
 | |
| 		}
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalTrace( error.description );	 
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| //
 | |
| // OnMouseover: Handles onmouseover event
 | |
| //
 | |
| function OnMouseover(obj)
 | |
| {
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		/*if( (window.event.srcElement.id == "imgTakeControl_1")||( window.event.srcElement.id == "btnTakeControl_1"))
 | |
| 		{
 | |
| 			btnTakeCtrl.className = "styControlButton_selected_B2";
 | |
| 		}
 | |
| 		else if( (window.event.srcElement.id == "imgSendFile")||( window.event.srcElement.id == "txtSendFile"))
 | |
| 		{
 | |
| 			btnSendFile_1.className = "styControlButton_selected_B2";
 | |
| 		}
 | |
| 		else if( (window.event.srcElement.id == "imgVoice")||( window.event.srcElement.id == "txtVoice"))
 | |
| 		{
 | |
| 			btnVoice.className = "styControlButton_selected_B2";
 | |
| 		}
 | |
| 		else if( (window.event.srcElement.id == "imgSettings")||( window.event.srcElement.id == "txtSettings"))
 | |
| 		{
 | |
| 			btnOptions.className = "styControlButton_selected_B2";
 | |
| 		}
 | |
| 		else if( (window.event.srcElement.id == "imgQuit")||( window.event.srcElement.id == "txtQuit"))
 | |
| 		{
 | |
| 			btnQuit_1.className = "styControlButton_selected_B2";
 | |
| 		}
 | |
| 		else if( window.event.srcElement.className == "styControlButton_B2" )
 | |
| 		{
 | |
| 			window.event.srcElement.className = "styControlButton_selected_B2";
 | |
| 		}*/
 | |
| 		
 | |
| 		var evalstr=eval(obj.id);
 | |
| 		evalstr.className="styControlButton_selected_B2";
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		// ignore
 | |
| 	}
 | |
| }
 | |
| 
 | |
| //
 | |
| // OnMouseout: Handles onmouseout event
 | |
| //
 | |
| function OnMouseout(obj)
 | |
| {
 | |
| 	try
 | |
| 	{
 | |
| 		if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 		{
 | |
| 			//
 | |
| 			// Disconnected
 | |
| 			//
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		/*if( window.event.srcElement.className == "styControlButton_selected_B2" )
 | |
| 		{
 | |
| 			window.event.srcElement.className = "styControlButton_B2";
 | |
| 		}*/
 | |
| 		
 | |
| 		var evalstr=eval(obj.id);
 | |
| 		evalstr.className="styControlButton_B2";
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		// ignore
 | |
| 	}
 | |
| }
 | |
| 
 | |
| //
 | |
| //	Helper_onVoiceConnectionComplete : This event is fired if the the VoIP connection
 | |
| //  is established.
 | |
| //
 | |
| function Helper_onVoiceConnectionComplete()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_onVoiceConnectionComplete");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 
 | |
| 		// alert("Got onConnectionComplete on Helper/Client!");
 | |
| 
 | |
| 		// Persist state for VoIP connection
 | |
| 		parent.g_bVoipOn = true;
 | |
| 
 | |
| 		btnVoice.disabled = false;
 | |
| 
 | |
| 	}
 | |
| 	catch (error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 
 | |
| }
 | |
| 
 | |
| //
 | |
| //	Helper_onVoiceDisconnected : This callback is called when the onVoiceDisconnected event is fired (on the helper/client)
 | |
| //
 | |
| function Helper_onVoiceDisconnected()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_onVoiceDisconnected");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 
 | |
| 		// alert("in onVoiceDisconnected!");
 | |
| 
 | |
| 		// Persist state for VoIP connection
 | |
| 		parent.g_bVoipConnected = false;
 | |
| 
 | |
| 		// Ungray the Voice Button
 | |
| 		btnVoice.disabled = false;
 | |
| 
 | |
| 		// Set the not connected image
 | |
| 		imgVoicePic.src = "../Common/SendVoice.gif";
 | |
| 
 | |
| 	}
 | |
| 	catch (error)
 | |
| 	{		
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| 
 | |
| }
 | |
| 
 | |
| //
 | |
| //	Helper_onVoiceConnected() : This callback is called when the onVoiceConnected event is fired on the helper/client
 | |
| //
 | |
| function Helper_onVoiceConnected()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_onVoiceConnected");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 
 | |
| 		// alert("in onVoiceConnected!");
 | |
| 
 | |
| 		// Persist state for VoIP connection
 | |
| 		parent.g_bVoipConnected = true;
 | |
| 
 | |
| 		imgVoicePic.src = "../Common/SendVoiceOn.gif";
 | |
| 
 | |
| 		
 | |
| 	}
 | |
| 	catch (error)
 | |
| 	{		
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 
 | |
| 	parent.TraceFunctLeave();
 | |
| }
 | |
| 
 | |
| //
 | |
| // Helper_onVoiceDisabled() : This callback is called when the onVoiceDisabled event is fired on the helper/client
 | |
| //
 | |
| function Helper_onVoiceDisabled()
 | |
| {
 | |
| 	parent.TraceFunctEnter("Helper_onVoiceDisabled");
 | |
| 
 | |
| 	try
 | |
| 	{
 | |
| 
 | |
| 		if (parent.g_bVoIPEnabled == true)
 | |
| 		{
 | |
| 		
 | |
| 			alert("Voice has been disabled for this Remote Assistance session.");
 | |
| 
 | |
| 			// Disable the voice on this machine
 | |
| 			parent.g_bVoIPEnabled = false;
 | |
| 			
 | |
| 			// Gray out the voice button
 | |
| 			btnVoice.disabled = true;
 | |
| 
 | |
| 			// set me to bad
 | |
| 			parent.g_stateVoipMe = 2;
 | |
| 
 | |
| 			// Send a message to the Helper to disable it's voice also
 | |
| 			parent.Helper_SendControlCommand( parent.c_szVoipDisable );
 | |
| 
 | |
| 		}
 | |
| 	}
 | |
| 	catch(error)
 | |
| 	{
 | |
| 		parent.FatalError( error.description, error );
 | |
| 	}
 | |
| 	
 | |
| 	parent.TraceFunctLeave();
 | |
| }
 | |
| 
 | |
| function setfocus()
 | |
| {
 | |
| 	if( parent.frames.idFrameScreen.g_oSAFRemoteAssistanceHelper.m_bConnected == false )
 | |
| 	{
 | |
| 		//
 | |
| 		// Disconnected
 | |
| 		//
 | |
| 		parent.TraceFunctLeave();
 | |
| 		return;
 | |
| 	}
 | |
| 		
 | |
| 	var butname=document.activeElement.id;
 | |
| 	if (butname=="btnOptions")
 | |
| 	{
 | |
| 		parent.frames("idFrameTools").document.all("btnSendFile_1").focus();
 | |
| 		parent.frames("idFrameTools").document.all("btnOptions").focus();
 | |
| 	}
 | |
| 	else
 | |
| 	{
 | |
| 		parent.frames("idFrameTools").document.all("btnOptions").focus();
 | |
| 		parent.frames("idFrameTools").document.all(butname).focus();
 | |
| 	}
 | |
| 
 | |
| }
 | |
| function document.onkeydown()
 | |
| {
 | |
| 	if (window.event.keyCode==8)
 | |
| 	{
 | |
| 		window.event.returnValue=false;
 | |
| 	}
 | |
| 	if ((window.event.shiftKey==true)&&(window.event.keyCode==9)&&(window.event.srcElement.id=="btnSendChat"))
 | |
| 	{
 | |
| 		parent.frames("idFrameChat").document.all("idchatText").focus();	
 | |
| 		window.event.returnValue=false;
 | |
| 	}
 | |
| }
 | |
| </script>
 | |
| </head>
 | |
| <body id="idBody" onLoad='DoLoad()' tabindex=-1 onunload="Helper_QuitMethod()" class="Overflow">
 | |
| 	<Table id="idControlPanel" name="idControlPanel" border=0 class="styRAToolBarTable" cellpadding=0 cellspacing=0 >  
 | |
| 		<tr> 
 | |
| 			<TD>
 | |
| 				<BUTTON title="send chat message" class="stySubmitButton DisplayNone MaxHeight" style="width:193px;" id=btnSendChat name=btnSendChat onclick=Helper_SendChatData() tabindex=1 accesskey="S"> 
 | |
| 					<Center>
 | |
| 						<img src="../Common/SendChat.gif"><BR>
 | |
| 						<Span class="styText">
 | |
| 							<u>S</u>end
 | |
| 						</Span>	
 | |
| 					</Center>
 | |
| 				</BUTTON>	
 | |
| 			</TD>	
 | |
| 			<td>
 | |
| 				  <img src="combobox_line.gif">
 | |
| 			</td>
 | |
| 				
 | |
| 			<td class="valign" align="left">  
 | |
| 				   <BUTTON id="btnTakeCtrl" CLASS="styControlButton_B2" onclick="setfocus();Helper_TakeControl();" tabindex=2 accesskey="C"> 
 | |
| 								<Center>
 | |
| 									<img src="TakeControl.gif" id="imgTakeControl_1"><BR>
 | |
| 									<Span class="styText" id="btnTakeControl_1">
 | |
| 										Take <U>C</U>ontrol
 | |
| 									</Span>									
 | |
| 								</Center>
 | |
| 							</BUTTON>  
 | |
| 			</td>
 | |
| 
 | |
| 			<td class="valign" align="left">  
 | |
| 				   <BUTTON CLASS="styControlButton_B2" id="btnSendFile_1"  onclick="setfocus();Helper_LaunchFileXfer(0);" tabindex=3 accesskey="F">
 | |
| 								<Center>
 | |
| 									<img src="../Common/SendFile.gif" id="imgSendFile"><BR>
 | |
| 									<Span class="styText" id="txtSendFile">
 | |
| 										Send a <u>F</u>ile
 | |
| 									</Span>
 | |
| 								</Center>	
 | |
| 							 </BUTTON>  
 | |
| 			</td>
 | |
| 
 | |
| 			<td class="valign" align="left">  
 | |
| 				   <BUTTON CLASS="styControlButton_B2" id="btnVoice" onclick="setfocus();Helper_SendVoice();" tabindex=4 accesskey="V"> 
 | |
| 								<Center>
 | |
| 									<img id="imgVoicePic" src="../Common/SendVoice.gif" ><BR>
 | |
| 								    <Span class="styText" id="txtVoice">
 | |
| 										<u>V</u>oice
 | |
| 									</Span>
 | |
| 								</Center>
 | |
| 							</BUTTON>  
 | |
| 			</td>
 | |
| 
 | |
| 			<td class="valign" align="left">  
 | |
| 				   <BUTTON CLASS="styControlButton_B2" id="btnOptions" onclick="setfocus();Helper_HandleOptions();" tabindex=5 accesskey="e">
 | |
| 								 <Center>
 | |
| 									<img src="../Common/Options.gif" id="imgSettings"><BR>
 | |
| 									<Span class="styText" id="txtSettings">
 | |
| 										S<u>e</u>ttings
 | |
| 									</Span>										
 | |
| 								</Center>
 | |
| 							</BUTTON>  
 | |
| 			</td>
 | |
| 
 | |
| 			<td class="valign" align="left">   
 | |
| 				   <BUTTON CLASS="styControlButton_B2" id="btnQuit_1"  onclick="setfocus();Helper_QuitMethod();" tabindex=6 accesskey="D"> 
 | |
| 								<Center>
 | |
| 									<img src="../Common/Quit.gif" id="imgQuit"><BR>
 | |
| 									<Span class="styText" id="txtDisconnect">
 | |
| 										<u>D</u>isconnect
 | |
| 									</Span>	
 | |
| 								</Center>
 | |
| 							</BUTTON>  
 | |
| 			</td>
 | |
| 			 	 
 | |
| 		</tr>
 | |
| 	</table>
 | |
| </body>
 | |
| </html>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |