function setupBalloons() {
makeBalloon("display",250,"Esta funcionalidad permite al usuario la posibilidad de mostrar su pantalla y los cambios que en ella se sucedan a otro usuario, ya sea de la misma red o de una red pública.");

makeBalloon("d2",250,"Con un par de clicks, y sin necesidad de programas o conocimientos adicionales, usted puede compartir su computadora con otro usuario, que adquiere acceso remoto a su computadora.");


makeBalloon("d3",250,"Esta herramienta es la manera más sencilla de hacerle saber a todos las diferentes maneras de ponerse en contacto con usted. En solo unos segundos usted puede enviar a quien quiera un e-mail personalizado incluyendo su cuenta en cada una de las Redes de IM que tenga configuradas.");

makeBalloon("d4",250,"Agregue interoperabilidad al Cliente de IM y tendrá cinco programas de IM en uno. Con un solo Cliente de IM usted podrá contactar personas de su propia red así como también de las redes públicas: AOL, ICQ, MSN y Yahoo.");

makeBalloon("d5",250,"Poderosa herramienta para el mercado corporativo que le da al Administrador la posibilidad de grabar cada mensaje enviado o recibido por cualquier usuario de la red. Todos los mensajes son guardados en el IM Server para propósitos de auditoria. Luego, la Consola de Administración basada en web facilita el trabajo de chequear la información grabada.");


makeBalloon("d6",250,"Sin ningún software o conocimiento adicional, envíe cualquier tipo de archivo a usuarios de cualquier red con sólo un par de clicks.");

makeBalloon("d7",250,"Comience un chat con más de uno de sus contactos para incrementar la interacción. Con la posibilidad de invitar a la misma sesión de chat a usuarios de cada una de las redes públicas.");
makeBalloon("d8",250,"Incluya coloridos emoticons en sus mensajes para expresar sus emociones al escribir mensajes.");
makeBalloon("d9",250,"Automáticamente comience una sesión de chat encriptada dentro de la Red de IM (no en redes públicas) para comunicaciones más seguras.");
makeBalloon("d10",250,"Todas las comunicaciones entre cliente y servidor son encriptadas para total seguridad. La encripción hace imposible para cualquier persona que no sea el receptor leer el mensaje.");
makeBalloon("d11",250,"Automáticamente envíe archivos encriptados dentro de la Red de IM (no en redes públicas) para una transmisión segura manteniendo la privacidad del contenido de sus archivos.");



makeBalloon("d12",250,"Cree hasta cinco diferentes mensajes de respuesta automáticos para enviar a los usuarios que tratan de contactarlo mientras se encuentra No disponible.");
makeBalloon("d13",250,"Para una experiencia multimedia completa, nuestra Solución de IM le da al usuario la posibilidad de mantener conferencias de voz y video. La conferencia de voz y video es posible a través de la integración con Netmeeting (programa de conferencia de voz y video muy popular incluido en todas las versiones de Windows desde Windows 98).");
makeBalloon("d14",250,"Le da al usuario una gran variedad de opciones al indicar los parámetros de búsqueda, incluyendo la opción de listar a todos los usuarios o solo los que se encuentren conectados en ese momento.");
makeBalloon("d15",250,"El usuario podrá conectarse con el mismo nombre de usuario desde cualquier PC sin necesidad de volver a agregar los usuarios de a su lista de contactos. Simplemente se conecta con su nombre de usuario y su lista de contactos aparecerá.");
makeBalloon("d16",250,"Le permite a cada usuario separar sus contactos en diferentes carpetas para facilitar la visualización. De esta manera el usuario puede clasificar los contactos en distintas categorías (por ejemplo compañeros de trabajo, familiares, amigos, etc.).");
makeBalloon("d17",250,"En cualquier momento el usuario puede revisar en qué lista de contactos está registrado, e incluso seleccionar ser removido de alguna de ellas.");
makeBalloon("d18",250,"Posibilidad de guardar todos los mensajes enviados y recibidos en la computadora, separados por carpeta para facilitar la administración. Esta funcionalidad le da la posibilidad de revisar mensajes previos.");
makeBalloon("d19",250,"El usuario tiene diferentes opciones de estados de conexión, pudiendo elegir entre estar Ocupado y No Disponible cuando no desea ser molestado. El usuario incluso puede seleccionar estar Invisible y aparecer como Desconectado para los demás usuarios, pero permaneciendo conectado. Más aún, si la computadora no tiene actividad por cinco minutos el usuario será automáticamente puesto como No Disponible.");
makeBalloon("d20",250,"La actualización automática es muy simple. Cuando un usuario se conecta y hay una nueva versión disponible, una ventana pop-up le notificará inmediatamente de la existencia de una actualización disponible. De ésta manera los usuarios se mantienen actualizados sin ningún esfuerzo.");
makeBalloon("d21",250,"Nuestra Solución de IM puede ser desarrollada en cualquier idioma occidental u oriental single-byte haciendo el Cliente de IM accesible a un rango de usuarios mayor. Más aún, la interfase de instalación puede darle al usuario la posibilidad de elegir entre varios idiomas.");
makeBalloon("d22",250,"El usuario puede cambiar entre skins existentes con facilidad y sin necesidad de reiniciar la aplicación. Con un solo click el nuevo skin estará listo.");
makeBalloon("d23",250,"Nuestra poderosa Tecnología de Tunneling (con patente pendiente) hace posible que todas las funcionalidades, incluidas en el Cliente IM, funcionen detrás de Firewalls, NATs o Proxies.");
makeBalloon("d24",250,"Para un total control de la Red de IM y/o del IM Server, el Administrador de IM puede acceder a la Consola de Administración completamente basada en web con todas las funcionalidades configurables. Desde crear un nuevo usuario a personalizar los e-mails que los usuarios reciben al registrarse. Ya que la Consola de Administración es basada en web, el Administrador puede accederla desde cualquier computadora.");
makeBalloon("d25",250,"A través del encapsulado sobre TCP, el Cliente de IM puede conectarse aún cuando se encuentre detrás de un Firewall o NAT. Ampliándose así el rango de usuarios que pueden conectarse al servicio de IM.");
makeBalloon("d26",250,"A través del encapsulado sobre HTTP, el Cliente de IM puede conectarse aunque se encuentre detrás de un Proxy HTTP. Ampliándose así el rango de usuarios que pueden conectarse al servicio de IM.");
makeBalloon("d27",250,"Este paquete de personalización incluye:<p>• Su propia Solución de IM: El Cliente de IM tendrá su propia marca.<br>• Personalización de skin básica: Su skin será desarrollado basado en un skin pre-diseñado, integrando su propio logo, customizando colores e incluyendo sus propios íconos.<br>• Interfase de instalación personalizada: Usted puede seleccionar el nombre de carpeta por defecto y el instalador incluirá una imagen personalizada.<br>• Personalización del Centro de Comunicación Web: El Centro de Comunicaciones Web del usuario es personalizado con su propia marca para coincidir con el estilo de su sitio web.");
makeBalloon("d28",250,"Este paquete de personalización incluye:<p>• Su propia Solución de IM: El Cliente de IM tendrá su propia marca.<br>• Personalización de skin completa: Usted decide la forma, diseño y colores del skin, que podrá incluir sus propios íconos e incluso integrar contenido web o servicios provistos por su empresa en línea.<br>• Interfase de instalación personalizada: Usted puede seleccionar el nombre de carpeta por defecto y el instalador incluirá una imagen personalizada.<br>• Personalización del Centro de Comunicación Web: El Centro de Comunicaciones Web del usuario es personalizado con su propia marca para coincidir con el estilo de su sitio web.");
makeBalloon("d29",250,"Incluyendo Redes Virtuales de IM podrá tener más de una Red de IM en el mismo IM Server. Cada Red Virtual de IM funciona como una red separada, independiente y privada.");

makeBalloon("d30",250,"Dos grandes herramientas que combinadas le dan al usuario la posibilidad de ser contactado en cualquier momento por cualquier persona. A partir de la creación de su firma de E-mail, y su inclusión de forma automática en todos los correos que envíe, el usuario permite a sus destinatarios el acceso mediante un click a su Centro de Comunicaciones Web; desde donde estos podrán iniciar una sesión de chat o simplemente enviarle un mensaje a su Cliente de IM.");
makeBalloon("d31",250,"El IM Server puede ser integrado con directorios LDAP de manera de facilitar el registro de usuarios. De ésta manera el usuario será automáticamente registrado al Servicio de IM cuando sea incorporado al directorio LDAP.");

makeBalloon("d32",250,"El IM Server puede ser integrado con cualquier base de datos de manera de facilitar el registro de usuarios. De ésta manera el usuario será automáticamente registrado al Servicio de IM cuando sea incorporado a la base de datos.");
makeBalloon("d33",250,"Podemos agregar cualquier idioma single-byte oriental u occidental al Cliente de IM. El usuario deberá seleccionar el idioma al instalar el programa.");
makeBalloon("d34",250,"En cualquier momento durante la instalación de su propio IM Server, usted podrá contactar a nuestro Equipo de Soporte por e-mail o por teléfono para recibir una respuesta a cualquier pregunta o duda que pueda surgir.");

makeBalloon("d35",250,"Usted recibirá soporte por e-mail de nuestro Equipo de Soporte durante un año. De ésta manera usted recibirá una respuesta a cualquier pregunta o duda que pueda tener, maximizando la eficiencia del uso de su Servicio de IM.");
makeBalloon("d36",250,"Usted tendrá acceso gratuito a cualquier actualización lanzada durante un período de un año. Esto le asegura que su Solución de IM estará al día sin ningún costo adicional.");
makeBalloon("d37",250,"Usted tendrá acceso gratuito a cualquier actualización lanzada durante un período de un año. Esto le asegura que su Solución de IM estará al día sin ningún costo adicional.");
makeBalloon("d38",250," The IM Server can be integrated to an LDAP directory in order to facilitate users’ registration. In this way user will be automatically registered to the IM Service when they are incorporated to the LDAP directory.");
makeBalloon("d39",250," The IM Server can be integrated to any database in order to facilitate users’ registration. In this way user will be automatically registered to the IM Service when they are incorporated to the database.");
makeBalloon("d40",250," In case that the primary server fails, a secondary server (backup server) will start up automatically so contacts will always stay on-line.");
makeBalloon("d41",250," We can add any Oriental or Occidental single-byte language to the IM Client. The user will be prompted to select the language when installing the program.");
makeBalloon("d42",250," At any moment during installation of your own IM Server, you will be able to contact our Support Team by e-mail or by phone to receive an answer to any question or doubt that may arise.");
makeBalloon("d43",250," You will receive unlimited e-mail support from our Support Team during a one-year period. In this way you will be able to receive an answer to any question or doubt that you may have, maximizing the efficiency of the IM Client’s use.");
makeBalloon("d44",250," You will have free access to any upgrade released during a one-year period. This assures you that your IM Solution will remain up to date with any additional cost.");
makeBalloon("d45",250," You will have free access to any upgrade released during a one-year period. This assures you that your IM Solution will remain up to date with any additional cost.");


}

