// Establece, en función del nombre del campo que le pasan como argumento,
// que se debe cargar en la pantalla de información del campo si el Tesauro,
// el índice o únicamente la ayuda del campo

function establecerParametrosInfoCampo(campo,etiqueta,vista,tesauro,indice)
{
    var establecerParametrosInfoCampo
    
	establecerParametrosInfoCampo="TESAURO="+tesauro+"&INDICE="+indice+"&CAMPO="+campo
	etiqueta=etiqueta.replace(/ /g, "+")
	establecerParametrosInfoCampo+="&ETIQUETA="+etiqueta+"&VISTA="+vista
            
    return establecerParametrosInfoCampo
}

function QuitarBlancos(Cadena)
{
        if (Cadena.length==0)
                return ""

        // Buscar primer caracter distinto de blanco
        primerNoBlanco=0
        while(Cadena.charAt(primerNoBlanco)==" " && primerNoBlanco<Cadena.length)
        {
                primerNoBlanco++
        }

        // Buscar último caracter distinto de blanco
        ultimoNoBlanco=Cadena.length-1
        while (Cadena.charAt(ultimoNoBlanco)==" " && ultimoNoBlanco>=0)
        {
                ultimoNoBlanco--
        }

        // Si todos son blancos devolver una cadena vacía
        if (primerNoBlanco>ultimoNoBlanco)
                return ""

        // Obtener la cadena sin espacios al principio y al final
        return Cadena.substring(primerNoBlanco,ultimoNoBlanco+1)
}

// Asignar los códigos escape que corresponden a la coma y el ampersand
var escComa=escape(",");
var escAmpersand=escape("&");

// Si la cadena tiene comillas cambiamos las comas y los ampersands
// que hay dentro de las comillas por sus caracteres de escape y le
// quitamos las comillas
function tratarCadenaConComillas(Cadena)
{
  // Variables auxiliares
  var comillasAbiertas=false
  var i=0
  
  // Variable para el resultado
  var cadenaTratada=""

  // Recorrer toda la cadena
  for(i=0;i<Cadena.length;i++)
  {
	// Conseguir un caracter
	caracter=Cadena.charAt(i)

	// Tratar cada caracter por separado
	switch (caracter)
	{
	  case ',':
	      if (comillasAbiertas)
		    cadenaTratada+=escComa
		  else
		    cadenaTratada+=caracter
		  break
	  case '&':
	      if (comillasAbiertas)
		    cadenaTratada+=escAmpersand
		  else
		    cadenaTratada+=caracter
		  break
	  case '"':
		  if (comillasAbiertas)
		    comillasAbiertas=false
		  else
		    comillasAbiertas=true
		  break
	  default:
		  cadenaTratada+=caracter
	}
  }
  
  // Devolver la cadena que he formado
  return cadenaTratada;
}



function tratar_condicion(condicion)
{
        // Si no hay valor terminar
        if (condicion.length==0)
                return ""

        // Asignar el valor inicial
        condicionTratada=QuitarBlancos(condicion)

     
	// Si el valor contiene comillas las quitaremos y además
	// sustituiremos las comas y ampersands que estaban entre comillas
	// por sus códigos de caracter
	if (condicionTratada.search(/"/g)!=-1)
		condicionTratada=tratarCadenaConComillas(condicionTratada)

    //Eliminar blancos intermedios entre operadores y palabras
  
   if (condicionTratada.search(" ,")!=1)
        {
        bus=condicionTratada.search(" ,")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/ ,/g, ",")
                    bus=condicionTratada.search(" ,")
                }
        }

        if (condicionTratada.search(", ")!=1)
        {
            bus=condicionTratada.search(", ")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/, /g, ",")
                    bus=condicionTratada.search(", ")
                }
        }
        if (condicionTratada.search(" &")!=1)
        {
            bus=condicionTratada.search(" &")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/ &/g, "&")
                    bus=condicionTratada.search(" &")
                }
        }

        if (condicionTratada.search("& ")!=1)
        {
            bus=condicionTratada.search("& ")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/& /g, "&")
                    bus=condicionTratada.search("& ")
                }
        }
        
        if (condicionTratada.search(" :")!=1)
        {
        bus=condicionTratada.search(" :")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/ :/g, ":")
                    bus=condicionTratada.search(" :")
                }
        }

        if (condicionTratada.search(": ")!=1)
        {
            bus=condicionTratada.search(": ")
            while (bus !=-1)
                {
                    condicionTratada=condicionTratada.replace(/: /g, ":")
                    bus=condicionTratada.search(": ")
                }
        }
         

    // Entrecomillar cada condición
    condicionTratada=condicionTratada.replace(/ /g, "+");
    condicionTratada=condicionTratada.replace(/,/g, "\",\"");
    condicionTratada=condicionTratada.replace(/&/g, "\"&\"");
    condicionTratada=condicionTratada.replace(/:/g, "\":\"");
    
    // Recuperar los caracteres especiales para evitar que el "escape"
    // que se aplica posteriormente cause un error al convertir por
    // ejemplo el %2C en %252C (pone el caracter escape del %)
    condicionTratada=unescape(condicionTratada)

    // Devolver la condición tratada
    return "\""+escape(condicionTratada)+"\""
    //  return "\""+condicionTratada+"\""
}


var aFramesList = new Array();
var objIframeId = null;

function voidOnLoad(){
	objIframeId = document.getElementsByTagName( "iframe" );
	
	for( var i = 0; i < objIframeId.length; i++ ){
		if( ( aFramesList[ objIframeId.item( i ) ] )? false:true ){
			aFramesList[ objIframeId.item( i ).name ] = new Object();
			aFramesList[ objIframeId.item( i ).name ].iframe = objIframeId.item( i );
			aFramesList[ objIframeId.item( i ).name ].bolOpen = false;
			//aFramesList[ objIframeId.item( i ).name ].height = aFramesList[ objIframeId.item( i ).name ].iframe.height;
			aFramesList[ objIframeId.item( i ).name ].height = "180px";
			
		}
		aFramesList[ objIframeId.item( i ).name ].iframe.height = "0";
	}
}

function voidShowHideIndex( pStrFrameId ){
	if( aIframeLoaded[ "boliframeIndex" + pStrFrameId ] ){
		if( aFramesList[ "iframeIndex" + pStrFrameId ].bolOpen ){
			aFramesList[ "iframeIndex" + pStrFrameId ].bolOpen = false;
			aFramesList[ "iframeIndex" + pStrFrameId ].iframe.height = "0";
		}else{
			for( var i = 0; i < objIframeId.length; i++ ){
				if( objIframeId.item( i ).height != "0" ){
					aFramesList[ objIframeId.item( i ).name ].bolOpen = false;
					objIframeId.item( i ).height = "0";
				}
			}
			aFramesList[ "iframeIndex" + pStrFrameId ].input = document.getElementById( pStrFrameId );	
			aFramesList[ "iframeIndex" + pStrFrameId ].iframe.height = aFramesList[ "iframeIndex" + pStrFrameId ].height;
			aFramesList[ "iframeIndex" + pStrFrameId ].bolOpen = true;
		}
	}else{
		alert( "No ha podido cargarse la lista" );
	}
}


