var fDesc=new Array();
fDesc[1] = "and user needs more communication serial ports. The application creates virtual serial RS232 ports with exactly the same as real serial ports. Applications that work with real serial ports will never feel any difference when using these virtual ports.";
fDesc[2] = "Virtual Serial Port Driver is installed, for applications involving GPRS devices, user PC can be set to operate in TCP Server mode, initializing the connection when sending RS232 data to the remote port, the converter sets the serial connection.";
fDesc[3] = "emulation. Created virtual serial port looks like real serial port for other Windows applications. Compatible with VB, VC++, C++ Builder and Delphi.";
fDesc[4] = "turning your computer into low-cost terminal server. So, any serial port device connected to COM port could be accessed from anywhere in the world.";
fDesc[6] = "which will be virtually connected to each other via virtual null-modem cable.";
fDesc[7] = "modem cables are not required. You can connect any number of virtual port pairs. It's very useful for debugging.";
fDesc[8] = "data from real serial port simultaneously, as well as send data to it.";
fDesc[9] = "Builder. Just put it on a form and you've got all the functionality you need to access an RS232 port.";
fDesc[10] = "Program creates and connects up to 254 virtual serial ports at a time. Physical COM ports can be connected over the network as well.";
fDesc[11] = "well as join multiple serial ports into one. The unique feature of this version is many-to-many ports splitting/redirection.";
fDesc[12] = "software or exchange data between a TCP/IP application and an old-fashioned program that doesn't support TCP/IP.";
fDesc[14] = "sent to redirected COM port would be received by redirection port and vice versa. It works under almost all modern Windows OS versions.";
fDesc[15] = "time, to create unlimited virtual serial ports, to deliver high speed data exchange with virtual serial ports and to configure ports bundles.";
function tCollapseAll(maxID)
{
document.getElementById("alls_action").innerHTML = "Expand descriptions";
var id=1;
for (id=1; id <= maxID; id++)
{
if (document.getElementById("desc_" + id))
tShowHide(id, 2);
}
}
function tExpandAll(maxID)
{
document.getElementById("alls_action").innerHTML = "Collapse descriptions";
var id=1;
for (id=1; id <= maxID; id++)
{
if (document.getElementById("more_" + id))
tShowHide(id, 1);
}
}
function tShowHide(id, show)
{
var s = document.getElementById("more_" + id);
if ((s.innerHTML!=fDesc[id] || show==1) && show!=2)
{
s.innerHTML = fDesc[id];
}
else
{
s.innerHTML = '...';
}
}