function onBalloonCall(id,event) {
  if (id == "christiaan") {
    var x = 0;
    var y = 0;
    if (window.pageXOffset || window.pageYOffset) {
      x = window.pageXOffset;
      y = window.pageYOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
      x = document.body.scrollLeft;
      y = document.body.scrollTop;
    }
    putBalloon("photo",x,y);
  }
}

function onBalloonHide(id) {
  if (id == "christiaan")
    removeBalloon("photo");
}
/****************************************************************
 * Balloons in JavaScript. 
 *   
 * Balloon000515
 * by Christiaan Hofman, May 2000
 *   
 * This code is based upon the code by Michelle Wyner, provided by 
 * by Netscape Communications Corporation, copyright 1998. 
 *   
 * You may use or modify this code provided that this copyright notice
 * appears on all copies.
 *   
 *  First load this file using a SCRIPT tag. 
 *  Then create balloons using (either in head section or at the end):
 *   
 *    makeBalloon( "id", width, "text" );
 *   
 *  Link to a balloon in the text using (within SCRIPT tags): 
 *   
 *    linkBalloon( "id", "text" [, "status", "href"] );
 *      
 *  The "status" is the text in the statusline. The default is given by 
 *  var balloonStatus = "Tip". 
 *  Special values: "id", for the id, and "href" for the link URL. 
 *  Setting the "href" argument makes it a clickable link. 
 *   
 *  You can change the styles of the balloons (DIV.balloon) and the 
 *  links to the balloons (A.tip and A.linktip) using the STYLE tag. 
 *  This must be done after loading the 'balloon.js' file. 
 *   
 *===============================================================
 *  Example: 
 *---------------------------------------------------------------
 *   
 *  <HTML>
 *  <HEAD>
 *
 *  <SCRIPT SRC="http://www.rci.rutgers.edu/~hofman/js/balloon.js"></SCRIPT>
 *  <STYLE><!--
 *  DIV.balloon { background-color:ffffcc; layer-background-color:ffffcc; }
 *  --></STYLE>
 *  <SCRIPT> 
 *    function setupTips() { 
 *        makeBalloon('ex1',100,'This is the first Balloon');
 *        makeBalloon('ex2',100,'This is the second Balloon');
 *        ...
 *    }   
 *  </SCRIPT> 
 *
 *  </HEAD> 
 *  <BODY> 
 *
 *  Some HTML and text, ...  
 *   
 *  ... when hovering the 
 *  <SCRIPT>linkBalloon('ex1','first balloon')</SCRIPT>, 
 *  a balloon shows up ... 
 *   
 *  ... when clicking the 
 *  <SCRIPT>linkBalloon('ex2','second balloon','href','http://www.rci.rutgers.edu/~hofman')</SCRIPT>, 
 *  it works also as a link ... 
 *   
 *  ... and some more HTML.  
 *   
 *  <SCRIPT> 
 *    setupTips()
 *  </SCRIPT> 
 *   
 *  </BODY>
 *  </HTML>
 *   
 ****************************************************************
 */

