var L_FullScreenWarn1_Text = "De huidige beveiligingsinstellingen staan niet toe dat u automatisch naar een volledig scherm kunt overschakelen.";
var L_FullScreenWarn2_Text = "U kunt de externe bureaubladsessie met behulp van CTRL+ALT+PAUSE op het volledige scherm weergeven.";
var L_FullScreenTitle_Text = "Webverbinding met extern bureaublad ";
var L_ErrMsg_Text = "Fout bij verbinding met externe computer: ";
var L_PlatformCheck_ErrorMessage = "Het ActiveX-besturingselement voor de bureaubladverbinding kan alleen in de 32-bits versie van Internet Explorer worden uitgevoerd.";

// error messages
var L_DisconnectedCaption_ErrorMessage =  "Geen verbinding met extern bureaublad";
var L_ErrConnectCallFailed_ErrorMessage =  "Er heeft zich een fout voorgedaan bij een poging van de client om verbinding met de externe computer te maken. Controleer het geheugen van het systeem en probeer het vervolgens opnieuw.";
var L_DisconnectRemoteByServer_ErrorMessage = "De externe computer heeft de verbinding verbroken.";
var L_LowMemory_ErrorMessage = "Er is onvoldoende geheugen op de lokale computer. Sluit een aantal toepassingen af en probeer opnieuw verbinding met de externe computer te maken.";
var L_SecurityErr_ErrorMessage = "De client kan vanwege een beveiligingsfout geen verbinding met de externe computer maken. Controleer of u zich bij het netwerk hebt aangemeld en probeer opnieuw verbinding te maken.";
var L_BadServerName_ErrorMessage = "Kan de server niet vinden. Controleer of u de juiste servernaam of het juiste IP-adres hebt opgegeven en probeer opnieuw verbinding te maken.";
var L_ConnectFailedProtocol_ErrorMessage = "De client kan vanwege een protocolfout geen verbinding met de externe computer maken. Probeer opnieuw verbinding met de externe computer te maken. Neem contact op met de netwerkbeheerder als de client ook dan geen verbinding tot stand kan brengen. ";
var L_CannotLoopBackConnect_ErrorMessage = "De client heeft geen verbinding kunnen maken. Het is niet mogelijk vanuit een console verbinding te maken met een console op dezelfde computer.";
var L_NetworkErr_ErrorMessage = "De verbinding is vanwege een netwerkfout verbroken. Probeer opnieuw verbinding met de externe computer te maken.";
var L_InternalErr_ErrorMessage = "Er is een interne fout opgetreden.";
var L_NotResponding_ErrorMessage = "De client kan geen verbinding met de externe computer maken. Mogelijk is de computer niet op externe verbindingen voorbereid of is de computer te druk bezig om nieuwe verbindingen te accepteren. Er kan ook sprake zijn van een netwerkprobleem. Probeer later opnieuw verbinding te maken. Neem indien het probleem blijft bestaan contact met de systeembeheerder op.";
var L_VersionMismatch_ErrorMessage = "Client- en serverversie komen niet overeen. Voer een upgrade van de clientsoftware uit en probeer opnieuw verbinding te maken.";
var L_EncryptionError_ErrorMessage = "Het coderen van gegevens is mislukt. De sessie wordt beëindigd. Probeer opnieuw verbinding met de externe computer te maken.";
var L_ProtocolErr_ErrorMessage = "De sessie moet vanwege een protocolfout worden beëindigd. Probeer opnieuw verbinding met de externe computer te maken.";
var L_IllegalServerName_ErrorMessage = "U hebt een computernaam met ongeldige tekens ingevoerd. Controleer de naam en probeer het opnieuw.";
var L_ConnectionTimeout_ErrorMessage = "Time-out bij het maken van een verbinding. Probeer opnieuw verbinding met de externe computer te maken.";
var L_DisconnectIdleTimeout_ErrorMessage = "De externe sessie is beëindigd omdat de tijdslimiet voor inactiviteit werd bereikt. Deze limiet wordt bepaald door de beheerder van de server of door beleidsinstellingen voor het netwerk.";
var L_DisconnectLogonTimeout_ErrorMessage ="De externe sessie is beëindigd omdat de tijdslimiet voor de aanmeldingsduur werd bereikt. Deze limiet wordt bepaald door de beheerder van de server of door beleidsinstellingen voor het netwerk.";
var L_ProtocolErrWITHCODE_ErrorMessage  = "Clientverbinding verbroken vanwege interne protocolfout: ";
var L_LicensingTimeout_ErrorMessage = "Er is een licentiefout opgetreden bij een poging van de client om verbinding te maken (tijdslimiet voor licentie bereikt). Probeer opnieuw verbinding met de externe computer te maken.";
var L_LicensingNegotFailed_ErrorMessage = "De externe computer heeft de sessie beëindigd vanwege een fout in het licentieprotocol. Probeer of u opnieuw verbinding met de externe computer kunt maken of neem contact met de beheerder van de server op.";
var L_DisconnectRemoteByServerTool_ErrorMessage = "De sessie met de externe computer is met behulp van een beheerprogramma beëindigd. Mogelijk heeft de beheerder de verbinding afgebroken.";
var L_LogoffRemoteByServer_ErrorMessage = "De externe sessie is beëindigd omdat uw sessie op de externe computer werd afgemeld. Mogelijk heeft de beheerder of een andere gebruiker de verbinding afgebroken.";
var L_DisconnectByOtherConnection_ErrorMessage = "De externe sessie is beëindigd omdat een andere gebruiker verbinding met de sessie heeft gemaakt.";
var L_ConnectionBroken_ErrorMessage  = "De verbinding met de externe computer is verbroken. Mogelijk is dit het gevolg van een netwerkprobleem. Probeer of u opnieuw verbinding met de externe computer kunt maken.";
var L_ServerOutOfMemory_ErrorMessage = "De verbinding is verbroken omdat de externe computer te weinig geheugen beschikbaar heeft.";
var L_LicenseInternal_ErrorMessage = "De externe sessie is beëindigd omdat er een interne fout in het licentieprotocol van de externe computer is opgetreden.";
var L_NoLicenseServer_ErrorMessage = "De externe sessie is beëindigd omdat er geen Terminal Server-licentieservers beschikbaar zijn die een licentie kunnen verlenen. Neem contact met de beheerder van de server op.";
var L_NoLicense_ErrorMessage = "De externe sessie is beëindigd omdat er geen Terminal Server-licenties voor clienttoegang voor deze computer beschikbaar zijn. Neem contact op met de beheerder van de server.";
var L_LicenseBadClientMsg_ErrorMessage = "De externe sessie is beëindigd omdat de externe computer een ongeldig licentiebericht van deze computer heeft ontvangen.";
var L_LicenseHwidDoesntMatch_ErrorMessage = "De externe sessie is beëindigd omdat de Terminal Server-licentie voor clienttoegang die op deze computer is opgeslagen, is gewijzigd.";
var L_BadClientLicense_ErrorMessage = "De externe sessie is beëindigd omdat de Terminal Server-licentie voor clienttoegang die op deze computer is opgeslagen een ongeldige indeling heeft.";
var L_LicenseCantFinishProtocol_ErrorMessage = "De externe sessie is beëindigd omdat er netwerkproblemen zijn opgetreden die met het licentieprotocol te maken hebben. Probeer opnieuw verbinding met de externe computer te maken.";
var L_LicenseClientEndedProtocol_ErrorMessage = "De externe sessie is beëindigd omdat de client het licentieprotocol voortijdig heeft gestopt.";
var L_LicenseBadClientEncryption_ErrorMessage = "De externe sessie is beëindigd omdat een licentiebericht verkeerd is gecodeerd.";
var L_CantUpgradeLicense_ErrorMessage = "De externe sessie is beëindigd omdat de licentie voor clienttoegang van de lokale computer niet kan worden vernieuwd. Neem contact op met de beheerder van de server.";
var L_LicenseNoRemoteConnections_ErrorMessage = "De externe sessie is beëindigd omdat de externe computer geen licentie heeft om externe verbindingen te accepteren. Neem contact op met de beheerder van de server.";
var L_DecompressionFailed_ErrorMessage = "De externe sessie is beëindigd als gevolg van een decompressiefout op de client. Probeer opnieuw verbinding met de externe computer te maken.";
var L_ServerDeniedConnection_ErrorMessage ="De client kan geen verbinding met de externe computer tot stand brengen. De meest waarschijnlijke oorzaken van dit probleem zijn: 1) De externe computer is niet op externe verbindingen voorbereid. 2) Het maximale aantal verbindingen op de externe computer is overschreden. 3) Er was sprake van een netwerkfout toen u verbinding wilde maken.";


