diff --git a/web/root/ftelnet/ClientFuncs.js b/web/root/ftelnet/ClientFuncs.js
index d78197370b3d7a6317cda3920479f99f61c5e61f..9d04b6c07b522f6f0f9dc4f818bab6c15b3f9533 100644
--- a/web/root/ftelnet/ClientFuncs.js
+++ b/web/root/ftelnet/ClientFuncs.js
@@ -1,5 +1,14 @@
+function ClientClrScr() {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
+  	Crt.ClrScr();
+  } else {
+    var FO = GetfTelnetObject();
+    if (FO) { FO.ClrScr(); }
+  }
+}
+
 function ClientConnect(AHost, APort) {
-  if (HtmlTerm.Loaded) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
     HtmlTerm.Connect(AHost, APort);
   } else {
     var FO = GetfTelnetObject();
@@ -8,7 +17,7 @@ function ClientConnect(AHost, APort) {
 }
 
 function ClientConnected() {
-  if (HtmlTerm.Loaded) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
     return HtmlTerm.Connected();
   } else {
     var FO = GetfTelnetObject();
@@ -19,7 +28,7 @@ function ClientConnected() {
 }
 
 function ClientDisconnect() {
-  if (HtmlTerm.Loaded) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
     HtmlTerm.Disconnect();
   } else {
     var FO = GetfTelnetObject();
@@ -27,24 +36,12 @@ function ClientDisconnect() {
   }
 }
 
-function ClientSetBorderStyle(AStyle) {
-  ClientVars.BorderStyle = AStyle;
-
-  if (HtmlTerm.Loaded) {
-  	// TODO HtmlTerm doesn't support border style yet
-  	// TODO HtmlTerm.SetBorderStyle(ClientVars.BorderStyle);
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.SetBorderStyle(ClientVars.BorderStyle); }
-  }
-}
-
 function ClientSetFont(ACodePage, AWidth, AHeight) {
   ClientVars.CodePage = ACodePage;
   ClientVars.FontWidth = AWidth;
   ClientVars.FontHeight = AHeight;
 
-  if (HtmlTerm.Loaded) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
     Crt.SetFont(ClientVars.CodePage, ClientVars.FontWidth, ClientVars.FontHeight);
   } else {
     var FO = GetfTelnetObject();
@@ -52,11 +49,20 @@ function ClientSetFont(ACodePage, AWidth, AHeight) {
   }
 }
 
+function ClientSetLocalEcho(ALocalEcho) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
+    //TODO Add local echo support to HtmlTerm Crt.LocalEcho = ALocalEcho;
+  } else {
+    var FO = GetfTelnetObject();
+    if (FO) { FO.SetLocalEcho(ALocalEcho); }
+  }
+}
+
 function ClientSetScreenSize(AColumns, ARows) {
   ClientVars.ScreenColumns = AColumns;
   ClientVars.ScreenRows = ARows;
 
-  if (HtmlTerm.Loaded) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
     Crt.SetScreenSize(ClientVars.ScreenColumns, ClientVars.ScreenRows);
   } else {
     var FO = GetfTelnetObject();
@@ -64,6 +70,33 @@ function ClientSetScreenSize(AColumns, ARows) {
   }
 }
 