//  Sets the styles for the Balloons and links to the balloons. Always needed. 

//  Creates a new Balloon.
function makeBalloon( id, width, message ) {
    if (width) document.writeln('<STYLE TYPE="text/css"><!-- #'+id+' {width:'+width+'} --></STYLE>');
    document.writeln('<DIV CLASS="balloon" ID="'+id+'">'+message+'</DIV>');
}

//  Creates a link to a Balloon.
function linkBalloon( id, text, status, href ) {
    status = status || balloonStatus;
    if (href) {
        var cls = 'linktip';
        if (status == 'href')  status = null;
    } else {
        var cls = 'tip';
        href = 'javascript:void(toggleBalloon(\''+id+'\'))';        
        if (status == 'href')  status = '';
    }
    if (status == 'id')  status = id;
    var outstatus = (typeof(status) == 'string')? 'self.status=\'\';return true' : '';
    status = (typeof(status) == 'string')? 'self.status=\''+status+'\';return true' : '';
    document.write('<A HREF="'+href+'" CLASS="'+cls+'"'+
       ' onMouseOver="showBalloon(\''+id+'\',event);'+status+'"'+
       ' onMouseOut="hideBalloon(\''+id+'\',event);'+outstatus+'">'+
       text +'</A>');
}

//  Standard call for a Balloon, called by the link at mouseover. 
function showBalloon( id, event ) {
    var x = 10, y = 10;
    if (event) {
        if (document.all) {
            x = document.body.scrollLeft + document.documentElement.scrollLeft + event.clientX + 10;
            y = document.body.scrollTop + document.documentElement.scrollTop + event.clientY + 10;
        } else if (document.layers || document.getElementById) {
            x = event.pageX + 10;
            y = event.pageY + 10;
        }
    }
    putBalloon(id, x, y);
    if (window.onBalloonCall)  window.onBalloonCall(id, event);             
}