window.addEvent('domready',function() {
  if(!Browser.Engine.trident || !Browser.Platform.win) {
    alert(L_PlatformCheck_ErrorMessage);
  }
  if(!autoConnect()) {
    $('editServer').Focus;
  }

  $('Check1').addEvent('click', checkClick);
  $('connectbutton').addEvent('click', BtnConnect);
  $('MsRdpClient').addEvent('readystatechange', OnControlLoad);
});

// Connect to the server
function autoConnect() {
	var sServer;
	var iFS, iAutoConnect;

	sServer = getQS('Server');
	iAutoConnect = getQS('AutoConnect');
	iFS = getQS('FS');

	if(! $type(iFS) == 'number' ) {
		iFS = 0;
	} else {
		iFS = iFS.toInt();
	}

	if(iAutoConnect != 1) {
		autoConnect = false;
		return;
	} else {
		if(iFS < 0 || iFS >= $('comboResolution').options.length) {
			iFS = 0;
		}

		if(sServer == $empty || sServer == '') {
			sServer = location.hostname;
		}

		$('comboResolution').selectedIndex	= iFS;
		$('editServer').set('value',sServer);

		btnConnect();

		autoConnect = true;
	}

}

// Get a querystring value
function getQS(sKey) {
	var iKeyPos, iDelimPos, iEndPos;
	var sURL, sRetVal;
	iKeyPos = iDelimPos = iEndPos = 0;
	sURL = location.href;

	if(sKey == '' || sKey.length < 1) {
		getQS = '';
		return;
	}

	iKeyPos = sURL.indexOf(sKey,1);

	if(iKeyPos == 0) {
		sRetVal = '';
		return;
	}

	iDelimPos = sURL.indexOf('=', iKeyPos);
	iEndPos = sURL.indexOf('&', iDelimPos);

	if(iEndPos == -1) {
		sRetVal = sURL.substr(iDelimPos + 1)
	} else {
		sRetVal = sURL.substr(iDelimPos + 1, iEndPos - iDelimPos - 1);
	}

	return sRetVal;
}

