/**
 * funciones.js
 * Descripcion: Contiene las funciones de Javascript necesarias para el funcionamiento general del sistema
 *
 * Kme_2_4_0
 * Nuevos Medios - ParqueSoft Cali
 *
 * Funciones:
 *    posXCentrada()
 *    posYCentrada()
 *    abrirVentanaImprimir()
 *    abrirVentanaKme()
 *    abrirVentana()
 *    resaltarFila ()
 *    restaurarFila ()
 *    texto()
 *    enviarNombre()
 *    enviarRuta()
 *    ventanaEmergente()
 *    conmutarTodos()
 *    pagina()
 *    enviarCodigo()
 *    enviarCodigoTipo()
 *    enviarCodigoResultadoEval()
 *    llamarFormulario()
 *    mandarCodigo()
 *    verArchivo()
 *    doNothing()
 *    disableRightClick()
 *    cargarYBloquear()
 *    mostrarAyuda()
 *    checkEmail()
 *    imprimirInforme()
 *    guardarDatosEditor()
 * Modificado por: Maria del Pilar Fiallo 3-jun-2004
 */

var ANCHO_VENTANA = 800;
var ALTO_VENTANA = 600;
var RUTA_WEB = "/Kme"
var message = ""; 
var RUTA_WEB_WEBKIT= "http://kme.coomeva.com.co/WK/Kme/forms/"

document.onkeydown = function()
{ 
  if(window.event && window.event.keyCode == 116)
   { 
         window.event.keyCode = 505; 
   } 
  if(window.event && window.event.keyCode == 505)
   { 
	return false;
   }
}
/*if (navigator.appName == "Netscape") {
	window.captureEvents (Event.KEYDOWN);
	window.onkeydown=pulsar;
	}

/*function keyPressed(evt) {
  var F5 = 116;
   if (evt.which == F5) {
   }}*/
/*   
function pulsar() { 
    tecla=(document.all) ? e.keyCode : e.which; 
    if (tecla==115 ) 
        return false; 
}*/

function clickIE(){ 
    if (document.all){ 
                 (message); 
		 return false; 
     } 
   } 
	     
function clickNS(e){ 
     if (document.layers || (document.getElementById && !document.all)){ 
     if (e.which == 2 || e.which == 3){ 
        (message); 
        return false; 
     } 
    } 
} 

if (document.layers){ 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown = clickNS; 
  } else { 
    document.onmouseup = clickNS; 
    document.oncontextmenu = clickIE; 
  } 
  document.oncontextmenu = new Function("return false")


function cerrarKme(p_mensaje)
{ 
  alert (p_mensaje)
  window.close()
  top.close()		
	
}


function replaceCadena(str){
/*
* Funcion que reemplaza el caracter < por &lt; y el \n por <br />
* Modificado por: Maria del Pilar Fiallo R. 31-Enero-2005
*/
   str=str.replace(/</gi,"&lt;");
   return str;
 }

 function reformat(p_campo){
/*
* Funcion qeu formatea una cadena para que codigo html pueda ser visualizado
* Modificado por: Maria del Pilar FIallo R. 31-Enero-2005
*/
 	p_campo.value=replaceCadena(p_campo.value);
 }

/*---------------------------------------------------------------------*/
// Hace que los radio button se comporten como tal cuando tienen nombre distinto

function radioB(valor)
{
    for(i=0; i<document.forms[0].length; i++)
    {
		if(document.forms[0].elements[i].type == 'radio')
        {
			if(document.forms[0].elements[i].name != valor)
            {
				document.forms[0].elements[i].checked = false;
			}
		}
	}
}
/*---------------------------------------------------------------------*/
/* Usada para evaluar los campos de correo en las notificaciones       */
function ccValido()
{
		p_email = document.form_modificar.p_copia.value
		if (p_email == "") 
		{
			document.form_modificar.submit()
		}
		else 		
		{			
			if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(p_email))
			{
				document.form_modificar.submit()
			}
			else
			{
				alert("Introduzca un correo electrónico válido")
			}
		}	
}
/*---------------------------------------------------------------------*/
function justificacionval() 
	{
		if (document.form_transferir.p_justificacion.value == "") 
		{
			window.alert('Por favor escriba su comentario del curso'); 
			document.form_transferir.p_justificacion.focus(); 
		}
		else
		{
			document.form_transferir.submit()
		}
	}