//  Standard removal of a Balloon, called by the link at mouseout. 
function hideBalloon( id, event ) {
    removeBalloon(id);
    if (window.onBalloonHide)  window.onBalloonHide(id, event);
}

//  The event handlers onBalloonCall and onBalloonHide can be set to perform appropriate actions. 
//  When another Balloon is called or removed, use the following two functions (to avoid a loop). 
function putBalloon( id, x, y ) {
    var l;
    if (document.layers) {
        l = document.layers[id];
        l.left = Math.min(Math.max(x, window.pageXOffset), window.pageXOffset + window.innerWidth - l.clip.width);
        l.top = Math.min(Math.max(y, window.pageYOffset), window.pageYOffset + window.innerHeight - l.clip.height);
        l.visibility = "visible";
        l.zIndex = 200;
    } else if (document.all) {
        l = document.all[id];
        l.style.pixelLeft = Math.min(Math.max(x, document.body.scrollLeft + document.documentElement.scrollLeft), document.body.scrollLeft + document.documentElement.scrollLeft + document.body.clientWidth - l.offsetWidth);
        l.style.pixelTop = Math.min(Math.max(y, document.body.scrollTop + document.documentElement.scrollTop), document.body.scrollTop + document.documentElement.scrollTop + document.body.clientHeight - l.offsetHeight);
        l.style.visibility = "visible";
        l.style.zIndex = 200;
    } else if (document.getElementById) {
        l = document.getElementById(id);
        l.style.left = Math.min(Math.max(x, window.pageXOffset), window.pageXOffset + window.innerWidth - l.offsetWidth) +"px";
        l.style.top = Math.min(Math.max(y, window.pageYOffset), window.pageYOffset + window.innerHeight - l.offsetHeight) +"px";
        l.style.visibility = "visible";
        l.style.zIndex = 200;
    }
}

