/********************************************************************
*  Modificado por: Gustavo Pérez & Miguel Rodríguez                 *
*  Fecha 11/03/2002                                                 *
*  Modificación: Se ha modificado la función de CambiarApostrofe, ya*
*                que antes se realizaba el tratamiento de las dobles*
*                comillas en esta función, mientras que ahora se    *
*                realiza en la clase de Base de Datos DBORA         * 
********************************************************************/

// Variables para la función SmPrint.
var agt=navigator.userAgent.toLowerCase(); 
var is_major = parseInt(navigator.appVersion); 
var is_minor = parseFloat(navigator.appVersion); 
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) && (agt.indexOf('webtv')==-1));  
var is_nav3up = (is_nav && (is_major >= 3)); 
var is_nav4up = (is_nav && (is_major >= 4)); 
var is_ie   = (agt.indexOf("msie") != -1); 
var is_ie3  = (is_ie && (is_major < 4)); 
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) );
var is_ie4up  = (is_ie && (is_major >= 4));   
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4); 
var is_opera = (agt.indexOf("opera") != -1);
var is_hotjava3 = ((agt.indexOf("hotjava") != -1) && (is_major>=3));
// Variable para la función SendOnce
var twice=false

//------------------- Funciones para usar desde la ArtavanWindow ---------------------------
//Funcion que imprime el marco activo
function SmPrint(){
  //Netscape & IExplorer     
  if (is_nav4up || is_ie5up || is_hotjava3) //js1.2
    window.print();
  else
    alert("Su navegador no permite el uso de este botón. Use el propio del navegador");
}
//Abrir una nueva ventana
function OpenWindow(url, Titulo)
{
   ventana=window.open(url,
         Titulo,
         'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');
   OpenWindow.opener=self;

}
// Chequeo de campos vacios
function ChkFields(ListaCampos)
{
  var Retorno = true;
  var campo = 0;
  var i = 0;
  var j = 0;

  // Chequeo para evitar todos los campos ocultos de Artavan
  while (document.forms[0].elements[j].type == "hidden")
  {
    j++;
  }
  for (i=0; i < ListaCampos.length ; i++)
  {
    campo = ListaCampos[i] + j;
    // Chequeo si esta vacio cuando es un campo de texto o una textarea
    if ((document.forms[0].elements[campo].type == "text") ||
        (document.forms[0].elements[campo].type == "textarea"))
    {
      if (document.forms[0].elements[campo].value == "")
      {
        Retorno = false;
        document.forms[0].elements[campo].focus();
        break;
      }
    }
    else
    // Chequeo si esta vacio cuando es una ventana de seleccion
    if ((document.forms[0].elements[campo].type == "select-one") ||
        (document.forms[0].elements[campo].type == "select-multiple"))
    {
      if (document.forms[0].elements[campo].selectedIndex == -1)
      {
        Retorno = false;
        document.forms[0].elements[campo].focus();
        break;
      }
    }
    else
    // Chequeo si esta vacio cuando es un checkbox o radio
    if ((document.forms[0].elements[campo].type == "checkbox") ||
        (document.forms[0].elements[campo].type == "radio"))
    {
      if (document.forms[0].elements[campo].checked == false)
      {
        Retorno = false;
        document.forms[0].elements[campo].focus();
        break;
      }
    }
    else
    // Chequeo si esta vacio cuando es un file
    if (document.forms[0].elements[campo].type == "file")
    {
      if (document.forms[0].elements[campo].value == "")
      {
        Retorno = false;
        document.forms[0].elements[campo].focus();
        break;
      }
    }
    else
    // Chequeo si esta vacio cuando es un password.
    if (document.forms[0].elements[campo].type == "password")
    {
      if (document.forms[0].elements[campo].value == "")
      {
        Retorno = false;
        document.forms[0].elements[campo].focus();
        break;
      }
    }
  }

  return Retorno;
}
// Función para la copia de campos ocultos de artavan en campos Entrada/Salida
// Recibe el numero del campo destino y el campo origen para copiar el valor de origen en destino
function CopyFields(campodestino,campoorigen)
{
  var Retorno = true;
  var i = 0;

    // Chequeo para evitar todos los campos ocultos de Artavan
    while (document.forms[0].elements[i].type == "hidden")
    {
      i++;
    }    
    document.forms[0].elements[i+campodestino].value = document.forms[0].elements[i+campoorigen].value;    
  return Retorno;
}
// Funciones para los retornos de anterior y cualquier otro boton.
function SmBack()
{
    history.back();
}

