diff --git a/web/root/ftelnet/ClientFuncs.js b/web/root/ftelnet/ClientFuncs.js
deleted file mode 100644
index 9d04b6c07b522f6f0f9dc4f818bab6c15b3f9533..0000000000000000000000000000000000000000
--- a/web/root/ftelnet/ClientFuncs.js
+++ /dev/null
@@ -1,118 +0,0 @@
-function ClientClrScr() {
-  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-  	Crt.ClrScr();
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.ClrScr(); }
-  }
-}
-
-function ClientConnect(AHost, APort) {
-  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-    HtmlTerm.Connect(AHost, APort);
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.Connect(AHost, APort); }
-  }
-}
-
-function ClientConnected() {
-  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-    return HtmlTerm.Connected();
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { return FO.Connected(); }
-  }
-  
-  return false;
-}
-
-function ClientDisconnect() {
-  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-    HtmlTerm.Disconnect();
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.Disconnect(); }
-  }
-}
-
-function ClientSetFont(ACodePage, AWidth, AHeight) {
-  ClientVars.CodePage = ACodePage;
-  ClientVars.FontWidth = AWidth;
-  ClientVars.FontHeight = AHeight;
-
-  if ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-    Crt.SetFont(ClientVars.CodePage, ClientVars.FontWidth, ClientVars.FontHeight);
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.SetFont(ClientVars.CodePage, ClientVars.FontWidth, ClientVars.FontHeight); }
-  }
-}
-
-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 ((typeof(HtmlTerm) !== "undefined") && HtmlTerm.Loaded) {
-    Crt.SetScreenSize(ClientVars.ScreenColumns, ClientVars.ScreenRows);
-  } else {
-    var FO = GetfTelnetObject();
-    if (FO) { FO.SetScreenSize(ClientVars.ScreenColumns, ClientVars.ScreenRows); }
-  }
-}
-
-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) { 
-    FO.setAttribute("width", AWidth);
-    FO.setAttribute("height", AHeight);
-  }
-}
-
-function GetfTelnetObject() {
-  var AID = "fTelnet";
-
-  if (window.document[AID]) { return window.document[AID]; }
-
-  if (navigator.appName.indexOf("Microsoft Internet") == -1) {
-    if (document.embeds && document.embeds[AID]) { return document.embeds[AID]; } 
-  } else {
-    return document.getElementById(AID);
-  }
-}
diff --git a/web/root/ftelnet/ClientVars.js b/web/root/ftelnet/ClientVars.js
deleted file mode 100644
index fcc08954d15bf12e73aeb20b23ea3e6dff9c0f9c..0000000000000000000000000000000000000000
--- a/web/root/ftelnet/ClientVars.js
+++ /dev/null
@@ -1,225 +0,0 @@
-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
-// Default: 0
-ClientVars.AutoConnect = 0;
-
-// BitsPerSecond controls how fast data is received from the remote server 
-// (except during file transfers, which run at full speed).
-//   Here are some suggested values to try:
-//     115200, 57600, 38400, 28800, 19200, 14400, 9600, 4800, 2400, 1200, 300
-//   (Those were just common bitrates, feel free to use any value you want)
-// Default: 115200
-ClientVars.BitsPerSecond = 115200;
-
-// 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
-//   Available IBM PC code pages: 
-//     437 = The original IBM PC code page
-//     737 = Greek
-//     850 = Multilingual (Latin-1) (Western European languages)
-//     852 = Slavic (Latin-2) (Central and Eastern European languages)
-//     855 = Cyrillic
-//     857 =  Turkish
-//     860 = Portuguese
-//     861 = Icelandic
-//     862 = Hebrew
-//     863 = French (Quebec French)
-//     865 = Danish/Norwegian
-//     866 = Cyrillic
-//     869 = Greek
-//   Available Amiga "code pages": 
-//     BStrict
-//     BStruct
-//     MicroKnight
-//     MoSoul
-//     PotNoodle
-//     Topaz
-//     TopazPlus
-//   Available Atari "code pages" for standard 40 column displays:
-//     ATASCII-Arabic
-//     ATASCII-Graphics (Default for Atari)
-//     ATASCII-International
-//   Available Atari "code pages" for non-standard 80 column displays:
-//     ATASCII-Arabic-HalfWidth
-//     ATASCII-Graphics-HalfWidth
-//     ATASCII-International-HalfWidth
-// Default: 437
-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
-// 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
-// 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
-// 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
-//   is pressed, but not all software will work with that, so you may have more
-//   luck with the non-standard \r (ASCII CR without the LF). 
-// Default: \r
-ClientVars.Enter = "\r";
-
-// FontHeight and FontWidth control the size of each character on screen.  
-// NOTE: These values only need to be set if you're using an IBM PC code page.
-//       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 = 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: 80x24 
-ClientVars.ScreenColumns = 80;
-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
deleted file mode 100644
index ba4d8d31857ab574439a643278c2038dedf36795..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/fTelnet.swf and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectDown.png b/web/root/ftelnet/ftelnet-resources/ConnectDown.png
deleted file mode 100644
index c202c8f697ec6e052ec2e30e18b2addc80af58e0..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/ConnectDown.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectOver.png b/web/root/ftelnet/ftelnet-resources/ConnectOver.png
deleted file mode 100644
index 9b76e7508772df7e6ed2d95ac932f6af4d05624e..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/ConnectOver.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/ConnectUp.png b/web/root/ftelnet/ftelnet-resources/ConnectUp.png
deleted file mode 100644
index 0b66f8701d86bf0e10cea26340f7471137211973..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/ConnectUp.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png b/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png
deleted file mode 100644
index b6db5834b1ab85899433f785e9e6006d74eff5ee..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/SaveFilesDown.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png b/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png
deleted file mode 100644
index 0cb12f8f313caa7c58d8deb5bba4c7caf00c8551..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/SaveFilesOver.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png b/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png
deleted file mode 100644
index 90e21ab6e2083f96fa7803bcad7ab43be6e830ac..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/SaveFilesUp.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/connectansi.txt b/web/root/ftelnet/ftelnet-resources/connectansi.txt
deleted file mode 100644
index 8c7c11c9b3cc46b5edd7ffc06863b9ba75a90052..0000000000000000000000000000000000000000
--- a/web/root/ftelnet/ftelnet-resources/connectansi.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-�������������������������������������������������������������������������������
-�  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
deleted file mode 100644
index 2ab17d689ce8f7e1d8642951a1b5724ba54f218a..0000000000000000000000000000000000000000
--- a/web/root/ftelnet/ftelnet-resources/connectrip.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-!|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
deleted file mode 100644
index 8e2923c3cdac0c35f567de26327875f0fbff7b8b..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-10x19.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png
deleted file mode 100644
index 3f7d6762764ec1b9b929118e0a360cc6ec846cc0..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-12x23.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png b/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png
deleted file mode 100644
index 0ae9fbfeba72e699a146beb0a75e5700833177ce..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-6x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png b/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png
deleted file mode 100644
index f87bd2f60d3fbd768cbdda2fb486ce80d59e4d55..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-7x12.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png
deleted file mode 100644
index c379a5a94d8acc67484aa90d4d26e2b61f1bc120..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-8x12.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png
deleted file mode 100644
index ef509f88dd6252450163f6ca005d198f47283f8c..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-8x13.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png
deleted file mode 100644
index 8b56102636d44e6daf34d4f64fd262ef58144ef0..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-8x14.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png
deleted file mode 100644
index c34b1e75cf692af91ad4a0c4f7bc4d4e87099107..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png
deleted file mode 100644
index 531520c7ff9b12b8f85f8b8ae8a7fa8daf734ef2..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/437-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png
deleted file mode 100644
index e72911215345f3800c02c34e10aa57601e3fffe6..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/737-12x23.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png
deleted file mode 100644
index c76e31568676468f7a2215aff884d4319287af88..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/737-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png
deleted file mode 100644
index e8e557c9ead21210eca2273aa8d124ccddce50fa..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/775-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png
deleted file mode 100644
index 54d431227c7ad996ad566f046925e22531cb2e46..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/850-10x19.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png
deleted file mode 100644
index 7983c40e1ce63a348a4fc33663f251d0a463f76e..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/850-12x23.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png
deleted file mode 100644
index 7842a3e11456c9b4d0cceef06070fa8ad5181071..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/850-8x13.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png
deleted file mode 100644
index fc741f11796539f09561ffc461dfd961a0bd8622..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/850-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png
deleted file mode 100644
index 6999d2860636c645e1571dea13e37889be8528c7..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/852-10x19.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png
deleted file mode 100644
index 73f824be65d63058adbe3db8fc592384ec623570..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/852-12x23.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png
deleted file mode 100644
index 9951096627e5f91fc2d3b8fb22e279dd848072f1..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/852-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png
deleted file mode 100644
index ee984e899e8c6b553c4dafd674bcc12f718c483f..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/855-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png
deleted file mode 100644
index 2208b7dad910e745aa595e2861e97b45da8ca761..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/857-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png
deleted file mode 100644
index c58a2f6d4e751b0cac403ba4f029e5c4e7661aa6..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/860-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png
deleted file mode 100644
index 8206338fe49704ee3475046e26af7ef45fa5dab4..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/861-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png
deleted file mode 100644
index 12d6d724ac6a00d67327973b8dbe2bce5b888d4f..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/862-10x19.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png
deleted file mode 100644
index 3a8edca9cfe4b45eaa80c80a85ab1a9850062edc..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/863-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png b/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png
deleted file mode 100644
index 0cc3119db6514a5904f904da38f53674628e94c8..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/865-10x19.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png b/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png
deleted file mode 100644
index f5db29127f599324260c8fbd8a5188b8c6479ad1..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/865-12x23.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png b/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png
deleted file mode 100644
index 912c91bb237f9471c607e4329c82e5bbaab3835b..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/865-8x13.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png
deleted file mode 100644
index 767a6fd94f5e91e77777aae01f2c59bc9c019e08..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/865-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png
deleted file mode 100644
index 7ad6908b8cde8c9c17013e9d57580f778cb63143..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/866-9x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png b/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png
deleted file mode 100644
index 18d2aea0e3043e44e9cfc5028a6ca15b3910b1e4..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/869-9x16.png and /dev/null 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
deleted file mode 100644
index ccffe75b646acc258f79d37f3de44f46f0fc0874..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-16x16.png and /dev/null 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
deleted file mode 100644
index 3c1463ce42345ba65c65121a736b5e42b92a2370..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Arabic-HalfWidth-8x16.png and /dev/null 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
deleted file mode 100644
index 19629ed36ef94750487944c4f0d2484da53810bc..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-16x16.png and /dev/null 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
deleted file mode 100644
index 8679f6b67b9327cb195849d5015afe50a314c3ed..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-Graphics-HalfWidth-8x16.png and /dev/null 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
deleted file mode 100644
index 06fbbc0664f62be625cd6e157203908c2b298ac7..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-16x16.png and /dev/null 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
deleted file mode 100644
index 434964650a20aa0963430be4b916c02d0fef6fa4..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/ATASCII-International-HalfWidth-8x16.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png
deleted file mode 100644
index fb0338bc8928e726949aca0fd89a4311c08758cb..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/BStrict-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png
deleted file mode 100644
index f45dd84bd28375688c266c0f02837c7b811e8765..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/BStruct-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png
deleted file mode 100644
index 176f63e132d805ca0442ddfa20e1b72907640490..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/MicroKnight-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png
deleted file mode 100644
index 89b81d7931043e2a7a9eeb77535878765bf9ea39..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/MoSoul-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png
deleted file mode 100644
index d00698c1d927e3024fffbda6db0237dc9ac79bbf..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/PotNoodle-8x11.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png
deleted file mode 100644
index 4e3ec291ec3c1247cea23eec066cc7af1d7bc71a..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/RIP-16x14.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png
deleted file mode 100644
index 0eb886fd5c4062b4017c9688909603a74d45609e..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x14.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png
deleted file mode 100644
index ae540f8e7d676b657ab3b798ce9d57f0effd0f68..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/RIP-7x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png
deleted file mode 100644
index bb1877637f0c616ff65fbc0ae15272dfffb2e039..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x14.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png b/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png
deleted file mode 100644
index e2145af87909ea7f627609b77268e669d941ca75..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/RIP-8x8.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip b/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip
deleted file mode 100644
index b440789b8d634da76c2c3f4ab743459df5a57896..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/StrokeFont.zip and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png
deleted file mode 100644
index 285500b0a8f7cd120b7c063b572d0f60acf719b0..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/Topaz-8x11.png and /dev/null differ
diff --git a/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png b/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png
deleted file mode 100644
index 7a25ee50dc341216f64dbcc0989b143205c54413..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/ftelnet-resources/fonts/TopazPlus-8x11.png and /dev/null differ
diff --git a/web/root/ftelnet/playerProductInstall.swf b/web/root/ftelnet/playerProductInstall.swf
deleted file mode 100644
index bdc3437856cb0ae54bb9423700ba6ec89f35282c..0000000000000000000000000000000000000000
Binary files a/web/root/ftelnet/playerProductInstall.swf and /dev/null differ
diff --git a/web/root/ftelnet/swfobject.js b/web/root/ftelnet/swfobject.js
deleted file mode 100644
index bf35c07c8f4e0bde7b0bfab54712c1abfb30dcaa..0000000000000000000000000000000000000000
--- a/web/root/ftelnet/swfobject.js
+++ /dev/null
@@ -1,777 +0,0 @@
-/*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
-	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
-*/
-
-var swfobject = function() {
-	
-	var UNDEF = "undefined",
-		OBJECT = "object",
-		SHOCKWAVE_FLASH = "Shockwave Flash",
-		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
-		FLASH_MIME_TYPE = "application/x-shockwave-flash",
-		EXPRESS_INSTALL_ID = "SWFObjectExprInst",
-		ON_READY_STATE_CHANGE = "onreadystatechange",
-		
-		win = window,
-		doc = document,
-		nav = navigator,
-		
-		plugin = false,
-		domLoadFnArr = [main],
-		regObjArr = [],
-		objIdArr = [],
-		listenersArr = [],
-		storedAltContent,
-		storedAltContentId,
-		storedCallbackFn,
-		storedCallbackObj,
-		isDomLoaded = false,
-		isExpressInstallActive = false,
-		dynamicStylesheet,
-		dynamicStylesheetMedia,
-		autoHideShow = true,
-	
-	/* Centralized function for browser feature detection
-		- User agent string detection is only used when no good alternative is possible
-		- Is executed directly for optimal performance
-	*/	
-	ua = function() {
-		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
-			u = nav.userAgent.toLowerCase(),
-			p = nav.platform.toLowerCase(),
-			windows = p ? /win/.test(p) : /win/.test(u),
-			mac = p ? /mac/.test(p) : /mac/.test(u),
-			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
-			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
-			playerVersion = [0,0,0],
-			d = null;
-		if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
-			d = nav.plugins[SHOCKWAVE_FLASH].description;
-			if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
-				plugin = true;
-				ie = false; // cascaded feature detection for Internet Explorer
-				d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
-				playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
-				playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
-				playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
-			}
-		}
-		else if (typeof win.ActiveXObject != UNDEF) {
-			try {
-				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
-				if (a) { // a will return null when ActiveX is disabled
-					d = a.GetVariable("$version");
-					if (d) {
-						ie = true; // cascaded feature detection for Internet Explorer
-						d = d.split(" ")[1].split(",");
-						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
-					}
-				}
-			}
-			catch(e) {}
-		}
-		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
-	}(),
-	
-	/* Cross-browser onDomLoad
-		- Will fire an event as soon as the DOM of a web page is loaded
-		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
-		- Regular onload serves as fallback
-	*/ 
-	onDomLoad = function() {
-		if (!ua.w3) { return; }
-		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
-			callDomLoadFunctions();
-		}
-		if (!isDomLoaded) {
-			if (typeof doc.addEventListener != UNDEF) {
-				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
-			}		
-			if (ua.ie && ua.win) {
-				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
-					if (doc.readyState == "complete") {
-						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
-						callDomLoadFunctions();
-					}
-				});
-				if (win == top) { // if not inside an iframe
-					(function(){
-						if (isDomLoaded) { return; }
-						try {
-							doc.documentElement.doScroll("left");
-						}
-						catch(e) {
-							setTimeout(arguments.callee, 0);
-							return;
-						}
-						callDomLoadFunctions();
-					})();
-				}
-			}
-			if (ua.wk) {
-				(function(){
-					if (isDomLoaded) { return; }
-					if (!/loaded|complete/.test(doc.readyState)) {
-						setTimeout(arguments.callee, 0);
-						return;
-					}
-					callDomLoadFunctions();
-				})();
-			}
-			addLoadEvent(callDomLoadFunctions);
-		}
-	}();
-	
-	function callDomLoadFunctions() {
-		if (isDomLoaded) { return; }
-		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
-			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
-			t.parentNode.removeChild(t);
-		}
-		catch (e) { return; }
-		isDomLoaded = true;
-		var dl = domLoadFnArr.length;
-		for (var i = 0; i < dl; i++) {
-			domLoadFnArr[i]();
-		}
-	}
-	
-	function addDomLoadEvent(fn) {
-		if (isDomLoaded) {
-			fn();
-		}
-		else { 
-			domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
-		}
-	}
-	
-	/* Cross-browser onload
-		- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
-		- Will fire an event as soon as a web page including all of its assets are loaded 
-	 */
-	function addLoadEvent(fn) {
-		if (typeof win.addEventListener != UNDEF) {
-			win.addEventListener("load", fn, false);
-		}
-		else if (typeof doc.addEventListener != UNDEF) {
-			doc.addEventListener("load", fn, false);
-		}
-		else if (typeof win.attachEvent != UNDEF) {
-			addListener(win, "onload", fn);
-		}
-		else if (typeof win.onload == "function") {
-			var fnOld = win.onload;
-			win.onload = function() {
-				fnOld();
-				fn();
-			};
-		}
-		else {
-			win.onload = fn;
-		}
-	}
-	
-	/* Main function
-		- Will preferably execute onDomLoad, otherwise onload (as a fallback)
-	*/
-	function main() { 
-		if (plugin) {
-			testPlayerVersion();
-		}
-		else {
-			matchVersions();
-		}
-	}
-	
-	/* Detect the Flash Player version for non-Internet Explorer browsers
-		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
-		  a. Both release and build numbers can be detected
-		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
-		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
-		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
-	*/
-	function testPlayerVersion() {
-		var b = doc.getElementsByTagName("body")[0];
-		var o = createElement(OBJECT);
-		o.setAttribute("type", FLASH_MIME_TYPE);
-		var t = b.appendChild(o);
-		if (t) {
-			var counter = 0;
-			(function(){
-				if (typeof t.GetVariable != UNDEF) {
-					var d = t.GetVariable("$version");
-					if (d) {
-						d = d.split(" ")[1].split(",");
-						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
-					}
-				}
-				else if (counter < 10) {
-					counter++;
-					setTimeout(arguments.callee, 10);
-					return;
-				}
-				b.removeChild(o);
-				t = null;
-				matchVersions();
-			})();
-		}
-		else {
-			matchVersions();
-		}
-	}
-	
-	/* Perform Flash Player and SWF version matching; static publishing only
-	*/
-	function matchVersions() {
-		var rl = regObjArr.length;
-		if (rl > 0) {
-			for (var i = 0; i < rl; i++) { // for each registered object element
-				var id = regObjArr[i].id;
-				var cb = regObjArr[i].callbackFn;
-				var cbObj = {success:false, id:id};
-				if (ua.pv[0] > 0) {
-					var obj = getElementById(id);
-					if (obj) {
-						if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
-							setVisibility(id, true);
-							if (cb) {
-								cbObj.success = true;
-								cbObj.ref = getObjectById(id);
-								cb(cbObj);
-							}
-						}
-						else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
-							var att = {};
-							att.data = regObjArr[i].expressInstall;
-							att.width = obj.getAttribute("width") || "0";
-							att.height = obj.getAttribute("height") || "0";
-							if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
-							if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
-							// parse HTML object param element's name-value pairs
-							var par = {};
-							var p = obj.getElementsByTagName("param");
-							var pl = p.length;
-							for (var j = 0; j < pl; j++) {
-								if (p[j].getAttribute("name").toLowerCase() != "movie") {
-									par[p[j].getAttribute("name")] = p[j].getAttribute("value");
-								}
-							}
-							showExpressInstall(att, par, id, cb);
-						}
-						else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
-							displayAltContent(obj);
-							if (cb) { cb(cbObj); }
-						}
-					}
-				}
-				else {	// if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
-					setVisibility(id, true);
-					if (cb) {
-						var o = getObjectById(id); // test whether there is an HTML object element or not
-						if (o && typeof o.SetVariable != UNDEF) { 
-							cbObj.success = true;
-							cbObj.ref = o;
-						}
-						cb(cbObj);
-					}
-				}
-			}
-		}
-	}
-	
-	function getObjectById(objectIdStr) {
-		var r = null;
-		var o = getElementById(objectIdStr);
-		if (o && o.nodeName == "OBJECT") {
-			if (typeof o.SetVariable != UNDEF) {
-				r = o;
-			}
-			else {
-				var n = o.getElementsByTagName(OBJECT)[0];
-				if (n) {
-					r = n;
-				}
-			}
-		}
-		return r;
-	}
-	
-	/* Requirements for Adobe Express Install
-		- only one instance can be active at a time
-		- fp 6.0.65 or higher
-		- Win/Mac OS only
-		- no Webkit engines older than version 312
-	*/
-	function canExpressInstall() {
-		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
-	}
-	
-	/* Show the Adobe Express Install dialog
-		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
-	*/
-	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
-		isExpressInstallActive = true;
-		storedCallbackFn = callbackFn || null;
-		storedCallbackObj = {success:false, id:replaceElemIdStr};
-		var obj = getElementById(replaceElemIdStr);
-		if (obj) {
-			if (obj.nodeName == "OBJECT") { // static publishing
-				storedAltContent = abstractAltContent(obj);
-				storedAltContentId = null;
-			}
-			else { // dynamic publishing
-				storedAltContent = obj;
-				storedAltContentId = replaceElemIdStr;
-			}
-			att.id = EXPRESS_INSTALL_ID;
-			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
-			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
-			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
-			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
-				fv = "MMredirectURL=" + encodeURI(window.location).toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
-			if (typeof par.flashvars != UNDEF) {
-				par.flashvars += "&" + fv;
-			}
-			else {
-				par.flashvars = fv;
-			}
-			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
-			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
-			if (ua.ie && ua.win && obj.readyState != 4) {
-				var newObj = createElement("div");
-				replaceElemIdStr += "SWFObjectNew";
-				newObj.setAttribute("id", replaceElemIdStr);
-				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
-				obj.style.display = "none";
-				(function(){
-					if (obj.readyState == 4) {
-						obj.parentNode.removeChild(obj);
-					}
-					else {
-						setTimeout(arguments.callee, 10);
-					}
-				})();
-			}
-			createSWF(att, par, replaceElemIdStr);
-		}
-	}
-	
-	/* Functions to abstract and display alternative content
-	*/
-	function displayAltContent(obj) {
-		if (ua.ie && ua.win && obj.readyState != 4) {
-			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
-			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
-			var el = createElement("div");
-			obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
-			el.parentNode.replaceChild(abstractAltContent(obj), el);
-			obj.style.display = "none";
-			(function(){
-				if (obj.readyState == 4) {
-					obj.parentNode.removeChild(obj);
-				}
-				else {
-					setTimeout(arguments.callee, 10);
-				}
-			})();
-		}
-		else {
-			obj.parentNode.replaceChild(abstractAltContent(obj), obj);
-		}
-	} 
-
-	function abstractAltContent(obj) {
-		var ac = createElement("div");
-		if (ua.win && ua.ie) {
-			ac.innerHTML = obj.innerHTML;
-		}
-		else {
-			var nestedObj = obj.getElementsByTagName(OBJECT)[0];
-			if (nestedObj) {
-				var c = nestedObj.childNodes;
-				if (c) {
-					var cl = c.length;
-					for (var i = 0; i < cl; i++) {
-						if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
-							ac.appendChild(c[i].cloneNode(true));
-						}
-					}
-				}
-			}
-		}
-		return ac;
-	}
-	
-	/* Cross-browser dynamic SWF creation
-	*/
-	function createSWF(attObj, parObj, id) {
-		var r, el = getElementById(id);
-		if (ua.wk && ua.wk < 312) { return r; }
-		if (el) {
-			if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
-				attObj.id = id;
-			}
-			if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
-				var att = "";
-				for (var i in attObj) {
-					if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
-						if (i.toLowerCase() == "data") {
-							parObj.movie = attObj[i];
-						}
-						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
-							att += ' class="' + attObj[i] + '"';
-						}
-						else if (i.toLowerCase() != "classid") {
-							att += ' ' + i + '="' + attObj[i] + '"';
-						}
-					}
-				}
-				var par = "";
-				for (var j in parObj) {
-					if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
-						par += '<param name="' + j + '" value="' + parObj[j] + '" />';
-					}
-				}
-				el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
-				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
-				r = getElementById(attObj.id);	
-			}
-			else { // well-behaving browsers
-				var o = createElement(OBJECT);
-				o.setAttribute("type", FLASH_MIME_TYPE);
-				for (var m in attObj) {
-					if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
-						if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
-							o.setAttribute("class", attObj[m]);
-						}
-						else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
-							o.setAttribute(m, attObj[m]);
-						}
-					}
-				}
-				for (var n in parObj) {
-					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
-						createObjParam(o, n, parObj[n]);
-					}
-				}
-				el.parentNode.replaceChild(o, el);
-				r = o;
-			}
-		}
-		return r;
-	}
-	
-	function createObjParam(el, pName, pValue) {
-		var p = createElement("param");
-		p.setAttribute("name", pName);	
-		p.setAttribute("value", pValue);
-		el.appendChild(p);
-	}
-	
-	/* Cross-browser SWF removal
-		- Especially needed to safely and completely remove a SWF in Internet Explorer
-	*/
-	function removeSWF(id) {
-		var obj = getElementById(id);
-		if (obj && obj.nodeName == "OBJECT") {
-			if (ua.ie && ua.win) {
-				obj.style.display = "none";
-				(function(){
-					if (obj.readyState == 4) {
-						removeObjectInIE(id);
-					}
-					else {
-						setTimeout(arguments.callee, 10);
-					}
-				})();
-			}
-			else {
-				obj.parentNode.removeChild(obj);
-			}
-		}
-	}
-	
-	function removeObjectInIE(id) {
-		var obj = getElementById(id);
-		if (obj) {
-			for (var i in obj) {
-				if (typeof obj[i] == "function") {
-					obj[i] = null;
-				}
-			}
-			obj.parentNode.removeChild(obj);
-		}
-	}
-	
-	/* Functions to optimize JavaScript compression
-	*/
-	function getElementById(id) {
-		var el = null;
-		try {
-			el = doc.getElementById(id);
-		}
-		catch (e) {}
-		return el;
-	}
-	
-	function createElement(el) {
-		return doc.createElement(el);
-	}
-	
-	/* Updated attachEvent function for Internet Explorer
-		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
-	*/	
-	function addListener(target, eventType, fn) {
-		target.attachEvent(eventType, fn);
-		listenersArr[listenersArr.length] = [target, eventType, fn];
-	}
-	
-	/* Flash Player and SWF content version matching
-	*/
-	function hasPlayerVersion(rv) {
-		var pv = ua.pv, v = rv.split(".");
-		v[0] = parseInt(v[0], 10);
-		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
-		v[2] = parseInt(v[2], 10) || 0;
-		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
-	}
-	
-	/* Cross-browser dynamic CSS creation
-		- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
-	*/	
-	function createCSS(sel, decl, media, newStyle) {
-		if (ua.ie && ua.mac) { return; }
-		var h = doc.getElementsByTagName("head")[0];
-		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
-		var m = (media && typeof media == "string") ? media : "screen";
-		if (newStyle) {
-			dynamicStylesheet = null;
-			dynamicStylesheetMedia = null;
-		}
-		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
-			// create dynamic stylesheet + get a global reference to it
-			var s = createElement("style");
-			s.setAttribute("type", "text/css");
-			s.setAttribute("media", m);
-			dynamicStylesheet = h.appendChild(s);
-			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
-				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
-			}
-			dynamicStylesheetMedia = m;
-		}
-		// add style rule
-		if (ua.ie && ua.win) {
-			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
-				dynamicStylesheet.addRule(sel, decl);
-			}
-		}
-		else {
-			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
-				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
-			}
-		}
-	}
-	
-	function setVisibility(id, isVisible) {
-		if (!autoHideShow) { return; }
-		var v = isVisible ? "visible" : "hidden";
-		if (isDomLoaded && getElementById(id)) {
-			getElementById(id).style.visibility = v;
-		}
-		else {
-			createCSS("#" + id, "visibility:" + v);
-		}
-	}
-
-	/* Filter to avoid XSS attacks
-	*/
-	function urlEncodeIfNecessary(s) {
-		var regex = /[\\\"<>\.;]/;
-		var hasBadChars = regex.exec(s) != null;
-		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
-	}
-	
-	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
-	*/
-	var cleanup = function() {
-		if (ua.ie && ua.win) {
-			window.attachEvent("onunload", function() {
-				// remove listeners to avoid memory leaks
-				var ll = listenersArr.length;
-				for (var i = 0; i < ll; i++) {
-					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
-				}
-				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
-				var il = objIdArr.length;
-				for (var j = 0; j < il; j++) {
-					removeSWF(objIdArr[j]);
-				}
-				// cleanup library's main closures to avoid memory leaks
-				for (var k in ua) {
-					ua[k] = null;
-				}
-				ua = null;
-				for (var l in swfobject) {
-					swfobject[l] = null;
-				}
-				swfobject = null;
-			});
-		}
-	}();
-	
-	return {
-		/* Public API
-			- Reference: http://code.google.com/p/swfobject/wiki/documentation
-		*/ 
-		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
-			if (ua.w3 && objectIdStr && swfVersionStr) {
-				var regObj = {};
-				regObj.id = objectIdStr;
-				regObj.swfVersion = swfVersionStr;
-				regObj.expressInstall = xiSwfUrlStr;
-				regObj.callbackFn = callbackFn;
-				regObjArr[regObjArr.length] = regObj;
-				setVisibility(objectIdStr, false);
-			}
-			else if (callbackFn) {
-				callbackFn({success:false, id:objectIdStr});
-			}
-		},
-		
-		getObjectById: function(objectIdStr) {
-			if (ua.w3) {
-				return getObjectById(objectIdStr);
-			}
-		},
-		
-		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
-			var callbackObj = {success:false, id:replaceElemIdStr};
-			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
-				setVisibility(replaceElemIdStr, false);
-				addDomLoadEvent(function() {
-					widthStr += ""; // auto-convert to string
-					heightStr += "";
-					var att = {};
-					if (attObj && typeof attObj === OBJECT) {
-						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
-							att[i] = attObj[i];
-						}
-					}
-					att.data = swfUrlStr;
-					att.width = widthStr;
-					att.height = heightStr;
-					var par = {}; 
-					if (parObj && typeof parObj === OBJECT) {
-						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
-							par[j] = parObj[j];
-						}
-					}
-					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
-						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
-							if (typeof par.flashvars != UNDEF) {
-								par.flashvars += "&" + k + "=" + flashvarsObj[k];
-							}
-							else {
-								par.flashvars = k + "=" + flashvarsObj[k];
-							}
-						}
-					}
-					if (hasPlayerVersion(swfVersionStr)) { // create SWF
-						var obj = createSWF(att, par, replaceElemIdStr);
-						if (att.id == replaceElemIdStr) {
-							setVisibility(replaceElemIdStr, true);
-						}
-						callbackObj.success = true;
-						callbackObj.ref = obj;
-					}
-					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
-						att.data = xiSwfUrlStr;
-						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
-						return;
-					}
-					else { // show alternative content
-						setVisibility(replaceElemIdStr, true);
-					}
-					if (callbackFn) { callbackFn(callbackObj); }
-				});
-			}
-			else if (callbackFn) { callbackFn(callbackObj);	}
-		},
-		
-		switchOffAutoHideShow: function() {
-			autoHideShow = false;
-		},
-		
-		ua: ua,
-		
-		getFlashPlayerVersion: function() {
-			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
-		},
-		
-		hasFlashPlayerVersion: hasPlayerVersion,
-		
-		createSWF: function(attObj, parObj, replaceElemIdStr) {
-			if (ua.w3) {
-				return createSWF(attObj, parObj, replaceElemIdStr);
-			}
-			else {
-				return undefined;
-			}
-		},
-		
-		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
-			if (ua.w3 && canExpressInstall()) {
-				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
-			}
-		},
-		
-		removeSWF: function(objElemIdStr) {
-			if (ua.w3) {
-				removeSWF(objElemIdStr);
-			}
-		},
-		
-		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
-			if (ua.w3) {
-				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
-			}
-		},
-		
-		addDomLoadEvent: addDomLoadEvent,
-		
-		addLoadEvent: addLoadEvent,
-		
-		getQueryParamValue: function(param) {
-			var q = doc.location.search || doc.location.hash;
-			if (q) {
-				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
-				if (param == null) {
-					return urlEncodeIfNecessary(q);
-				}
-				var pairs = q.split("&");
-				for (var i = 0; i < pairs.length; i++) {
-					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
-						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
-					}
-				}
-			}
-			return "";
-		},
-		
-		// For internal usage only
-		expressInstallCallback: function() {
-			if (isExpressInstallActive) {
-				var obj = getElementById(EXPRESS_INSTALL_ID);
-				if (obj && storedAltContent) {
-					obj.parentNode.replaceChild(storedAltContent, obj);
-					if (storedAltContentId) {
-						setVisibility(storedAltContentId, true);
-						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
-					}
-					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
-				}
-				isExpressInstallActive = false;
-			} 
-		}
-	};
-}();