//  Removal of a Balloon. 
function removeBalloon( id ) {
    if (document.layers) {
        var l = document.layers[id];
    } else if (document.all) {
        var l = document.all[id].style; 
    } else if (document.getElementById) {
        var l = document.getElementById(id).style;
    }
    if (!l) return;
    if (!l.fixed)  l.visibility = "hidden";
}

//  Toggles the fixation of the Balloon.
function toggleBalloon( id ) {
    if (document.layers) {
        var l = document.layers[id];
    } else if (document.all) {
        var l = document.all[id].style; 
    } else if (document.getElementById) {
        var l = document.getElementById(id).style;
    }
    if (!l) return;
    if (l.fixed = !l.fixed)  l.zIndex = 1;
}

//  The default balloon status text. 
window.balloonStatus = "Tip";

//  The default balloon and link styles. 
document.writeln( '<STYLE TYPE="text/css"><!--',
    'DIV.balloon {',
    ' position:absolute; visibility:hidden; display:block; width:150px; height:auto;',
    ' background-color:lightyellow; layer-background-color:lightyellow;',
    ' color:black; font-family:helvetica; padding:5px;',
    ' border-style:solid; border-width:1px; border-color:black; } ',
    'A.tip:link { text-decoration:none; color:green; cursor:help; } ',
    'A.tip:visited { text-decoration:none; color:green; cursor:help; } ',
    'A.tip:active { text-decoration:none; color:green; cursor:help; } ',
    'A.tip:link { text-decoration:none; color:green; cursor:help; } ',
    'A.tip:hover { color:red; } ',
    'A.linktip:link { color:green; } ',
    'A.linktip:visited { color:darkgreen; } ',
    'A.linktip:active { color:green; } ',
    'A.linktip:hover { color:red }',
    '--></STYLE>' );