/*---------------------------------------------------------------------*/
function posXCentrada(p_anchoVentana)
/*
* Calcula la posici?n en X de la ventana con respecto a la pantalla para que quede centrada
* Modificado por: Andres Meza - 10-feb-2004
*/
{
	if (!p_anchoVentana) // Si no viene un tamano, usa uno predeterminado
	{
		p_anchoVentana = ANCHO_VENTANA;
	}
	posX = 0;
	if (screen.width > p_anchoVentana)
	{
		posX = Math.floor((screen.width - p_anchoVentana) / 2);
	}

	return posX;
}

/*---------------------------------------------------------------------*/
function posYCentrada(p_altoVentana)
/*
* Calcula la posici?n en Y de la ventana con respecto a la pantalla para que quede centrada
* Modificado por: Andres Meza - 10-feb-2004
*/
{
	if (!p_altoVentana) // Si no viene un tamano, usa uno predeterminado
	{
		p_altoVentana = ALTO_VENTANA;
	}
	posY = 0;
	if (screen.availHeight > p_altoVentana)
	{
		posY = Math.floor((screen.availHeight - p_altoVentana) / 2);
	}
	return posY;
}

/*---------------------------------------------------------------------*/
function abrirVentanaImprimir(p_url)
/*
* Funcion que abre una ventana emergente sin barras de herramientas de acuerdo con el URL
* Modificado por: Maria del Pilar FIallo R. 09-Ago-2004
*/
{

	if (!p_url) // Si no viene un url, carga uno predeterminado
	{
	 p_url = RUTA_WEB + "/cargando.html"
	}
	ventanaImprimibleKme = window.open(p_url,
	                                   "ventanaImprimibleKme",
					   "width="+ANCHO_VENTANA+",height="+ALTO_VENTANA+
					   ",toolbars=no,scrollbars=yes,"+
					   "screenX="+posXCentrada()+",screenY="+posYCentrada()+
					   ",resizable=yes,status=yes" );
}

/*---------------------------------------------------------------------*/
function abrirVentanaKme(p_url)
/*
* Funcion que abre una ventana emergente sin barras de herramientas de acuerdo con el URL
* Modificado por: Maria del Pilar FIallo R. 09-Ago-2004
*/
{
	if (!p_url) // Si no viene un url, carga uno predeterminado
	{
	 p_url = RUTA_WEB + "/cargando.html"
	}
	ventanaKme = window.open(p_url, "ventanaKme",
					   "width="+ANCHO_VENTANA+",height="+ALTO_VENTANA+
					   ",toolbars=no,scrollbars=yes,"+
					   "screenX="+posXCentrada()+",screenY="+posYCentrada()+
					   ",resizable=yes,status=yes" );
}

/*---------------------------------------------------------------------*/
function abrirVentana(p_url)
/*
* Funcion que abre una ventana con el p_url
* Modificado por: Sandra M. Ruiz 13-junio-2003
*/
{
	otherWindow = open(p_url);
}

/*---------------------------------------------------------------------*/
function resaltarFila (p_fila)
/*
* Funci?n que recupera de la hoja de estilos el color del fondo de una
* fila resaltada
* Modificado por: todos =P 21-jul-2003
*/
{
	  p_fila.style.background=document.styleSheets[0].rules[0].style.color
}

/*---------------------------------------------------------------------*/
function restaurarFila (p_fila)
/*
* Funci?n que recupera de la hoja de estilos el color del fondo de una
* fila resaltada
* Modificado por: todos =P 23-jul-2003
*/
{
	  p_fila.style.background=document.styleSheets[0].rules[1].style.color
}

/*-------------------------------------------------------------------------*/
function texto(textArea, longitud)
/*
* Funci?n que envia el codigo de material (codigo) a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Carolina Samac? Romero 19 de mayo-2003
*/
{
	alert (textArea.value)
   /*if (textArea.value.length > longitud)
   {
       textArea.value = textArea.value.substring(0,longitud);
	}*/
}