// Funciones para los botones.
function MM_swapImgRestore() { //v2.0
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function MM_preloadImages() { //v2.0
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}

function MM_swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}

// Funciones para SMS
function sendOnce()
{
	if (twice==false)
	{
	twice=true;
	return true;
	}else{
	return false;
	}

}

function timeAfterTime()
{
var ID=window.setInterval('CheckStr()',100)
}

function CheckStr(userInput)
{
	StrLen = document.SmForm1.msg.value.length;
	if (StrLen > 130 )
		{
			document.SmForm1.msg.value = document.SmForm1.msg.value.substring(0,130);
			StrLeft = 0;
		}
	else
		{
			StrLeft = 130 - StrLen;
		}
	document.SmForm1.Len.value = StrLeft;
}

function chequeNum()
{
var stryng = document.SmForm1.ren.value;
var firstchar = stryng.charAt(0);
var substryng = stryng.substring(0,2);

	if (firstchar=="")
	{
	return false;
	}

	if ((substryng == "34")||(firstchar=="+"))
	{
	alert("Lo siento, Llamadas internacionales no disponibles a traves de este servicio.");
	document.SmForm1.ren.focus();
	return false;
	}

	for(i=0;i<stryng.length;i++)
	{
		var char_x=stryng.charAt(i);
		if((char_x!=0)&&(char_x!=1)&&(char_x!=2)&&(char_x!=3)&&(char_x!=4)&&(char_x!=5)&&(char_x!=6)&&(char_x!=7)&&(char_x!=8)&&(char_x!=9))
		{
		alert("Este numero de móvil tiene caracteres invalidos.");
		document.SmForm1.ren.focus();
		return false;
		}
	}
}

function setMsg(){
document.SmForm1.msg.value = "Por favor introduzca su mensaje aquí...";
document.SmForm1.ren.focus();
}

function clrMsg(){
var message = document.SmForm1.msg.value;
if (message=="Por favor introduzca su mensaje aquí ..."){
	document.SmForm1.msg.value="";
	}
}

// Funciones para seleccionar y deseleccionar todos los checks de una página.
function seleccionar_checks()
{
    var k = 0; // Para recorrer los elementos del form
   
    // Para recorrer todos los elementos del vector.
    while (k < document.forms[0].elements.length)
    {
      // Mientras no se acaben los elementos , procesar.
      if ((k < document.forms[0].elements.length) && 
          (document.forms[0].elements[k].type == 'checkbox'))
      {
          document.forms[0].elements[k].checked=true;
      }
      // Aumento el contador del bucle
      k++;
    }
    return;
}
function deseleccionar_checks()
{
    var k = 0; // Para recorrer los elementos del form
   
    // Para recorrer todos los elementos del vector.
    while (k < document.forms[0].elements.length)
    {
      // Mientras no se acaben los elementos , procesar.
      if ((k < document.forms[0].elements.length) && 
          (document.forms[0].elements[k].type == 'checkbox'))
      {
          document.forms[0].elements[k].checked=false;
      }
      // Aumento el contador del bucle
      k++;
    }
    return;
}

// Para la confirmación de los borrados.
function Borrado(destino)
{
 if (confirm('¿Esta seguro que quiere borrar la opcion elegida?'))
  location = destino;
}

// Para la confirmación de los borrados.
function BorradoForo(destino)
{
 if (confirm('Confirmar operación de borrado'))
  location = destino;
}

// Para la confirmación de borrar todos en Registro de cargas y descargas.
function Borrar_Todos(destino)
{
 if (confirm('¿Esta seguro que quiere borrar todos los registros?'))
  location = destino;
}

// Para la confirmación de los borrados de las categoria de BddDocumental.
function BorradoCategoriaBdd(destino)
{
 if (confirm('Se borrarán todas las categorías y documentos que haya por debajo. \n ¿Esta seguro que quiere borrar la opcion elegida?'))
  location = destino;
}