// When the checkbox for rembering is clicked
function checkClick() {
  if($('Check1').getProperty('checked')) {
     $('tableLogonInfo').setStyle('display','');
     $('editUserName').setProperty('disabled',false);
     $('editDomain').setProperty('disabled',false);
  } else {
     $('tableLogonInfo').setStyle('display','none');
     $('editUserName').setProperty('disabled',true);
     $('editDomain').setProperty('disabled',true);
  }
}

// When the ready state of the MsRdpClient changes
function OnControlLoad() {
  var Control = $('MsRdpClient');
  if(Control) {
    if(Control.readyState == 4) {
      $('connectbutton').setProperty('disabled',false);
    }
  }
}

// When the user clicks on the connect button
function BtnConnect(event) {
  event.stop();
  
  var MsRdpClient = $('MsRdpClient');
  
  var serverName;
   //server
   if(!$('editServer').get('value') == '') {
    serverName = $('editServer').get('value');
   } else {
    serverName = location.hostname;
   }

   serverName = serverName.trim();

   MsRdpClient.server = serverName;
   
   //serverName name text
   $('srvNameField').set('html',serverName);

   prtNr = $('editPort').get('value');
   
   //Username/Domain
   if($('Check1').getProperty('checked')) {
     MsRdpClient.UserName = $('editUserName').get('value');
     MsRdpClient.Domain = $('editDomain').get('value');
   }
   
   //Resolution
   MsRdpClient.FullScreen = false;
   switch($('comboRes').get('value')) {
     case '1':
       MsRdpClient.FullScreen = true;
       resWidth = screen.width;
       resHeight = screen.height;
       break;
     case '2':
       resWidth = '640';
       resHeight = '480';
       break;
     case '3':
       resWidth = '800';
       resHeight = '600';
       break;
     case "4":
       resWidth = '1024';
       resHeight = '768';
       break;
     case '5':
       resWidth = '1280';
       resHeight = '1024';
       break;
     case '6':
       resWidth = '1600';
       resHeight = '1200';
       break;
   }
   MsRdpClient.DesktopWidth = resWidth;
   MsRdpClient.DesktopHeight = resHeight;


   MsRdpClient.Width = resWidth;
   MsRdpClient.Height = resHeight;
   
   //Device redirection options
   MsRdpClient.AdvancedSettings2.RedirectDrives = false;
   MsRdpClient.AdvancedSettings2.RedirectPrinters = true;
   MsRdpClient.AdvancedSettings2.RedirectPorts = false;
   MsRdpClient.AdvancedSettings2.RedirectSmartCards = false;
   MsRdpClient.AdvancedSettings2.RdpPort = prtNr;
   
   //FullScreen title
   MsRdpClient.FullScreenTitle = L_FullScreenTitle_Text & "(" & serverName & ")";
   
   //Display connect region
   $('loginArea').setStyle('display','none');
   $('connectArea').setStyle('display','block');
   
   //Connect
   MsRdpClient.Connect();
}