+function ClientSetVirtualKeyboardWidth(ANewWidth) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
+    //TODO Add virtual keyboard to HtmlTerm
+  } else {
+    var FO = GetfTelnetObject();
+    if (FO) { FO.SetVirtualKeyboardWidth(ANewWidth); }
+  }
+}
+
+function ClientWrite(AText) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
+  	Crt.Write(AText);
+  } else {
+    var FO = GetfTelnetObject();
+    if (FO) { FO.Write(AText); }
+  }
+}
+
+function ClientWriteLn(AText) {
+  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
+  	Crt.WriteLn(AText);
+  } else {
+    var FO = GetfTelnetObject();
+    if (FO) { FO.WriteLn(AText); }
+  }
+}
+
 function fTelnetResize(AWidth, AHeight) {
   var FO = GetfTelnetObject();
   if (FO) { 
diff --git a/web/root/ftelnet/ClientVars.js b/web/root/ftelnet/ClientVars.js
index a91e9985e3a8d5a9abb6178a31782d77109fa4c4..fcc08954d15bf12e73aeb20b23ea3e6dff9c0f9c 100644
--- a/web/root/ftelnet/ClientVars.js
+++ b/web/root/ftelnet/ClientVars.js
@@ -1,5 +1,13 @@
 var ClientVars = {};
 
+// AlertDialogX and AlertDialogY control where the connect button will be displayed
+// NOTE: To center the connect button, use 0 for both values
+// NOTE: To position relative to the top or left, use positive values.  To position relative to the bottom or right, use negative values
+// NOTE: To position based on percent instead of pixel count, use values between 0 and 1 (or 0 and -1) (0.50 = 50%, for example)
+// Default: 0 
+ClientVars.AlertDialogX = 0;
+ClientVars.AlertDialogY = 0;
+
 // AutoConnect controls how a connection to the remote server is initiated.  
 //   0 = Disabled -- User must click a button to connect
 //   1 = Enabled -- Connection is made after the page loads
@@ -14,25 +22,6 @@ ClientVars.AutoConnect = 0;
 // Default: 115200
 ClientVars.BitsPerSecond = 115200;
 
-// Blink controls whether blinking text and high intensity background colours 
-// are available.
-//   0 = Blinking text is disabled, high intensity background colours are 
-//       enabled (this is how modern Windows OS's handle blinking text)
-//   1 = Blinking text is enabled, high intensity background colours are 
-//        disabled (this is how it was with DOS)
-// Default: 1
-ClientVars.Blink = 1;
-
-// BorderStyle controls how the border and close button looks.
-//   "FlashTerm"  = Single pixel border, like FlashTerm, no close button
-//   "None"       = No border, no close button
-//   "Ubuntu1004" = Ubuntu 10.04 style
-//   "Win2000"    = Windows 2000 style
-//   "Win7"       = Windows 7 style
-//   "WinXP"      = Windows XP style
-// Default: Win7
-ClientVars.BorderStyle = "None";
-
 // CodePage controls which font file to use.
 // NOTE: Each code page has its own set of supported FondWidth and FontHeight
 //       values, so see the online documentation for help selecting OK values
@@ -70,21 +59,38 @@ ClientVars.BorderStyle = "None";
 ClientVars.CodePage = "437"; 
 
 // ConnectAnsi controls which ANSI file to display under the initial Connect button
+// NOTE: Many webservers don't like the .ans extension, so use .txt instead
 // NOTE: This setting has no effect when ClientVars.RIP is set to 1
-// Default: connect.ans
-ClientVars.ConnectAnsi = "/ftelnet/connect.ans";
+// NOTE: This should be the full absolute path, so if the .ans file is at
+//       http://www.ftelnet.ca/mybbs/connectansi.txt then the absolute path would be "/mybbs/connectansi.txt"
+// Default: Commented out, which uses the embedded default
+// ClientVars.ConnectAnsi = "/ftelnet/ftelnet-resources/connectansi.txt";
+
+// ConnectButtonDown (and Over and Up) control the image used for the connect button
+// NOTE: When commented out, or when the given images do not exist, the default embedded connect button will be used
+// NOTE: This should be the full absolute path, so if the .png files are at
+// http://www.ftelnet.ca/mybbs/Connect*.png then the absolute path would be "/mybbs/Connect*.png"
+// Default: Commented out, which uses the embedded default
+// ClientVars.ConnectButtonDown = "/ftelnet/ftelnet-resources/ConnectDown.png";
+// ClientVars.ConnectButtonOver = "/ftelnet/ftelnet-resources/ConnectOver.png";
+// ClientVars.ConnectButtonUp = "/ftelnet/ftelnet-resources/ConnectUp.png";
 
 // ConnectButtonX and ConnectButtonY control where the connect button will be displayed
 // NOTE: To center the connect button, use 0 for both values
 // NOTE: To position relative to the top or left, use positive values.  To position relative to the bottom or right, use negative values
-// Default: 0 
-ClientVars.ConnectButtonX = -30;
-ClientVars.ConnectButtonY = -30;
+// NOTE: To position based on percent instead of pixel count, use values between 0 and 1 (or 0 and -1) (0.50 = 50%, for example)
+// Default (ANSI): -0.08, 0.30
+// Default (RIP): -10, 90
+ClientVars.ConnectButtonX = -0.08;
+ClientVars.ConnectButtonY = 0.30;
 
 // ConnectRIP controls which RIP file to display under the initial Connect button
+// NOTE: Many webservers don't like the .rip extension, so use .txt instead
 // NOTE: This setting has no effect unless ClientVars.RIP is set to 1
-// Default: connect.rip
-ClientVars.ConnectRIP = "/ftelnet/connect.rip";
+// NOTE: This should be the full absolute path, so if the .rip file is at
+//       http://www.ftelnet.ca/mybbs/connectrip.txt then the absolute path would be "/mybbs/connectrip.txt"
+// Default: Commented out, which uses the embedded default
+// ClientVars.ConnectRIP = "/ftelnet/ftelnet-resources/connectrip.txt";
 
 // Enter controls what to send to the server when the Enter key is pressed.  
 //   The telnet specification says to send \r\n (ASCII CRLF) when the Enter key
@@ -98,30 +104,122 @@ ClientVars.Enter = "\r";
 //       The Amiga and Atari code pages will override these values, as there
 //       is only one available font size for those "code pages".
 //   Available IBM PC code page sizes: 
-//     437 = 8x12, 8x13, 9x16, 10x19, 12x23
-//     737 =             9x16,        12x23
-//     850 =       8x13, 9x16, 10x19, 12x23
-//     852 =             9x16, 10x19, 12x23
-//     855 =             9x16                 
-//     857 =             9x16              
-//     860 =             9x16              
-//     861 =             9x16              
-//     862 =                   10x19         
-//     863 =             9x16                 
-//     865 =       8x13, 9x16, 10x19, 12x23
-//     866 =             9x16                 
-//     869 =             9x16              
+//     437 = 6x8, 7x11, 8x12, 8x13, 9x16, 10x19, 12x23
+//     737 =                        9x16,        12x23
+//     775 =                        9x16				
+//     850 =                  8x13, 9x16, 10x19, 12x23
+//     852 =                        9x16, 10x19, 12x23
+//     855 =                        9x16                 
+//     857 =                        9x16              
+//     860 =                        9x16              
+//     861 =                        9x16              
+//     862 =                              10x19         
+//     863 =                        9x16                 
+//     865 =                  8x13, 9x16, 10x19, 12x23
+//     866 =                        9x16                 
+//     869 =                        9x16              
 // Default: 9x16
 ClientVars.FontWidth = 9;
 ClientVars.FontHeight = 16;
 
+// LocalEcho controls whether keypresses will be echod locally or not
+//   0 = Disabled -- Keypresses will NOT be echod locally
+//   1 = Enabled -- Keypresses WILL be echod locally
+// Default: 0
+ClientVars.LocalEcho = 0;
+
+// Proxy settings allow fTelnet and HtmlTerm to connect to ANY telnet server,
+// regardless of whether they have the proper flash socket policy server
+// installed, or if the understand the WebSocket protocol.
+// NOTE: No publicly available proxy is currently available, so you'll have to
+//       create your own if you want to use these settings.
+// These settings are commented out by default, which disables proxy use.
+// ClientVars.ProxyRLoginHostName = "proxy.ftelnet.ca";
+// ClientVars.ProxyRLoginPort = 51313;
+// ClientVars.ProxySocketPolicyPort = 843;
+// ClientVars.ProxyTelnetHostName = "proxy.ftelnet.ca";
+// ClientVars.ProxyTelnetPort = 2323;
+// ClientVars.ProxyWebSocketHostName = "proxy.ftelnet.ca";
+// ClientVars.ProxyWebSocketPort = 11235;
+
 // RIP controls whether the client will display RIPscrip or ANSI
 // Default: 0
 ClientVars.RIP = 0;
 
+// RIPIconPath controls where .ICN files are loaded from.  
+// Flash requires the icons to be on the same domain that fTelnet.swf is being loaded from, so
+// you don't need to include that here, just the path. 
+// For example, if the icons are in http://www.ftelnet.ca/mybbs/ripicon/*.ICN
+// then the absolute path to the icons entered below would be "/mybbs/ripicon/"
+// Default: "/ripicon"
+ClientVars.RIPIconPath = "/ripicon";
+
+// RLogin* controls whether RLogin is used to connect to the remote server (instead of Telnet)
+ClientVars.RLogin = 0;
+ClientVars.RLoginHostName = "bbs.ftelnet.ca";
+ClientVars.RLoginPort = 513;
+ClientVars.RLoginClientUserName = "";
+ClientVars.RLoginServerUserName = "";
+ClientVars.RLoginTerminalType = "";
+
+// SaveFilesButtonDown (and Over and Up) control the image used for the save file(s) button
+// NOTE: When commented out, or when the given images do not exist, the default embedded save file(s) button will be used
+// Default: Commented out, which uses the embedded default
+// ClientVars.SaveFilesButtonDown = "/ftelnet/ftelnet-resources/SaveFilesDown.png";
+// ClientVars.SaveFilesButtonOver = "/ftelnet/ftelnet-resources/SaveFilesOver.png";
+// ClientVars.SaveFilesButtonUp = "/ftelnet/ftelnet-resources/SaveFilesUp.png";
+
 // ScreenColumns and ScreenRows control the size of the screen.  
 //   Anything within reason should be accepted 
 //   (no sanity checking is done, so bad values can/will crash the program)
-// Default: 80x25 
+// Default: 80x24 
 ClientVars.ScreenColumns = 80;
-ClientVars.ScreenRows = 25;
\ No newline at end of file
+ClientVars.ScreenRows = 25;
+
+// SendOnConnect controls what text will be sent to the server immediately 
+// after connecting.  Possibly useful for auto-login purposes (although RLogin is preferred for that purpose)  
+// Default: empty
+ClientVars.SendOnConnect = "";
+
+// ServerName is the display name for the server
+ClientVars.ServerName = "fTelnet and HtmlTerm Support BBS";
+
+// SocketPolicyPort is the port that your flash socket policy server is 
+// running on the remote server (required by flash, wish I could disable it!)
+// For more information on setting up a flash socket policy server, please see 
+// the online documentation.
+// Default: 843
+ClientVars.SocketPolicyPort = 843;
+
+// TelnetHostName is the host name or IP address of the remote telnet server
+// NOTE: fTelnet specific setting
+ClientVars.TelnetHostName = "bbs.ftelnet.ca";
+
+// TelnetPort is the port number to connect to on the remote telnet server
+// NOTE: fTelnet specific setting
+// Default: 23
+ClientVars.TelnetPort = 23;
+
+// VirtualKeyboardWidth determines whether a virtual keyboard is shown, and what size to use
+// Valid values are:
+//   0 -- disable the virtual keyboard
+//   1 -- auto detect (use the largest compatible virtual keyboard, but only on mobile devices)
+//   600 -- force on a keyboard that is 600 pixels wide by 200 pixels tall
+//   672 -- force on a keyboard that is 672 pixels wide by 250 pixels tall
+//   768 -- force on a keyboard that is 768 pixels wide by 287 pixels tall
+// Default: 1
+ClientVars.VirtualKeyboardWidth = 1;
+
+// VT controls whether fTelnet should try to be more like a VTxxx series terminal,
+// rather than like a BBS terminal client
+// Default: 0
+ClientVars.VT = 0;
+
+// WebSocketHostName is the host name or IP address of the remote websocket server
+// NOTE: HtmlTerm specific setting
+ClientVars.WebSocketHostName = "bbs.ftelnet.ca";
+
+// WebSocketPort is the port number to connect to on the remote websocket server
+// NOTE: HtmlTerm specific setting
+// Default: 1123
+ClientVars.WebSocketPort = 1123;
\ No newline at end of file
diff --git a/web/root/ftelnet/fTelnet.swf b/web/root/ftelnet/fTelnet.swf
index 77999aeb7fe1eaee73238535106b22e6c781caae..ba4d8d31857ab574439a643278c2038dedf36795 100644
Binary files a/web/root/ftelnet/fTelnet.swf and b/web/root/ftelnet/fTelnet.swf differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectDown.png b/web/root/ftelnet/ftelnet-resources/ConnectDown.png
new file mode 100644
index 0000000000000000000000000000000000000000..c202c8f697ec6e052ec2e30e18b2addc80af58e0
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/ConnectDown.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectOver.png b/web/root/ftelnet/ftelnet-resources/ConnectOver.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b76e7508772df7e6ed2d95ac932f6af4d05624e
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/ConnectOver.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectUp.png b/web/root/ftelnet/ftelnet-resources/ConnectUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b66f8701d86bf0e10cea26340f7471137211973
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/ConnectUp.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png b/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6db5834b1ab85899433f785e9e6006d74eff5ee
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png b/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cb12f8f313caa7c58d8deb5bba4c7caf00c8551
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png b/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png
new file mode 100644
index 0000000000000000000000000000000000000000..90e21ab6e2083f96fa7803bcad7ab43be6e830ac
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/connectansi.txt b/web/root/ftelnet/ftelnet-resources/connectansi.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8c7c11c9b3cc46b5edd7ffc06863b9ba75a90052
--- /dev/null
+++ b/web/root/ftelnet/ftelnet-resources/connectansi.txt
@@ -0,0 +1,25 @@
+�������������������������������������������������������������������������������
+�  Welcome!                                                                   �
+�������������������������������������������������������������������������������
+
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������
+  ����������������������������������  ����������������������������������������
+  ����������������������������������  �                                      �
+  ����������������������������������  �  fTelnet & HtmlTerm from R&M Software�
+  ����������������������������������  �     Web based BBS telnet clients*    �
+  ����������������������������������  �                                      �
+  ����������������������������������  ����������������������������������������
+
+Copyright (C) 2000-2012 R&M Software.  All Rights Reserved
+ * NOTE: HtmlTerm is actually a WebSocket client, not a Telnet client
+�������������������������������������������������������������������������������
\ No newline at end of file
diff --git a/web/root/ftelnet/ftelnet-resources/connectrip.txt b/web/root/ftelnet/ftelnet-resources/connectrip.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2ab17d689ce8f7e1d8642951a1b5724ba54f218a
--- /dev/null
+++ b/web/root/ftelnet/ftelnet-resources/connectrip.txt
@@ -0,0 +1,13 @@
+!|1K|*|w000W271410|W00|S0107|B0000HR6W|c08|=00000003|L006WHR6W|LHQ6WHQ00|c0F|L006V0000|L0000HR00|c01|Y08000300
+!|@A052fTelnet & HtmlTerm|c09|@9Z51fTelnet & HtmlTerm|Y00000100|c08|@B060Web based BBS telnet clients|c0F
+!|@AY5ZWeb based BBS telnet clients|c08|L096D090Y|L090Y9H0Y|c0F|L096D9H6D|L9H0Y9H6D|=00000001|S0007|B0B109F6B
+!|Y02000400|c08|@AA18Copyright (C) 2000-2012 R&M Software|@C11JAll Rights Reserved|Y00000100|c01
+!|P0O4P1E4L1A2C1A221F1D3D1I3I3C3I3O3J3G4T3A4X0Z4X0T4Z0I5V0N604G604P5U4P2U4J2O2Q2O2I2K2N222V1X4J1X4P1U
+!|P0M511A791A7G1E7N1U7H1X5T1X5P21664T6C4X7G4X7L4S7A3S6Y3O1R3O1Z2X7V2X8331945V8Z6052604W5U4W1F
+!|S0000|B1U3H3Y3N|B4J2Y693N|F3R1J01|S0001|B3H3P6740|L4W416141|L3L414O41|P081E5D3P5D3U583Z424742425A3U5I1C5I
+!|L1E5E0U4Y|L0K5X1D5I|P081Y2X2E1M2J1K4C1K4C1O2L1O2I1Q242X|L4B1K4M1D|L4B1O4L1V|S0101|F3F1M01|F424A01|S0B01
+!|F4J1M01|S0B09|F0X5E01|S0901|F2E2T01|F4D4N01|S0909|F1V2J01|F2Y5401|P07721K5G1K5B1O5B2W5I2W5H1O741O|L7B1C731K
+!|L741O7K1V|P0F5B425B5B5I5I8A5I8E5E7Q3C7I382C382B3C7C3C7K3G865D5N5D5J575H42|L2A3C1R3O|L2B381Z2Y|L5F5I515Z
+!|L7L3A7Z30|F532301|F5M3301|F564R01|L7G3F763Q|L664V5N5D|F7R4U01|S0901|F5N2I01|F5V3J01|L5G5I515Z|F6W5Q01
+!|F5Q4L01|S0101|F5D2D01|F5M3A01|S0B01|F7D1M01|S0B09|F203A01|S0109|B0605HJ0L|L060LHJ0L|LHJ0LHJ05|c0B|L060L0605
+!|L0605HJ05|c0F|@0O0AWELCOME\\!|#|#|#
\ No newline at end of file
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/437-10x19.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e2923c3cdac0c35f567de26327875f0fbff7b8b
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-10x19.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f7d6762764ec1b9b929118e0a360cc6ec846cc0
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png b/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ae9fbfeba72e699a146beb0a75e5700833177ce
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png b/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png
new file mode 100644
index 0000000000000000000000000000000000000000..f87bd2f60d3fbd768cbdda2fb486ce80d59e4d55
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png
new file mode 100644
index 0000000000000000000000000000000000000000..c379a5a94d8acc67484aa90d4d26e2b61f1bc120
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef509f88dd6252450163f6ca005d198f47283f8c
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b56102636d44e6daf34d4f64fd262ef58144ef0
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..c34b1e75cf692af91ad4a0c4f7bc4d4e87099107
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..531520c7ff9b12b8f85f8b8ae8a7fa8daf734ef2
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png
new file mode 100644
index 0000000000000000000000000000000000000000..e72911215345f3800c02c34e10aa57601e3fffe6
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..c76e31568676468f7a2215aff884d4319287af88
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..e8e557c9ead21210eca2273aa8d124ccddce50fa
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png
new file mode 100644
index 0000000000000000000000000000000000000000..54d431227c7ad996ad566f046925e22531cb2e46
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png
new file mode 100644
index 0000000000000000000000000000000000000000..7983c40e1ce63a348a4fc33663f251d0a463f76e
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png
new file mode 100644
index 0000000000000000000000000000000000000000..7842a3e11456c9b4d0cceef06070fa8ad5181071
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc741f11796539f09561ffc461dfd961a0bd8622
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png
new file mode 100644
index 0000000000000000000000000000000000000000..6999d2860636c645e1571dea13e37889be8528c7
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png
new file mode 100644
index 0000000000000000000000000000000000000000..73f824be65d63058adbe3db8fc592384ec623570
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..9951096627e5f91fc2d3b8fb22e279dd848072f1
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee984e899e8c6b553c4dafd674bcc12f718c483f
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..2208b7dad910e745aa595e2861e97b45da8ca761
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..c58a2f6d4e751b0cac403ba4f029e5c4e7661aa6
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..8206338fe49704ee3475046e26af7ef45fa5dab4
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png
new file mode 100644
index 0000000000000000000000000000000000000000..12d6d724ac6a00d67327973b8dbe2bce5b888d4f
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a8edca9cfe4b45eaa80c80a85ab1a9850062edc
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cc3119db6514a5904f904da38f53674628e94c8
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5db29127f599324260c8fbd8a5188b8c6479ad1
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png
new file mode 100644
index 0000000000000000000000000000000000000000..912c91bb237f9471c607e4329c82e5bbaab3835b
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..767a6fd94f5e91e77777aae01f2c59bc9c019e08
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ad6908b8cde8c9c17013e9d57580f778cb63143
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..18d2aea0e3043e44e9cfc5028a6ca15b3910b1e4
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-16x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..ccffe75b646acc258f79d37f3de44f46f0fc0874
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-16x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-HalfWidth-8x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-HalfWidth-8x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c1463ce42345ba65c65121a736b5e42b92a2370
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-HalfWidth-8x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-16x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..19629ed36ef94750487944c4f0d2484da53810bc
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-16x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-HalfWidth-8x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-HalfWidth-8x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..8679f6b67b9327cb195849d5015afe50a314c3ed
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-HalfWidth-8x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-16x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..06fbbc0664f62be625cd6e157203908c2b298ac7
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-16x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-HalfWidth-8x16.png b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-HalfWidth-8x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..434964650a20aa0963430be4b916c02d0fef6fa4
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-HalfWidth-8x16.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb0338bc8928e726949aca0fd89a4311c08758cb
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..f45dd84bd28375688c266c0f02837c7b811e8765
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..176f63e132d805ca0442ddfa20e1b72907640490
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..89b81d7931043e2a7a9eeb77535878765bf9ea39
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png
new file mode 100644
index 0000000000000000000000000000000000000000..d00698c1d927e3024fffbda6db0237dc9ac79bbf
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e3ec291ec3c1247cea23eec066cc7af1d7bc71a
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png
new file mode 100644
index 0000000000000000000000000000000000000000..0eb886fd5c4062b4017c9688909603a74d45609e
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae540f8e7d676b657ab3b798ce9d57f0effd0f68
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb1877637f0c616ff65fbc0ae15272dfffb2e039
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2145af87909ea7f627609b77268e669d941ca75
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip b/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip
new file mode 100644
index 0000000000000000000000000000000000000000..b440789b8d634da76c2c3f4ab743459df5a57896
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png
new file mode 100644
index 0000000000000000000000000000000000000000..285500b0a8f7cd120b7c063b572d0f60acf719b0
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a25ee50dc341216f64dbcc0989b143205c54413
Binary files /dev/null and b/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png differ
diff --git a/web/root/members/externals.ssjs b/web/root/members/externals.ssjs
index dda17d6235aa5609d801394b80a772ae9fb68acf..d6679d2df8b50610ef20d2ef3275a31803d9385b 100644
--- a/web/root/members/externals.ssjs
+++ b/web/root/members/externals.ssjs
@@ -57,11 +57,11 @@ if (!options) {
 		}
 	} else {
 		templatefile = "ftelnet_external.inc";
-		template.UserName = UsingSecondRLoginName() ? user.alias : user.security.password;
-		template.Password = UsingSecondRLoginName() ? user.security.password : user.alias;
+		template.ClientUserName = UsingSecondRLoginName() ? user.security.password : user.alias;
+		template.ServerUserName = UsingSecondRLoginName() ? user.alias : user.security.password;
+		template.TerminalType = "xtrn=" + http_request.query.code;
 		template.HostName = system.inet_addr;
 		template.Port = GetRLoginPort();
-		template.External = http_request.query.code;
 		template.ServerName = system.name;
 		template.SocketPolicyPort = GetFlashSocketPolicyServicePort();
 	}
diff --git a/web/templates/default/ftelnet_external.inc b/web/templates/default/ftelnet_external.inc
index 53c7acf4581ef4358dc7b77c8bf87d876cbf9ed0..7f61fe5cea3bfce9610db823aecddf4092061787 100644
--- a/web/templates/default/ftelnet_external.inc
+++ b/web/templates/default/ftelnet_external.inc
@@ -14,11 +14,11 @@
 	<script type="text/javascript" src="/ftelnet/swfobject.js"></script>
 	<script type="text/javascript">
 		ClientVars.RLogin = 1;
-		ClientVars.RLoginExternal = "@@External@@";
+		ClientVars.RLoginClientUserName = "@@ClientUserName@@";
 		ClientVars.RLoginHostName = "@@HostName@@";
-		ClientVars.RLoginPassword = "@@Password@@";
 		ClientVars.RLoginPort = @@Port@@;
-		ClientVars.RLoginUserName = "@@UserName@@";
+		ClientVars.RLoginServerUserName = "@@ServerUserName@@";
+		ClientVars.RLoginTerminalType = "@@TerminalType@@";
 		ClientVars.ServerName = "@@ServerName@@";
 		ClientVars.SocketPolicyPort = @@SocketPolicyPort@@;
 		swfobject.embedSWF(
diff --git a/web/templates/nightshade/ftelnet_external.inc b/web/templates/nightshade/ftelnet_external.inc
index a3964ff0a4a0f69d0782bca6b481d6c667109029..a11a4101315aa931c6b785103aabe0e9d8f43c6c 100644
--- a/web/templates/nightshade/ftelnet_external.inc
+++ b/web/templates/nightshade/ftelnet_external.inc
@@ -14,11 +14,11 @@
 		<script type="text/javascript" src="/ftelnet/swfobject.js"></script>
 		<script type="text/javascript">
 			ClientVars.RLogin = 1;
-			ClientVars.RLoginExternal = "@@External@@";
+			ClientVars.RLoginClientUserName = "@@ClientUserName@@";
 			ClientVars.RLoginHostName = "@@HostName@@";
-			ClientVars.RLoginPassword = "@@Password@@";
 			ClientVars.RLoginPort = @@Port@@;
-			ClientVars.RLoginUserName = "@@UserName@@";
+			ClientVars.RLoginServerUserName = "@@ServerUserName@@";
+			ClientVars.RLoginTerminalType = "@@TerminalType@@";
 			ClientVars.ServerName = "@@ServerName@@";
 			ClientVars.SocketPolicyPort = @@SocketPolicyPort@@;
 			swfobject.embedSWF(