// Cambia los apostrofes de ' a '' para que no falle la Base de datos
function CambiarApostrofes()
{  
  var limite=document.forms[0].elements.length;
  var k=0;
  while (k < limite)
  {
    // Mientras no se acaben los elementos y no hayamos marcado ninguno, procesar.
    if ((document.forms[0].elements[k].type == 'text') || 
        (document.forms[0].elements[k].type == 'textarea'))
    {
      var str=document.forms[0].elements[k].value;
      var indice=0;
      var str1="";
    /* BEGIN PATCH003 */
      str1=str.replace(/\'/g,"\'\'"); 
    
     // indice=str.search("\"");
      //alert(indice);
  /*    if (indice==-1)
      {
        str1=str.replace(/\'/g,"\'\'");
       // alert(strl);
        //alert("No se encuentra")
      }
      else
      {
        str1=document.forms[0].elements[k].value;
      }
   */
   /* END PATCH003 */   
      document.forms[0].elements[k].value=str1;
      //alert(document.forms[0].elements[k].value);
      //document.write(document.forms[0].elements[k].value);
    }
    k++;
  }
}

// Cambia los <br> por \n
function CambiarBrPorBarraN()
{  
  CambiarBarraNyBr(/<br>/g,"\n");
}
 
// Cambia los \n por <br>
function CambiarBarraNPorBr()
{  
  var TipoNavegador=(document.layers ? 1 : (document.all ? 2 : 3));

  if (TipoNavegador == 1 || TipoNavegador == 2)
    CambiarBarraNyBr(/\r\n/g,"<br>");
  else
    CambiarBarraNyBr(/\n/g,"<br>");
}

// Cambia en los textareas una cadena por otra.
function CambiarBarraNyBr(origen,destino)
{  
  var k=0;

  while (k < document.forms[0].elements.length) {
  // Mientras no se acaben los elementos y no hayamos marcado ninguno, procesar.

    if (document.forms[0].elements[k].type == 'textarea') {
      var start=end=0;
      var str=document.forms[0].elements[k].value;
      var TExtraido;
      var TFinal="";

      while (end != -1) {
        if ((end=str.indexOf("<html>",start)) == -1) {
          TExtraido=str.substring(start,str.length+1);
          TFinal=TFinal.concat(TExtraido.replace(origen,destino));
        }
        else {
          TExtraido=str.substring(start,end);
          TFinal=TFinal.concat(TExtraido.replace(origen,destino));

          start=end;
          if ((end=str.indexOf("</html>",start)) == -1)
            TFinal=TFinal.concat(str.substring(start,str.length+1));
          else {
            end=end+7;
            TFinal=TFinal.concat(str.substring(start,end));
            start=end;
          }
        }
      }

      document.forms[0].elements[k].value=TFinal;
    }
    k++;
  }
}
// Comprueba que para cada checkbox se marque por lo menos un boton radio asociado.
function comprobar_radios()
{
    var k = 0; // Para recorrer los eltos. del form
    var n_ant = 0; // checkbox que estoy comprobando
    var j = 0; // checkbox que no esta marcado
    var hay_marca = false; // hay algun radio marcado en este grupo
   
    // Para recorrer todos los elementos del vector.
    // Me detengo si encuentro un grupo sin ningun radio marcado.
    while ((k < document.forms[0].elements.length)
            &&
           (j == 0))     
    {
      // Si es un checkbox y esta marcado, lo proceso
      if ((document.forms[0].elements[k].type == 'checkbox')
           &&
          (document.forms[0].elements[k].checked))
      {
        // Suposiciones iniciales: no hay ningun radio marcado y
        // n_ant tiene el valor del checkbox por si hay que hacer un focus
        hay_marca = false;
        n_ant = k;
        // Pasamos a ver el primer radio (por eso hay que incrementar)
        k++;
        // Mientras no se acaben los elementos y estemos dentro del radio
        // y no hayamos marcado ninguno, procesar.
        while ((k < document.forms[0].elements.length)
                &&
               (document.forms[0].elements[k].type == 'radio')
                &&
               (!hay_marca))
        {
          // Si esta marcado este radio, hay_marca se pone a true y se sale
          // del bucle para este grupo de botones de radio.
          hay_marca = document.forms[0].elements[k].checked;
          // Aumento el contador del bucle
          k++;
        }
        if (!hay_marca)
        {
          // Si se ha terminado de recorrer el grupo de botones de radio y no
          // hay ninguno marcado, guardo en j el valor del checkbox.
          // Esto va a hacer que me salga del bucle principal.
          j = n_ant;
        } 
      }
      else
      {
        // Aumento el contador del bucle
        k++;
      }
    }

    if (j != 0)
    {
      // Acciones para cuando se detecta un error (un chechbox marcado
      // cuyo grupo de radios no tiene ninguno marcado)
      alert('Boton Radio no marcado');
      document.forms[0].elements[j].focus();
    }

    return (j == 0);
}

// Comprueba que al menos se seleccione un checkbox.
function comprobar_check()
{
    var k = 0; // Para recorrer los eltos. del form
    var hay_marca = false; // Variable para comprobar los checks.
    
    // Para recorrer todos los elementos del vector.
    // Me detengo si encuentro un checkbox marcado.
    while ((k < document.forms[0].elements.length)&&(!hay_marca))     
    {
      // Mientras no se acaben los elementos y no hayamos marcado ninguno, procesar.
      if ((k < document.forms[0].elements.length) &&
             (document.forms[0].elements[k].type == 'checkbox')
              &&
             (document.forms[0].elements[k].checked))
      {
          // Se sale del bucle
          hay_marca=true;
      }
      // Aumento el contador del bucle
      k++;
    }

    if (!hay_marca)
    {
      // Acciones para cuando se detecta un error (un chechbox sin marcar).
      alert('Debe seleccionar al menos una casilla');
    }

    return (hay_marca);
}

// Funciones del LGUF
function SmActionBack()
{
     if(typeof(top.ArtavanBody.SmBack) != "undefined")
       top.ArtavanBody.SmBack();
}

function SmActionForward()
{
     if(typeof(top.ArtavanBody.SmFordward) != "undefined")
       top.ArtavanBody.SmFordward();
}

function esNumero(numero)
/* Comprueba si el parametro es un numero (entero) o no.
 * Devuelve true si es un numero o false en caso contrario.
 * Si es nulo, supone que NO es un numero */
{
  num = /^[\d+(\d+\.\d+)]+$/;
  OK = num.exec(numero);
  return (OK);
} 

function dias_del_mes (mes, anio)
/* Devuelve el numero de dias que tiene el mes indicado por parametro.
 * Tambien hay que pasarle el anio para los bisiestos. */
{
  valor_salida = 0;
  if ((mes==1)||(mes==3)||(mes==5)||(mes==7)||(mes==8)||(mes==10)||(mes==12))
  {
    valor_salida = 31;
  }
  if (mes==2)
  {
    if (((anio % 4)!=0) || (((anio % 4)==0) && ((anio % 400)!=0))) // No es bisiesto
      valor_salida = 28;
    else // Es bisiesto
      valor_salida = 29;
  }
  if ((mes==4)||(mes==6)||(mes==9)||(mes==11))
  {
    valor_salida = 30;
  }
  return (valor_salida);
}

function existe_fecha (dia, mes, anio)
/* Devuelve:
 *    0 si todo es correcto;
 *   10 si el mes es incorrecto;
 *   20 si el dia del mes es incorrecto 
 *   30 si el anio es incorrecto */
{
   valor_retorno = 0;
  if (mes>0 && mes<13) // Vamos bien
   {
     dm = dias_del_mes (mes, anio);
     if (!((dia > 0) && (dia <= dm)))
      {
       valor_retorno = 20;
      }
   }
  else
   {
     valor_retorno = 10;
   }

   /* BEGIN PATCH003 */
   if ((valor_retorno == 0) && (anio == 0))
   {
       valor_retorno = 30;
   }
   /* END PATCH003 */
  
  return (valor_retorno);
}


function CheckPassword(cadena1, cadena2)
/* Devuelve:
 * >1 si las cadenas son iguales;
 * 0 si son distintas;
*/
{
   valor_salida = 0;
   if (cadena1 != cadena2)
	 return false;
   else
	 return true;
}


function CheckHexadecimal(NumCampo)
/* Devuelve:
 * true si se encuentra la cadena y false en caso contrario;
*/
{
  var stryng = document.forms[0].elements[NumCampo].value;  
  var comprobacion=true;
      
  if (stryng.length != 7)
   comprobacion=false;
  else if (stryng.charAt(0)!='#')
   comprobacion=false;    
  
  for (i=1;(comprobacion==true) && (i<stryng.length);i++)
  {
   if ((stryng.charAt(i) != '0') && (stryng.charAt(i) != '1') && (stryng.charAt(i) != '2') &&
       (stryng.charAt(i) != '3') && (stryng.charAt(i) != '4') && (stryng.charAt(i) != '5') &&
       (stryng.charAt(i) != '6') && (stryng.charAt(i) != '7') && (stryng.charAt(i) != '8') &&
       (stryng.charAt(i) != '9') && (stryng.charAt(i) != 'A') && (stryng.charAt(i) != 'a') &&
       (stryng.charAt(i) != 'B') && (stryng.charAt(i) != 'b') && (stryng.charAt(i) != 'C') &&
       (stryng.charAt(i) != 'c') && (stryng.charAt(i) != 'D') && (stryng.charAt(i) != 'd') &&
       (stryng.charAt(i) != 'E') && (stryng.charAt(i) != 'e') && (stryng.charAt(i) != 'F') &&
       (stryng.charAt(i) != 'f'))
    comprobacion=false;   
  }
  
  if (!comprobacion)
  {
     alert("El color debe empezar por el símbolo '#' seguido de 6 dígitos hexadecimales");
     document.forms[0].elements[NumCampo].focus();
     comprobacion=false;
  }
  
  return comprobacion;  
}

function CheckProtocolo(NumCampo)
/* Devuelve:
 * true si se encuentra la cadena y false en caso contrario;
*/
{
var stryng = document.forms[0].elements[NumCampo].value;
var comprobacion=false;
var char_x=stryng.slice(0,7);
var char_y=stryng.slice(0,8);
var char_z=stryng.slice(0,6);

  if ((char_x=='http://')&&(!comprobacion))
  {
     comprobacion=true;
  }
  else 
  if ((char_y=='https://')&&(!comprobacion))
  {
      comprobacion=true;
  }
  else
  if ((char_z=='ftp://')&&(!comprobacion))
  {
     comprobacion=true;
  }
  if (!comprobacion)
  {
     alert("Debe indicar un protocolo (http://,https://,ftp://)");
     document.forms[0].elements[NumCampo].focus();
     comprobacion=false;
  }

  return comprobacion;
  
}

function CheckOrden(NumCampo)
{

var j=0;

// Chequeo para evitar todos los campos ocultos de Artavan
while (document.forms[0].elements[j].type == "hidden")
{
   j++;
}

var stryng = document.forms[0].elements[j+NumCampo].value;

	for(i = 0; i < stryng.length; i++)
	{
		var char_x=stryng.charAt(i);
		if((char_x!=0)&&(char_x!=1)&&(char_x!=2)&&(char_x!=3)&&(char_x!=4)&&(char_x!=5)&&(char_x!=6)&&(char_x!=7)&&(char_x!=8)&&(char_x!=9))
		{
		alert("Este campo sólo admite números.");
		document.forms[0].elements[j+NumCampo].focus();
		return false;
		}
	        if (i==9)
		{
		alert("El número máximo permitido es el 999999999.");
		document.forms[0].elements[j+NumCampo].focus();
		return false;
		}
	}
	return true;
}
// Comprueba que exista algun checkbox.
function existe_check()
{
    var k = 0; // Para recorrer los eltos. del form
    var hay_marca = false; // Variable para comprobar los checks.
    
    // Para recorrer todos los elementos del vector.
    // Me detengo si encuentro un checkbox marcado.
    while ((k < document.forms[0].elements.length)&&(!hay_marca))     
    {
      // Mientras no se acaben los elementos y no encontremos ningun checkbox, procesar.
      if ((k < document.forms[0].elements.length) &&
             (document.forms[0].elements[k].type == 'checkbox'))
      {
          // Se sale del bucle
          hay_marca=true;
      }
      // Aumento el contador del bucle
      k++;
    }

    if (!hay_marca)
    {
      // Acciones para cuando se detecta un error (un chechbox sin marcar).
      alert('Debe tener relleno el campo E-Mail en su Ficha de Usuario para recibir Información del Curso.');
    }

    return (hay_marca);
}

function esNombreFichero(nombre)
/* Comprueba si el parametro es un nombre de fichero o no.
 * Se va a suponer que un fichero bien de un sistema UNIX o DOS.
 * Si es UNIX, devuelve 10
 * Si es DOS, devuelve 20
 * Si no es ninguno, devuelve 0 */
{
  unix=0;
  dos=0;

  indice=nombre.lastIndexOf("/");
  if(indice==-1)
  {
    indice=nombre.lastIndexOf("\\");
    dos=1;
  }
  else
    unix=1;
  
  if(indice==-1)
    return(0);

  nombrefichero=nombre.substr(indice+1)

//  alert("->"+nombrefichero+"<-");

  /* Expresiones regulares para UNIX y DOS */
  expresionregular = /^[0-9a-zA-Z_\-\.]+$/;

  /* Comprobar si el nombre de fichero se amolda a DOS o UNIX */
  OK = expresionregular.exec(nombrefichero);

  /* Salida en funcion de los resultados */
  if (OK)
  {
    if (unix) return(10);
    else if (dos) return(20);
  }
  else return(0);
}

/* BEGIN PATCH003 */
function esTamanioCorrecto(nombre,tamanio)
/* Comprueba si el parametro nombre tiene el tamanio correcto
 * Si el correcto 1,si no 0 */
{
  index = nombre.lastIndexOf("\\");
  nombre_fichero = nombre.substr(index+1);
  if (nombre_fichero.length > tamanio) return(0);
  else return(1);
}
/* END PATCH003 */


// Elimina los carateres en blanco del final de la cadena
function Quitar_Blancos (Cadena)
{
   return Cadena.split (" ")[0];
}

// Elimina los carateres en blanco del final de la cadena 
// para todos los campos text y textarea.
function Limpiar_Blancos()
{  
  var limite=document.forms[0].elements.length;
  var k=0;
  var valor;
  while (k < limite)
  {
    // Mientras no se acaben los elementos y no hayamos marcado ninguno, procesar.
    if ((document.forms[0].elements[k].type == 'text') || 
        (document.forms[0].elements[k].type == 'textarea'))
    {
      valor=document.forms[0].elements[k].value;
      while(''+valor.charAt(valor.length-1)==' ')
        valor=valor.substring(0,valor.length-1);
      document.forms[0].elements[k].value=valor;  
    }
    k++;
  }
}

//Borrado de las categorias de cada funcionalidad
function Borrar(CategBorrado,boton)
{
 if (confirm('¿Esta seguro que quiere borrar la categoría elegida?'))
 {  
  document.forms[0].CategBorrado.value=CategBorrado; 
  document.forms[0].SmButton.value=boton;   
  document.forms[0].submit();
 } 
}

//Abre una ventana para las categorias
function AbrirCategoria(dir)
{ 
 window.open(dir,"PopUp","titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=680,height=500");
}

//Las siguientes funciones son para aperturas de PopUps
//Funcion genrica de apertura
function AbrirPopUp(dir,name,width,height) {
// Comprueba el alto maximo de la pantalla
 MaxHeight= screen.availHeight - 30;
 height= height > MaxHeight ? MaxHeight : height;
 MLeft= (screen.availWidth - width) / 2;
 MTop=  (MaxHeight - height) / 2;

 var options="titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=" + width + ",height=" + height + ",top=" + MTop + ",left=" + MLeft;

 Valor=new String(dir);

 if (Valor.indexOf("?",0) == -1)
   var tips=window.open(dir+"?QEC_Frames=NO",name,options);
 else
   var tips=window.open(dir+"&QEC_Frames=NO",name,options);

 tips.focus();
}

//Apertura de PopUp para las categorias
function PopUpCategorias(dir) {
  AbrirPopUp(dir,"PopUpCategorias",440,375);
}

//Apertura de PopUp para las Notas
function PopUpNotas(dir) {
  AbrirPopUp(dir,"PopUpNotas",490,300);
}

//Apertura de PopUp para Perfiles
function PopUpPerfilOwner(dir) {
  AbrirPopUp(dir,"PopUpPerfilOwner",590,385);
}

//Apertura de PopUp para Perfiles
function PopUpPerfil(dir) {
  AbrirPopUp(dir,"PopUpPerfil",590,285);
}

//Apertura de PopUp para Perfiles
function PopUpPasswd(dir) {
  AbrirPopUp(dir,"PopUpPasswd",390,175);
}

//Apertura de PopUp para las Anuncios
function PopUpAnuncios(dir) {
  AbrirPopUp(dir,"PopUpAnuncios",625,600);
}

//Apertura de PopUp para Envio a un amigo
function PopUpAmigo(dir) {
  AbrirPopUp(dir,"PopUpAmigo",465,390);
}

//Apertura de PopUp para Administracion Enviar a un amigo
function PopUpAdminAmigo(dir) {
  AbrirPopUp(dir,"PopUpAdminAmigo",550,440);
}

//Apertura de PopUp para Administracion de la columna de resumen
function PopUpColumna(dir) {
  AbrirPopUp(dir,"PopUpColumna",350,190);
}

//Apertura de PopUp para el Gestor de Documentos         
function PopUpDocumentos(dir) {
  AbrirPopUp(dir,"PopUpDocumentos",625,600);
}

//Apertura de PopUp para copiar en el Gestor de Documentos         
function PopUpCopiarDocumentos(dir) {
  AbrirPopUp(dir,"PopUpCopiarDocumentos",625,600);
}

//Apertura de PopUp para descargar un documento de intercambio     
function PopUpIntercambio(dir) {
  AbrirPopUp(dir,"PopUpIntercambio",440,190);
}

//Apertura de PopUp para administrar los modos de uso de Gestor Documentos
function PopUpAdminModo(dir) {
  AbrirPopUp(dir,"PopUpAdminModo",390,150);
}

//Apertura de PopUp para el Gestor de Contenidos         
function PopUpContenidos(dir) {
  AbrirPopUp(dir,"PopUpContenidos",625,600);
}

//Apertura de PopUp para copiar en el Gestor de Contenidos
function PopUpCopiarContenidos(dir) {
  AbrirPopUp(dir,"PopUpCopiarContenidos",500,500);
}

//Apertura de PopUp para la administracion de los Foros
function PopUpAdminForos(dir) {
  AbrirPopUp(dir,"PopUpAdminForos",550,440);
}

//Apertura de PopUp para los Foros
function PopUpForos(dir) {
  AbrirPopUp(dir,"PopUpForos",490,390);
}

//Apertura de PopUp para los Foros
function PopUpForosInter(dir) {
  AbrirPopUp(dir,"PopUpForosInter",490,400);
}

//Apertura de PopUp para el Tarjetero
function PopUpTarjeta(dir) {
  AbrirPopUp(dir,"PopUpTarjeta",620,560);
}

//Apertura de PopUp para ver una Tarjeta
function PopUpVerTarjeta(dir) {
  AbrirPopUp(dir,"PopUpVerTarjeta",620,350);
}

//Apertura de PopUp para Envios de SMS	
function PopUpSMS(dir) {
  AbrirPopUp(dir,"PopUpSMS",445,220);
}

//Apertura de PopUp para Administracion de SMS
function PopUpAdminSMS(dir) {
  AbrirPopUp(dir,"PopUpAdminSMS",400,250);
}

//Apertura de PopUp para la Agenda      
function PopUpAgenda(dir) {
  AbrirPopUp(dir,"PopUpAgenda",490,460);
}

//Apertura de PopUp para los eventos
function PopUpEvento(dir) {
  AbrirPopUp(dir,"PopUpEvento",490,350);
}

//Apertura de PopUp para administrar Agenda
function PopUpAdminAgenda(dir) {
  AbrirPopUp(dir,"PopUpAdminAgenda",480,340);
}

//Apertura de PopUp para Listas de Ditribucion
function PopUpListas(dir) {
  AbrirPopUp(dir,"PopUpListas",490,550);
}

//Apertura de PopUp para administrar Listas de Ditribucion
function PopUpAdminListas(dir) {
  AbrirPopUp(dir,"PopUpAdminListas",490,450);
}

//Apertura de PopUp para envio de Listas de Ditribucion
function PopUpEnviarListas(dir) {
  AbrirPopUp(dir,"PopUpEnviarListas",490,420);
}

//Apertura de PopUp para las encuestas
function PopUpEncuestas(dir) {
  AbrirPopUp(dir,"PopUpEncuestas",490,550);
}

//Apertura de PopUp para los Portales
function PopUpPortales(dir) {
  AbrirPopUp(dir,"PopUpPortales",625,660);
}

//Apertura de PopUp para alta y Edicion de Banners
function PopUpBanner(dir) {
  AbrirPopUp(dir,"PopUpBanner",540,415);
}

//Apertura de PopUp para ver o borrar Banners
function PopUpVerBanner(dir) {
  AbrirPopUp(dir,"PopUpVerBanner",450,300);
}

//Apertura de PopUp para Ver, Editar o Borrar Ubicaciones
function PopUpUbicaciones(dir) {
  AbrirPopUp(dir,"PopUpUbicaciones",450,200);
}

//Apertura de PopUp para Anadir o Editar Campanas
function PopUpAddCampanas(dir) {
  AbrirPopUp(dir,"PopUpAddCampanas",540,250);
}

//Apertura de PopUp para Ver o Borrar Campanas
function PopUpCampanas(dir) {
  AbrirPopUp(dir,"PopUpCampanas",540,325);
}

//Apertura de PopUp para Ver o editar asigancion de campanas
function PopUpAsigCampanas(dir) {
  AbrirPopUp(dir,"PopUpAsigCampanas",540,350);
}

//Apertura de PopUp para alta y Edicion de Empresas
function PopUpEmpresas(dir) {
  AbrirPopUp(dir,"PopUpEmpresas",640,640);
}

//Apertura de PopUp para ver, imprimir o borrar Empresas 
function PopUpVerEmpresas(dir) { AbrirPopUp(dir,"PopUpVerEmpresas",640,640); }

//Apertura de PopUp para alta y Edicion de Actividades
function PopUpActividades(dir) {
  AbrirPopUp(dir,"PopUpActividades",440,200);
}

//Apertura de PopUp para ver, imprimir o borrar Actividades
function PopUpVerActividades(dir) {
  AbrirPopUp(dir,"PopUpVerActividades",475,250);
}

function CrearCapaCarga(mapeo) {
  document.writeln("<div id='cargando' style='position:absolute; left:0px; top:0px; width:102%; height:100%; z-index:1; visibility: hidden'>");
  document.writeln("<table width='100%' height='100%'><tr>");
  document.writeln("<td align='center' valign='middle' background='" + mapeo + "fondo_repeat.gif'>");
  document.writeln("<table border='1' cellspacing='0' cellpadding='0' bordercolordark='#000000' bordercolorlight='#FFFFFF'><tr>");
  document.writeln("<td align='center' valign='middle' bgcolor='#FFFFFF'>");

  document.writeln("<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0' width='267' height='61'>");
  document.writeln("<param name=movie value='" + mapeo + "cargando.swf'>");
  document.writeln("<param name=quality value=high>");
  document.writeln("<embed src='" + mapeo + "cargando.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='267' height='61'>");
  document.writeln("</embed></object>");

  document.writeln("<br><span class='txt12'>&nbsp;&nbsp;&nbsp;Adjuntando documento, espere por favor...&nbsp;&nbsp;&nbsp;<br><br></span>");
  document.writeln("</td></tr></table></td></tr></table></div>");
}

function ActivarCapaCarga(mapeo) {
 var Campos=document.forms[0].elements;

 for (i=0, found=0; i<Campos.length; i++) {
    if (Campos[i].type == "file" && Campos[i].value != "") {
      found=1;
      break;
    }
 }
 
 if (found) {
   if (document.layers)
     document.cargando.visibility="show";
   else
     document.getElementById("cargando").style.visibility="visible";
 }
}

// Funcion para el manejo de las listas duales
function MoverListaDual( srcList, destList, moveAll ) {
  if (( srcList.selectedIndex == -1 ) && ( moveAll == false )) {
   return;
  }

  newDestList = new Array( destList.options.length );
  var len = 0;

  for( len = 0; len < destList.options.length; len++ ) {
   if ( destList.options[ len ] != null ) {
     newDestList[ len ] = new Option( destList.options[ len ].text, destList.options[ len ].value, destList.options[ len ].defaultSelected, destList.options[ len ].selected );
   }
  }

  for( var i = 0; i < srcList.options.length; i++ ) { 
    if ( srcList.options[i] != null && ( srcList.options[i].selected == true || moveAll ) ) {
      newDestList[ len ] = new Option( srcList.options[i].text, srcList.options[i].value, srcList.options[i].defaultSelected, srcList.options[i].selected );

      len++;
    }
  }

  for ( var j = 0; j < newDestList.length; j++ ) {
    if (newDestList[ j ] != null)
      destList.options[ j ] = newDestList[ j ];
  }

  for( var i = srcList.options.length - 1; i >= 0; i-- ) { 
    if (srcList.options[i] != null && (srcList.options[i].selected == true || moveAll))
     srcList.options[i] = null;
  }
}