/*---------------------------------------------------------------------*/
function enviarNombre(nombreFormulario, nombre)
/*
* Funci?n que envia el nombre de un archivo a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Maria del Pilar Fiallo R. 19-May-2003
*/
{
    document.forms[nombreFormulario].p_nombre.value=nombre
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function enviarRuta(nombreFormulario, ruta)
/*
* Funci?n que envia la ruta actual del usuario a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Maria del Pilar Fiallo R. 16-May-2003
*/
{

    document.forms[nombreFormulario].p_ruta.value=ruta
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function ventanaEmergente(p_url)
/*
* Funci?n que abre una ventana emergente con la informaci?n que venga por parametro
* Modificado por: Maria del Pilar Fiallo R. 02-abr-2003
*/
{
	imagen = new Image();
	imagen.src = p_url

	window2 = open("","ventana_imagen","height=" + imagen.height + ",width=" + imagen.width + ",menubar=no,resizable=no,scrollbars=no,toolbar=no,left=10,top=0,screenY=0");
	window2.document.write("<head><title>KME</title></head> <body leftmargin='0' topmargin='0'><img src=" + p_url + "></body>")

}

/*---------------------------------------------------------------------*/
function conmutarTodos(p_campo)
/*
* Funci?n que selecciona o deselecciona todos los campos check de un listado
* Modificado por: Maria del Pilar Fiallo R. 19-May-2003
*/
{
	estado = p_campo.checked
	lista = p_campo.form.elements
	longitud = lista.length
	for(i=0; i<longitud; i++)
	{
		if(lista[i].name.substring(0,2) == 'p_')
		{
			lista[i].checked=estado
		}
	}


}

/*---------------------------------------------------------------------*/
function pagina(codigo)
/*
* Funci?n que integra los botones Primero, Anterior, Siguiente, Ultimo, para
* llenar el mismo  input (p_irA) y actuar como si el boton "Ir A" hubiera
* sido pulsado (click)
* Modificado por: Maria del Pilar Fiallo R. 18-feb-2003
*/
{
	document.form_pagina.p_irA.value=codigo
	document.form_pagina._action_irA.click()
}

/*---------------------------------------------------------------------*/
function enviarCodigo(nombreFormulario, codigo)
/*
* Funci?n que envia el codigo de material (codigo) a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Nates 01-marzo-2003
*/
{
    document.forms[nombreFormulario].p_codigo.value=codigo
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function enviarCodigoTipo(nombreFormulario, codigo, tipoPregunta)
/*
* Funci?n que envia el codigo de una pregunta con su tipo a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Maria del Pilar Fiallo 01-abril-2003
*/
{
	document.forms[nombreFormulario].p_codigo.value=codigo
	document.forms[nombreFormulario].p_tipoPregunta.value=tipoPregunta
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function enviarCodigoResultadoEval(nombreFormulario, codigo, tipoPregunta, codEvaluacion, maxPres)
/*
* Funci?n que envia el codigo de una pregunta con su tipo a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Maria del Pilar Fiallo 01-abril-2003
*/
{
	document.forms[nombreFormulario].p_codigo.value=codigo
	document.forms[nombreFormulario].p_tipoPregunta.value=tipoPregunta
	document.forms[nombreFormulario].p_codEvaluacion.value=codEvaluacion
	document.forms[nombreFormulario].p_maxPres.value=maxPres
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function llamarFormulario(nombreFormulario)
/*
* Funci?n que actua como submit para un formulario (nombreFormulario)
* Modificado por: Maria del Pilar Fiallo R. 18-feb-2003
*/
{
	document.forms[nombreFormulario].submit()
}
/*---------------------------------------------------------------------*/
function cerrarSesion(nombreFormulario)
/*
* Funcion que verifica si el usuario desea salir de la aplicación y en caso
* afirmativo llama al formulario que cierra la sesion
* Modificado por: MPF 4-Jun-2008
*/

	{
	c = confirm('Esta seguro que desea salir');
	if (c)
	{document.forms[nombreFormulario].submit()}
	}
/*---------------------------------------------------------------------*/
function mandarCodigo(nombreFormulario, codigo)
/*
* Funci?n que envia el codigo de material (codigo) a un determinado formulario
* (nombreFormulario) para que este efectue el submit
* Modificado por: Maria del Pilar Fiallo R. 18-feb-2003
*/
{
        document.forms[nombreFormulario].p_codigo_material.value=codigo
        document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function verArchivo(nombreFormulario, nombreArchivo)
/*
* Funci?n que envia el nombre del archivo a visualizar
* (nombreFormulario) para que este efectue el submit
* Modificado por: Sandra M. Ruiz R. 27-oct-2003
*/
{
        document.forms[nombreFormulario].p_nombre_archivo.value=nombreArchivo
        document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function doNothing(e)
{
	if(top.frames["mainFrameKME2004"].document.layers || (top.frames["mainFrameKME2004"].document.getElementById && ! top.frames["mainFrameKME2004"].document.all))
	{
    	if (e.which==2||e.which==3)
    	{
      		return false;
    	}
  	}
  	else
  	{
    	return false;
  	}
}

/*---------------------------------------------------------------------*/
function disableRightClick()
/*
* Funci?n que abre deshabilita el bot?n derecho del mouse
* Modificado por: Sandra M. Ruiz 17-junio-2003
*/
{
	if(!top.frames["mainFrameKME2004"].document.rightClickDisabled) // initialize
    {
    	if(top.frames["mainFrameKME2004"].document.layers) // Netscape
    	{
      		top.frames["mainFrameKME2004"].document.captureEvents(Event.MOUSEDOWN);
      		top.frames["mainFrameKME2004"].document.onmousedown = doNothing;
    	}
    	else     // Explorer
			top.frames["mainFrameKME2004"].document.oncontextmenu = doNothing;
		setTimeout("disableRightClick()",2000);
    	return top.frames["mainFrameKME2004"].document.rightClickDisabled = true;
  	}
}

/*---------------------------------------------------------------------*/
function cargarYBloquear(p_ruta){
	top.mainFrameKME2004.location=p_ruta;
	setTimeout("disableRightClick()",1000);

}

/*---------------------------------------------------------------------*/
function mostrarAyuda(p_url)
{
	if (!p_url)
	{
	 p_url = "/kme/ayuda/introduction.html"
	}
	ventanaKme = window.open(p_url, "ayudas", 'width=800,height=550,scrollbars=yes,resizable=yes,menubar=no,status=yes,toolbar=no');
}

/*---------------------------------------------------------------------*/
/* Valida las direcciones de correo suministrradas por los usuarios */
function checkEmail(p_email)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(p_email))
	{
	    return true
	}
	alert("Introduzca un correo electrónico válido")
	return false
}

/*---------------------------------------------------------------------*/
/*
* imprimirInforme: da el enfoque del frame superior e imprime el documento que se encuentra alli
* Modificado por: Sandra M. Ruiz 06-nov-2003
*/
function imprimirInforme()
{
	top.arriba.focus()
	top.arriba.print()
}

/*---------------------------------------------------------------------*/ 
function guardarDatosEditor(nombreFormulario, ruta)
/*
* Funcion que llama al formulario para guardar la informacion del editor
* Modificado por: Carolina Samaca Romero. 29-Ene-2004
*/
{
	document.forms[nombreFormulario].nombre_archivo.value=ruta;
	//alert("la ruta es: "+ ruta )
	guardar();
	//alert("voy a enviar el form")
	//alert("nombre del formulario  " +  nombreFormulario)
	document.forms[nombreFormulario].submit()
}

/*---------------------------------------------------------------------*/
function abrirVentanaCorreo(p_correoDestinatario, p_correoRemitente, p_url)
/*
* Funcion que abre una ventana emergente para mostrar la ventana de correo
* Modificado por: Carolina Samaca Romero - 02-Mar-2004
*/
{
	if (!p_url) // Si no viene un url, carga uno predeterminado
	{
	 p_url = RUTA_WEB + "/html/cargando.html"
	}
	ventanaCorreo = window.open(p_url+'?p_correoDestinatario='+p_correoDestinatario+'&p_correoRemitente='+p_correoRemitente+'&_action_llamar=llamar', "ventanaCorreo",
					   "width="+480+",height="+320+
					   ",toolbars=no,scrollbars=yes,"+
					   "screenX="+posXCentrada(480)+",screenY="+posYCentrada(320)+
					   ",resizable=no,status=yes" );
	
}

/*---------------------------------------------------------------------*/
function abrirVentanaForo(p_url)
/*
* Funcion que abre una ventana emergente sin barras de herramientas, para mostrar mensajes del Foro .
* Modificado por: Andres Nates - 15-Marzo-2004
*/

{
        /*if (!p_url) // Si no viene un url, carga uno predeterminado
        {
         p_url = RUTA_WEB + "/html/cargando.html"
        }*/
        ventanaForo = window.open(p_url, "ventanaForo",
                                           "width="+800+",height="+640+
                                           ",toolbars=no,scrollbars=yes,"+
                                           "screenX="+posXCentrada()+",screenY="+posYCentrada()+
                                           ",resizable=no,status=no" );
}

/*---------------------------------------------------------------------*/
function abrirVentanaForo(p_url,nombreFormulario)
/*
* Funcion que abre una ventana emergente sin barras de herramientas, para mostrar mensajes del Foro .
* Modificado por: Andres Nates - 15-Marzo-2004
*/

{
        p_url = RUTA_WEB + "/cargando.html"

        ventanaForo = window.open(p_url, "ventanaForo",
                                           "width="+800+",height="+640+
                                           ",toolbars=no,scrollbars=yes,"+
                                           "screenX="+posXCentrada()+",screenY="+posYCentrada()+
                                           ",resizable=no,status=no" );
        document.forms[nombreFormulario].submit()

}

/*---------------------------------------------------------------------*/

function transferirArchivo(p_alerta)
{
	alert (p_alerta)
  	document.form_transferir.submit()
}

/*---------------------------------------------------------------------*/
function abrirVentanaCanal(p_url)
/*
* Funcion que abre una ventana emergente para mostrar la ventana del canal chat
* Modificado por: Carolina Samaca - 17-Feb-2005
*/
{
        if (!p_url) // Si no viene un url, carga uno predeterminado
        {
         p_url = RUTA_WEB + "/html/cargando.html"
        }
         ventanaCanal = window.open(p_url, '',
                                           "width="+640+",height="+480+
                                           ",toolbars=no,scrollbars=yes,"+
                                           "screenX="+posXCentrada(640)+",screenY="+posYCentrada(480)+
                                           ",resizable=no,statusbar=no, menubar=no,directories=no" );
}
/*---------------------------------------------------------------------*/

function getJavaPluginVersion()
/*
* Funcion que encuentra la version del plugin de java
* Modificado por: Carolina Samaca - 23-Feb-2005
*/

{
    var version = -1

    var applet = document.DetectPluginApplet;
    if(applet)
    {
        version = document.DetectPluginApplet.getPluginVersion();
    }
    return version
}

function verificarVersion(p_version, p_versionNecesaria)
/*
* Funcion que verifica que la version del plugin sea mayor o igual a la necesaria
* Modificado por: Carolina Samaca - 23-Feb-2005
*/

{
	if (p_versionNecesaria<= p_version)
	 	/*document.form_seguir._action_seguir.click()*/
	    return true
	else
		return false
}

function verificarVersionFlash(p_version, p_versionNecesaria)
/*
* Funcion que verifica que la version del plugin sea mayor o igual a la necesaria
* Modificado por: Carolina Samaca - 23-Feb-2005
*/

{
	if (p_version!="")
    {
	    if (p_versionNecesaria<= p_version)
        return true
	}
	return false
}

function verificarNavegador(p_version, p_tipo)
/*
* Funcion que verifica que la version del plugin de flash sea mayor o igual a la necesaria
* Modificado por: Carolina Samaca - 24-Feb-2005
*/

{
	tipo= navigator.appCodeName
    version= navigator.appVersion
	cad = version.split(" ")
    ver = cad[0]
	if ((tipo== p_tipo) && (parseFloat(ver) >= parseFloat(p_version)))
	 	return true
    else
		return false
}



function verificarPlugins( p_versionNavegador, p_tipoNavegador, p_versionFlash)
/*
* Funcion que verifica los plugins
* Modificado por: Carolina Samaca - 9-Ene-2007
*/

{
	//java= verificarVersion(getJavaPluginVersion(), p_versionJava)
    navegador= verificarNavegador(p_versionNavegador, p_tipoNavegador)
	flash= verificarVersionFlash(document.formFlash.campoFlash.value, p_versionFlash)
    if (navegador && flash)
        {
	    document.form_seguir.submit()}
    else
    {
	 if (!navegador)
	 {
      mostrar('mensajeErrorNavegador')
	 }
	 if (!flash)
        {
			mostrar('mensajeErrorFlash')
         }

     mostrar('botonTerminar')	
   }
}
function cargarPlugin(p_ruta)
{
 if (navigator.javaEnabled()==true){
            document.write('<object id="DetectPluginApplet" classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="1" height="1">');
            document.write('<param name = "code" value = "DetectPluginApplet.class" />');
            document.write('<param name ="scriptable" value="true" />');
            document.write('<param name = "codebase" value = " ' + p_ruta + '" />');
            document.write('<param name = "type" value="application/x-java-applet;version=1.4" />');
            document.write('<param name = "mayscript" value="true" />');
            document.write('<comment>');
            document.write('<applet code="DetectPluginApplet.class" ');
            document.write('codebase=" '+ p_ruta + '"');
            document.write('height="1" ');
            document.write('id="DetectPluginApplet" ');
            document.write('name="DetectPluginApplet" ');
            document.write('width="1" ');
            document.write('mayscript="true">');
            document.write('</applet>');
            document.write('</comment> ');
            document.write('</object>');

}
else
mostrar('mensajeErrorJavaInactivo')
}

/*---------------------------------------------------------------------*/
/*---------------Funciones para el CHAT hechas en AJAX-----------------*/
/*---------------------------------------------------------------------*/
var req;
function setMessage(message) {
     var userMessageElement = top.frames["mainFrame"].document.getElementById("textoChat");
     userMessageElement.innerHTML =  message;
	 aqui=top.frames["mainFrame"].document.getElementById("fin").offsetTop
	 top.frames["mainFrame"].scrollBy(0,aqui)
	 top.frames["bottomFrame"].document.getElementById("p_texto").focus()
	 
	 }


function parseMessage() {
    var message = req.responseXML.getElementsByTagName("mensaje")[0];
    setMessage(message.childNodes[0].nodeValue);
}
function callback() {
    if (req.readyState == 4) {
        if (req.status == 200) {
		parseMessage()
            // update the HTML DOM based on whether or not message is valid
        }
    }
}

function llamado() {
    if (req.readyState == 4) {
        if (req.status == 200) {
		var message = req.responseXML.getElementsByTagName("message")[0];
		mensaje=message.childNodes[0].nodeValue;
		if (mensaje!=1){
	 	var userMessageElement = top.frames["mainFrame"].document.getElementById("textoChat");
    	userMessageElement.innerHTML =  'Error en la operacion';		
		}
            // update the HTML DOM based on whether or not message is valid
        }
    }
}

function agregarLinea(p_url) {
    var texto = document.getElementById("p_texto");
    var url = p_url + "formEscribirChat?p_texto=" + escape(texto.value);
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = llamado;
    req.send(null);
}

function refrescar(p_url) {
    var url = p_url + "formRefrescarChat";
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = callback;
    req.send(null);
	setTimeout("refrescar("+"'"+p_url+"'"+")", 1000);
}


function cargarListadoUsuarios(p_url) {
    var url = p_url + "formUsuariosConectadosChat";
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = finalizar;
    req.send(null);
	setTimeout("cargarListadoUsuarios("+"'"+p_url+"'"+")", 10000);
}

function finalizar() {
    if (req.readyState == 4) {
        if (req.status == 200) {
		var message = req.responseXML.getElementsByTagName("mensaje")[0];
		mensaje=message.childNodes[0].nodeValue;
	 	var userMessageElement = top.frames["rightFrame"].document.getElementById("listadoUsuarios");
    	userMessageElement.innerHTML =  mensaje;
		}
            // update the HTML DOM based on whether or not message is valid
        }
}
/*---------------------------------------------------------------------*/
/*---------------FIN DE FUNCIONES DEL CHAT-----------------------------*/
/*---------------------------------------------------------------------*/
function deshabilitarTodos(p_formulario, p_valor)
/*
* Funci?n que selecciona o deselecciona todos los campos check de un listado
* Modificado por: Carolina Samaca Romero 15-Sept-2005
*/
{
	lista = p_formulario.elements
	longitud = lista.length
	for(i=0; i<longitud; i++)
	{ 
		if(lista[i].name.substring(0,9) == 'botonChat')
		{
			lista[i].disabled=p_valor;
		}
	}
}

/*---------------------------------------------------------------------*/
function mostrarErroresWS(p_ruta)
{
	ventanaWS = window.open(p_ruta+'/tmp/erroresWS.txt', "errorWS", 'width=800,height=550,scrollbars=yes,resizable=no,menubar=no,status=yes,toolbar=no');
}

/*---------------------------------------------------------------------*/
function conmutarEncuestas(p_campo)
/*
* Funci?n que selecciona o deselecciona todos los campos check de un listado
* Modificado por: Maria del Pilar Fiallo R. 2-Feb-2007
*/
{
	estado = p_campo.checked
	lista = p_campo.form.elements
	longitud = lista.length
	for(i=0; i<longitud; i++)
	{
		if(lista[i].name.substring(0,2) == 'e_')
		{
			lista[i].checked=estado
		}
	}


}

/*******************************************************************************
**
** Redirecciona al listado de modulos.
** Usedo para redireccionar del contenido al listado de modulos, cuando se termina
** de ver el cotenido.
**
*******************************************************************************/
function redireccionar(p_ruta)
{
	parent.location=p_ruta
}

/*---------------------------------------------------------------------*/
function conmutarTodosEncuestas(p_campo)
/*
* Funci?n que selecciona o deselecciona todos los campos check de un listado
* Modificado por: Maria del Pilar Fiallo R. 19-May-2003
*/
{
	estado = p_campo.checked
	lista = p_campo.form.elements
	longitud = lista.length
	
	for(i=0; i<longitud; i++)
	{
		lista[i].checked=estado	
	}
}

/*---------------------------------------------------------------------*/
function getUsers(p_nombreFormulario)
{
	var users = "";
	
	for(i = 0; i< document.forms[p_nombreFormulario].elements.length; i++)
	{
		if(document.forms[p_nombreFormulario].elements[i].type == "checkbox")
		{
			if(document.forms[p_nombreFormulario].elements[i].checked == true)
			{
				if (document.forms[p_nombreFormulario].elements[i].value != 'on')
				{
				  users = users + document.forms[p_nombreFormulario].elements[i].value + ",";
				}
			}			
		}
	}
	return users;
}

/*-------------------------------------------------------------------*/

function Submit_seguro( formulario) {
	for (i=1; i < formulario.elements.length; i++) {
		//deshabilita el boton de submit
		if (formulario.elements[i].type == 'submit') {
			formulario.elements[i].disabled = true
		}
	}
   // formulario.accion.name='_action_presentar'
	//formulario.submit()
//	alert(accion)
//	formulario.accion.value=accion
//   alert(formulario.accion.value)
	//envia el formulario
//	formulario.submit()
	//document.forms[nombreFormulario].submit()

	
	//reasinga la funcion de envio a una funcion dummy
	Submit_seguro = Submit_off
	return false
}

/*
	Esta funcion no hace nada
	Sirve para evitar el reenvio del formulario
*/
function Submit_off( formulario ) {
    return false
}

function MM_preloadImages() { var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } 

function verContenido(nombreFormulario, codigo)
{
    document.forms[nombreFormulario].p_codigo.value=codigo
	for( i = 0; i < document.forms['form_est'].p_visualizacion.length; i++ )
    {
      if( document.forms['form_est'].p_visualizacion[i].checked == true )
         tipoVisualizacion = document.forms['form_est'].p_visualizacion[i].value;
    }
	document.forms[nombreFormulario].p_visualizacion.value=tipoVisualizacion
	document.forms[nombreFormulario].submit()
}

function asignarPlantilla()
{
	for( i = 0; i < document.forms['form1'].p_estilo.length; i++ )
    {
      if( document.forms['form1'].p_estilo[i].checked == true )
	  {
       var estilo = document.forms['form1'].p_estilo[i].value;
	   document.forms['datos'].p_estilo.value=estilo	
	  }
    }
	document.forms['datos'].submit()
	

}

/*---------------------------------------------------------------------*/
function conmutarRecursos(p_campo)
/*
* Funci?n que selecciona o deselecciona todos los campos check de un listado
* Modificado por: Maria del Pilar Fiallo R. 19-May-2003
*/
{
	estado = p_campo.checked
	lista = p_campo.form.elements
	longitud = lista.length
	for(i=0; i<longitud; i++)
	{
		if(lista[i].name.substring(0,2) == 'r_')
		{
			lista[i].checked=estado
		}
	}


}
