//<!-- Variables globales -->
<!--

var nn  = (document.layers) ? true : false;
var ie  = (document.all) ? true : false;
var ie5 = (ie && navigator.appVersion.indexOf("5.") >= 0) ? true : false;
var ie50 = (ie && navigator.appVersion.indexOf("5.0") >= 0) ? true : false;
var n6  = (navigator.userAgent.indexOf('Gecko') != -1) ? true : false;

// Parche para el Internet Explorer 5.0
    if (ie50) var undefined = "";

if (n6)
{
  document.layers = document.getElementsByTagName('div');
  for ( var i=0 ; i < document.layers.length - 1 ; i++ ) // Crea un array asociativo con las capas.
    document.layers[document.layers[i].id] = document.layers[i];
        
    nn=false;
}
var ly;
if(nn || n6) ly = document.layers;
if(ie)  ly = document.all;


//Nuevas funciones para campos calculados

function noEsNumero( numero ) 
{
//  var re = /^(\d|\.)+$/;
//  return re.test(numero);
        return isNaN(numero);
}
function formateoNumero (numero)
{
    //se pone en texto para asegurar el replace
    numero = numero+"";
    //borra los puntos de miles
    var sinPuntos = numero.replace(/\./g, "");
    //cambia coma de decimales por punto
    return  sinPuntos.replace(/,/g, ".");
}

function mascaraNumero (numeroSinMasc, mascara)
{	
    //Si mascara no tiene puntos borra puntos de valor
     if (mascara.indexOf(".") == -1){
          return numeroSinMasc.replace(/\./g, "");
     }
     
    //se formatea para incluir mascara de numeros
    //numeroSinMasc = formateoNumero(numeroSinMasc);
  
    numeroSinMasc = ""+numeroSinMasc;
    
    //cambia el punto de decimal por coma
    if (numeroSinMasc.indexOf(".") != -1)
    {
        //numeroSinMasc = numeroSinMasc.replace(/\./g, "");
        numeroSinMasc = numeroSinMasc.replace(/\./g, ",");
    }
    // pone separadores de miles y concatena el decimal
    var textoAux = numeroSinMasc;
    var decimales = "";
    var signo = "";
    var posComa = numeroSinMasc.indexOf(",");
    if ( posComa!= -1)
    {
        textoAux = numeroSinMasc.substring(0,posComa);
        decimales = numeroSinMasc.substring(posComa);
    } 
    else
    {
        var ndecim=2;   // Por defecto y si no viniera máscara
                        // asumo 2 decimales.
        var auxmasc=mascara.split(',');
        if(auxmasc.length>1)
        {
            ndecim=auxmasc[1].length;
            for(i=0;i<ndecim;i++)
                decimales+="0";
            decimales=","+decimales;
        }

    }

    var posSigno = textoAux.indexOf("-");
    if (posSigno != -1){
         textoAux = textoAux.substring(posSigno+1);
          signo ="-";
    }

    
    var contador = 1;
    for (var i=textoAux.length; i>=0 ; i--){
	var tempContador = contador % 3;
        if (tempContador === 0){
             if (textoAux.substring(0,(i-1)) !== ""){
             textoAux = textoAux.substring(0,(i-1)) +"."+textoAux.substring(i-1);
             }
        }
        contador++;
    }
    //valor OK    
    return (signo+textoAux+decimales);

}


function campoCalculado(formulario, fuenteEvento, mask)
{	
    var SwListaCamp=false;
    var c1=new Array();
    var c2=new Array();
    var n1=new String();
    var n2=new String();
    var listaCampos=new Array();

    if (vCamposCalculados === null)
        return;

    var campo = "document."+formulario+"."+fuenteEvento.name;

    for (var i=0; i< vCamposCalculados.length; i++)
    {
        listaCampos = vCamposCalculados[i][2];

        var actualizarCampo = false;
        if(listaCampos.length==1) //Si solo 1 elemento, asumo suma de columnas.
        {
            c1=campo.split(';');
            if(c1.length>1)
                c1=c1[1].split(',');
            c2=listaCampos[0].split('E_');
            n1=new String(c1[0]);
            n2=new String(c2[1]);

            if(n1.toString()==n2.toString())
            {
                SwListaCamp=true;
                actualizarCampo=true;
                //Busqueda de todos los campos que componen la
                var ArrCamp=new Array();
                var elems=document.forms[0].elements;
                
                for(k=0;k<elems.length;k++)
                {
                    if(elems[k].type=="text")
                    {
                        var aux=new String(elems[k].name);
                        var aux1=aux.split(';');
                        if(aux1.length>1)
                        {
                            aux1=aux1[1].split(',');
                            var aux2=new String(aux1[0]);
                            if(aux2.toString()==n1.toString())
                            {
                                cambiaNombre(elems[k],'XL_');
                                ArrCamp[ArrCamp.length]=elems[k];
                            }
                        }
                    }
                }
            }
        }
        else
	{
            for (var j=0; j< listaCampos.length; j++)
            {
                if (listaCampos[j] == campo)
		{
                    actualizarCampo=true;
		}
            }
	}
        if (actualizarCampo)
	{
            if(SwListaCamp===false)   //Si no es lista de campos a sumar...
            {
                informaCampoCalculado(formulario, vCamposCalculados[i][0], vCamposCalculados[i][1], vCamposCalculados[i][2], mask);
            }
            else   //Si es lista de campos a sumar...
	    {
                informaCampoCalculado(formulario, vCamposCalculados[i][0], vCamposCalculados[i][1], ArrCamp, mask);
	    }
	}
    }
}

var sufijoNN = "";
if(nn) sufijoNN = "document.layers[0].";

function estableceFocoInicial (rutaComponente, nombre){
        var obj = eval(rutaComponente+nombre);
        //para poner foco en links y botones
        if (obj === null){
             var enlaces = document.anchors;
             for (var enlace=0; enlace <enlaces.length;enlace++){
                      if (enlaces[enlace].name == nombre){
                            document.anchors[enlace].focus();
                            break;
                     } 
             }
        }
        else     obj.focus();
        
}

function informaCampoCalculado(formulario, operador, resultado, listaCampos, mask)
{
    var SwRef=false;
//alert("informaCampoCalculado("+formulario+"::"+operador+"::"+resultado+"::"+listaCampos+"::"+mask);
    
    if(listaCampos[0].type) //Si son referencias a objetos en vez de nombres de campos...
	{
		if(listaCampos.length>0)
			{
				SwRef=true;
			}
	}

    //por el problema de NN que no inicializa el js
    if (sufijoNN === null)
	{
		sufijoNN = "document.layers[0].";
	}
    //se comprueban todos los campos
    for (j=0;j<listaCampos.length;j++)
    {
        if(SwRef===true)
		{
			campo=listaCampos[j];
		}        
	else
		{
			campo = eval(sufijoNN+listaCampos[j]);
		}
        //es combo
        if ((campo.name).indexOf('O_') === 0 )
        {
            indice=campo.selectedIndex;
            //lee del array de valores asociada a la combo
            valor = eval ("valores_"+campo.name)[indice];
        }
        else
	{
		valor = campo.value;
	}
        if (valor === "" )
        {
            campo.value = 0;
            valor = campo.value;
        }
        var campoResultado = eval(sufijoNN+resultado);
        valor = formateoNumero(valor);
        if (noEsNumero(valor))
        {
            campoResultado.value="";
            //llama por si resultado es un campo calculado
            campoCalculado(formulario, campoResultado);
            //no sigue con calculos del campo erroneo
            return;
        }
    }
    var operadorInt = eval(operador);
    var tempResult;
    //alert('Operacion: ' + operadorInt);
    switch (operadorInt)
    {
        //operador 1 suma
        case 1:
            tempResult= 0;
            //alert('Nº de Operandos: '+listaCampos.length);
            for (j=0; j< listaCampos.length; j++)
                {
                    //alert(j);
                    if(SwRef===true)
		    {
                        campo=listaCampos[j];
		    }
                    else
		    {
                        campo = eval(sufijoNN+listaCampos[j]);
		    }
                    //es combo
                    //alert('Valor del Campo formateado:' +campo.value);
                    if ((campo.name).indexOf('O_') === 0 )
                    {
                        indice=campo.selectedIndex;
                        //lee del array de valores asociada a la combo
                        valorCampo = formateoNumero(eval ("valores_"+campo.name)[indice]);
                    }
                    else
		    {
                        valorCampo = formateoNumero(campo.value);
		    }
                        //lo pone en base decimal
                    //alert('Valor del Campo desformateado:' +valorCampo+'\nValor parseFloat(valorCampo, 10):' +parseFloat(valorCampo, 10)+'\nValor eval(tempResult):' +eval(tempResult));
                    tempResult = parseFloat(valorCampo, 10) + eval(tempResult);
                    //tempResult = parseFloat(valorCampo, 10) + tempResult;
                }
		//campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		//var mask=new String(campoResultado.id);
		if(mask.toString()!="Z.ZZ9,99")
		{
			campoResultado.value = mascaraNumero(tempResult, mask.toString());
		}
		else
		{
			campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		}
                break;             
             
             //operador 2 resta    
             case 2:
                tempResult=0;
                for (j=0; j< listaCampos.length; j++)
                {
                    if(SwRef===true)
			{
				campo=listaCampos[j];
			}
                    else
			{
				campo = eval(sufijoNN+listaCampos[j]);
			}

                    //es combo
                    if ((campo.name).indexOf('O_') === 0 )
			{
				indice=campo.selectedIndex;
				//lee del array de valores asociada a la combo
				valorCampo = formateoNumero(eval ("valores_"+campo.name)[indice]);
			}
                    else
			{
				valorCampo = formateoNumero(campo.value);
			}
                    // pone en base decimal
                    tempResult = parseFloat(valorCampo, 10) - eval(tempResult);
                }
		//campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		//var mask=new String(campoResultado.id);
		if(mask.toString()!="Z.ZZ9,99")
		{
			campoResultado.value = mascaraNumero(tempResult, mask.toString());
		}
		else
		{
			campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		}
                break;             

              //operador 3 multiplica             
             case 3:
                tempResult=1;
                for (j=0; j< listaCampos.length; j++)
                {
                    if(SwRef===true)
			{
				campo=listaCampos[j];
			}
                    else
			{
				campo = eval(sufijoNN+listaCampos[j]);
			}

                    //es combo
                    if ((campo.name).indexOf('O_') === 0 )
                    {
                        indice=campo.selectedIndex;
                        //lee del array de valores asociada a la combo
                        valorCampo = formateoNumero(eval ("valores_"+campo.name)[indice]);
                    }
                    else
			{
				valorCampo = formateoNumero(campo.value);
			}
                            //lo pone en base decimal
                    tempResult = parseFloat(valorCampo, 10) * eval(tempResult);
                }
		//campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		//var mask=new String(campoResultado.id);
		if(mask.toString()!="Z.ZZ9,99")
			{
				campoResultado.value = mascaraNumero(tempResult, mask.toString());
			}
		else
			{
				campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
			}
                break;             

              //operador 4 divide             
             case 4:
                tempResult=1;
                for (j=0; j< listaCampos.length; j++)
                {
                    if(SwRef===true)
			{
				campo=listaCampos[j];
			}
                    else
			{
				campo = eval(sufijoNN+listaCampos[j]);
			}

                    //es combo
                    if ((campo.name).indexOf('O_') === 0 )
                    {
                        indice=campo.selectedIndex;
                        //lee del array de valores asociada a la combo
                        valorCampo = formateoNumero(eval ("valores_"+campo.name)[indice]);
                    }
                    else
			{
				valorCampo = formateoNumero(campo.value);
			}
                    // pone en base decimal
                    if (eval(tempResult) === 0)
			{
				tempResult=0;
			}
                    else 
			{
			tempResult = parseFloat(valorCampo, 10) / eval(tempResult);
			}
                }
		
		//campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		//var mask=new String(campoResultado.id);
		if(mask.toString()!="Z.ZZ9,99")
		{
			campoResultado.value = mascaraNumero(tempResult, mask.toString());
		}
		else
		{
			campoResultado.value = mascaraNumero(tempResult, "Z.ZZ9,99");
		}
                break;      
	    default:
		break;

        }
        //llama por si resultado es un campo calculado
        campoCalculado(formulario, campoResultado, mask);
        campoResultado.onchange();
}
//fin campos calculados

// combos asociadas a secundarias

function cambiaCombo(obj, contenidoComboSegunda){
  contenidoComboSegunda = eval(contenidoComboSegunda);
    var indice = obj.selectedIndex;
    var valorSelec=    obj[indice].value;
    var arraySelec;
    var j;
    valorSelec= valorSelec.replace(/\,/g, "");

    var arrayValores = eval('valores'+obj.name);
    var encontrado = false;
    for (j=0;j<arrayValores.length;j++){
            if (arrayValores[j] == valorSelec){ 
                encontrado = true;
                break;
            }
    }
    if (encontrado){
      arraySelec =eval(valorSelec);
    }
    else{
        //limpia combo
        contenidoComboSegunda.length = 0;
        return;
    }
    //el numero de elementos es menos el primero (dato comun a todas- no elemento de segunda combo)
    contenidoComboSegunda.length = arraySelec.length-1;
    for (i=0; i<arraySelec.length-1 ; i++){
     var opcion=arraySelec[i+1].split(';');
     contenidoComboSegunda[i].text = opcion[0];
     contenidoComboSegunda[i].value = arraySelec[0]+opcion[1];
    }
 contenidoComboSegunda[0].selected = true;
}

function seleccionaValor(combo, valor){

//     alert ("seleccionar "+valor+" en combo "+combo.name);
var opciones = combo.options;
for(i=0 ;i< opciones.length;i++){
    if(opciones[i].text == valor){
        combo.selectedIndex = i;
        break;
    }
}
}

// fin combos secundarias

// ************* Combos Asociadas a campos
function ComparaNombresAsociados(str,nomb)
{
    var posic_=nomb.indexOf('_');
    var name=nomb.substr(posic_+1);

    if(name==str)
        return true;
    else
        return false;
}
function RecortaPosic(nelem,posic)
{
    var arraux=null;
    var arr=new Array();
    if(SWComboSecundConAsoc===false)
        arraux=ElementosCamposAsociados;
    else
        if(RefComboPrimaria===null)
            arraux=ElementosCamposAsociados[0];
        else
        {
            var auxpos=RefComboPrimaria.selectedIndex;
            arraux=ElementosCamposAsociados[auxpos];
        }

    var str=new String(arraux[nelem]);
    arr=str.split('#|#');
    if(posic<=arr.length)
        return arr[posic];
    else
        return '';
}

function RecuperaValor(obj,posic)
{
    var pos=0;
    if(obj!==null)
        pos=obj.selectedIndex;
    var valor=RecortaPosic(pos,posic);
    return valor;
}

function AlimentaCamposAsociados(formul,obj)
{
    var elems=document.forms[0].elements;
    for(i=0;i<elems.length;i++)
    {
        if(elems[i].type!==null)
	{
            if(elems[i].type=="text")
	    {
                for(j=0;j<CabeceraCamposAsociados.length;j++)
		{
                    if(ComparaNombresAsociados(CabeceraCamposAsociados[j],elems[i].name)===true)
		    {
                        elems[i].value=RecuperaValor(obj,j);
		    }
		}
	    }
	}
   }
}
// *************** Fin Combos Asociadas a campos


//<!-- Funciones Transferencia Caracterísiticas -->
function eliminaNoValidos(indexArrayName)
{
         var aux = eval("vNoValido"+indexArrayName);
        if(!nn){
            for(var i=0; i< aux.length; i++)
            {
                  var obj = eval("document.forms["+indexArrayName+"].elements[\""+aux[i]+"\"]");
                 obj.className = "normalOK";
            }
        }
        eval("vNoValido"+indexArrayName +"= new Array();");
}

function eliminaElementoArray(objName, arrayName)
{
         if(objName.indexOf("X_")!=-1 || objName.indexOf("E_")!=-1) objName = objName.substring(2);

        var original = eval(arrayName);
        if(original != undefined){
            var copia = new Array();
            var j=0;
            for(var i=0; i< original.length; i++)
            {
                     if(original[i] != objName){
                     copia[j] = original[i];
                     j++;
                    }
            }
            eval(arrayName+"= copia;");
        }

}

function actualizaElementoArray(objName, arrayName)
{
         if(objName.indexOf("X_")!=-1 || objName.indexOf("E_")!=-1) objName = objName.substring(2);
        var original = eval(arrayName);
        if(original != undefined){
            var encontrado = false;
            for(var i=0; i< original.length; i++)
            {
                             if(original[i] == objName){
                                        encontrado = true;
                                        break;
                            }
            }
            if(!encontrado) original[original.length] = objName;
            eval(arrayName+"= original;");
            }

}

function actualizaEstilo(formulario, arrayName)
{
         var original = eval(arrayName);
        var modificado = eval(arrayName.substring(3));
        var obj;
        if(!nn){
            // Establece normalNOK originales
            for(var i=0; i< original.length; i++)
            {
                         obj = eval("formulario.elements['"+original[i]+"']");
                        if(obj.type==="text" && obj.defaultValue === "") obj.className = "normalOK";
                        else    obj.className = "normalNOK";
            }
            // Establece normalOK si hay alguno que se ha modificado
             for(i=0; i<modificado.length; i++)
            {
                             var encontrado = false;
                            for(var j=0; j<original.length; j++)
                            {
                                 if(modificado[i] == original[j])
                                {
                                         encontrado = true;
                                        break;
                                }
                            }
                            if(!encontrado)
                            {
                                  obj = eval("formulario.elements['"+modificado[i]+"']");
                                        obj.className = "normalOK";
                            }
            }


        }
        arrayName = arrayName.substring(3);        
        eval(arrayName+"=original");
}
//<!-- Funciones propias de componentes -->
//<!-- Campo -->

function validarFecha(obj, indexArrayName)
{
     var lafecha = obj.value; 
  var re = /^\d{2}\/(0[1-9]|1[0-2])\/\d{4}$/;
    
    if((lafecha === "" || lafecha === "  /  /    "))
    {
         obj.className = "normalOK";
        eliminaElementoArray(obj.name, "vCalNoValido"+indexArrayName);
      return true;
    } 
                             
  if ( !re.test(lafecha) ){ 
         obj.className = "normalNOK";
         actualizaElementoArray(obj.name, "vCalNoValido"+indexArrayName);
         return false;
    } 

  var findemes = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  var f = lafecha.split("/");
  f[0] = Number(f[0]); f[1] = Number(f[1]); f[2] = Number(f[2]);

  if ( (f[2]%4 === 0 && f[2]%100 !== 0 ) || f[2]%400===0 )
    findemes[1] = 29;

  if ( f[2] === 0 || f[0] === 0 || f[0] > findemes[ f[1]-1 ] ){
          obj.className = "normalNOK";
          actualizaElementoArray(obj.name, "vCalNoValido"+indexArrayName);
          return false;
    }
            
     obj.className = "normalOK";
     eliminaElementoArray(obj.name, "vCalNoValido"+indexArrayName);
     return true; 
}

function validaMascNum(obj,indexArrayName, mascara)
{
    var error = "";
    if(obj.value!=="")
    {
        if(noEsNumero(formateoNumero(obj.value)) || obj.value.indexOf (".") != -1 )
            error = "El formato es incorrecto.\nTeclee el número utilizando de separador decimal la coma (,).";
        else
        {
            valorCampo = obj.value;
            posComaMascara = mascara.indexOf (",");
            posComaValor = valorCampo.indexOf (",");
            if (posComaMascara != -1 )
            {
                var numeroDecimalesMascara = mascara.substring(posComaMascara+1).length;
                var decimal=''; // decimales de la mascara a cero
                while (decimal.length<numeroDecimalesMascara)
		{
			decimal+='0';
		}
                if ( posComaValor != -1 ) // los dos tienen coma comprobar longitud decimales
                {
                    var numeroDecimalesValor = valorCampo.substring(posComaValor+1).length;
                    if (numeroDecimalesMascara < numeroDecimalesValor) //error mas decimales en campo
                        error= "El formato es incorrecto.\nIntroduzca "+numeroDecimalesMascara+" decimales.";
                    //se rellena de ceros hasta el numero en la mascara
                    else if (numeroDecimalesMascara > numeroDecimalesValor)
                        obj.value = obj.value + decimal.substring(numeroDecimalesValor);
                }
                else
                    obj.value = obj.value +","+ decimal;
            }
            else if ( posComaValor != -1) // mascara no permite coma valor con coma
                error = "El formato es incorrecto.\n Introduzca el número sin decimales."; 
        }
    }
    
    if ( error === "" )
    {
        obj.className = "normalOK";
        eliminaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
    }
    else
    {
        obj.className = "normalNOK";
        actualizaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
        alert(error);
    }
}

//<!-- ComboBox -->
function initialIndex(objName, indexArrayName)
{
      if(objName.indexOf("X_")!=-1) objName = objName.substring(2);
     var ind = -1;
     var aux = eval("vCombo"+indexArrayName);
     for(var i=0; i<aux.length; i++)
     {
         if(aux[i].indexOf(objName)!=-1)
         {
              ind = aux[i].substring(aux[i].length-1,aux[i].length);
                break;
            }
         }
        
        return ind;

}

//<!-- Boton -->
function validarCampos(indexArrayName)
{
             var res = false;
            var ind = 0;
            var aux = eval("vNoValido"+indexArrayName);
            var cal = eval("vCalNoValido"+indexArrayName);
            var num = eval("vNumNoValido"+indexArrayName);

            if((aux!=undefined && aux.length === 0) || aux==undefined) ind++;
            if((cal!=undefined && cal.length === 0) || cal==undefined) ind++;
            if((num!=undefined && num.length === 0) || num==undefined) ind++;
            if(ind===3)res=true;
                        
            if(!res)     alert("Existen campos incorrectos.");
            return res;
}

function Reset(indexArrayName, formulario)
{
             var obj;
            var resultado;

             for(var i=0; i< formulario.length; i++)
            {
                 obj = formulario.elements[i];
                
                // Actualiza valor                    
                if(obj.type == "select-one") obj.selectedIndex = initialIndex(obj.name, indexArrayName);
                else if(obj.type == "text" || obj.type == "password") obj.value = obj.defaultValue;
                
                // Actualiza color
                actualizaEstilo(formulario, "orgvNoValido"+indexArrayName);
                actualizaEstilo(formulario, "orgvCalNoValido"+indexArrayName);
                actualizaEstilo(formulario, "orgvNumNoValido"+indexArrayName);                
            }
}

var printerwindow;

//Imprimir(capa[, e, destino, parametros])
function Imprimir(capa)
{
    var formulario;
    var strLocation=new String(document.location);
    var nombreVentana;
    var destino;
    var parametros;
    
    strLocation=strLocation.toLowerCase();
    //window.open(_url,'imprimir','width=750,height=700,toolbar=0,location=0,directories=0,status=0,scrollbars=1,menubar=0,resizable=1,left="10",top="10",screenX="750",screenY="600"');
    if(nn)
        formulario = document.layers[capa].document.forms[0];
    else
    {
        var indexFormulario = document.forms.length - 1;
        formulario = document.forms[indexFormulario];
    }
    if(arguments.length>1)
    {
        nombreVentana=Math.round(Math.random()*100);
        destino=arguments[2];
        parametros=arguments[3];
        if ( arguments[1] === "" )
        {
            if(strLocation.indexOf('kiosko')>-1) // Si es kiosko ...
            {
                document.location=destino;
            }
            else // Si NO es kiosko ...
            {
                window.open(destino,nombreVentana,parametros);
            }
            return;
        }
        formulario.e.value = arguments[1];
    }
    else
    {
        parametros='width=750,height=700,toolbar=0,location=0,directories=0,status=0,scrollbars=1,'+
                   'menubar=0,resizable=1,left="10",top="10",screenX="750",screenY="600"';
        nombreVentana='imprimir';
        formulario.e.value = "i";

    }
    
//    formulario.mm.value='false';

//    var ventana = null;
//    var targetAnt = null;
    
//    if(strLocation.indexOf('kiosko')<0) // Si NO es kiosko ...
//    {
//        ventana = window.open('../siglo21/estandar/recursos/void.html',nombreVentana,parametros);
//        targetAnt = formulario.target;
//        formulario.target = ventana.name;
//    }
    
    formulario.submit();
//    if(strLocation.indexOf('kiosko')<0) // Si NO es kiosko ...
//    {
//        formulario.target = targetAnt;
//        if(!n6 && !nn)
//            ventana.focus();
//    }
    formulario.mm.value='true';
}

function imprimirIE()
{
/*
 	if (!n6 && !nn){
		window.print();
 	}   
	*/
}

function imprimirNN(capa){
        window.print();
        return false;
}


//<!-- CheckBox -->
function actualizaCheckbox(obj, sufix)
{
         var name = "E_" + obj.name;
        var layerName = "";
        if(nn) layerName = "document.layers[\""+sufix+"\"]."; 
    
        if(obj.checked)    eval(layerName + "document.formulario"+sufix+"."+name+".value = \"1\";");
        else     eval("document.formulario"+sufix+"."+name+".value = \"0\";");
    
}
//<!-- Lista -->
function GetElementos(formulario,tipo,nombre)
{
    var arr_aux=new Array();
     if(formulario)
	var j = 0;
        for(var i=0;i<formulario.elements.length;i++)
	{
            if(formulario.elements[i].type==tipo)            // Si es del tipo que nos interesa...
	    {
                if(nombre==='')                                // De cualquier nombre.
		{
                    arr_aux[j]=formulario.elements[i];
		    j++;
		}
                else
		{
                    if(formulario.elements[i].name==nombre) // Del nombre que nos interesa.
		    {
                        arr_aux[j]=formulario.elements[i];
			j++;
		    }
		}
	    }
        }    
     if(arr_aux.length>0)
        return arr_aux;
     else
        return null;
}


function OcultaCapa(c)
{
    if (!ly[c]) return;
  if(nn) ly[c].visibility = 'hidden';
  if(ie || n6) ly[c].style.visibility = 'hidden';
}

function ScreenRes()
{
	return screen.width+"x"+screen.height;
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,'');
}

function formateaIntMiles(num)
{
	var ret='';
	var strAux='';
    var arr=num.split(',');
    var i;
    var j = 0;

	if(arr[0].length>3)
    {
    	for(i=arr[0].length-1;i>=0;i--)
        {
        	if(j==3)
            {
            	strAux+='.'+arr[0].charAt(i);
                j=1;
            }
            else
            {
            	strAux+=''+arr[0].charAt(i);
                j++;
            }
        }
    }
    else
    {
    	ret=arr[0];
    }
    for(i=strAux.length-1;i>=0;i--)
    {
    	ret+=''+strAux.charAt(i);
    }
    
    if(arr.length>1)
    	ret+=','+arr[1];
    return ret;
}

function mascara(obj,indexArrayName,arqmask)
{
    var mask=arqmask;//new String(obj.arqmask);
    var valor=new String(obj.value);

    var err='';

    var swNumerica=false;
    var swSigno=false;
    var swDecim=false;
    var swSepMiles=false;
    var swRellenaInt=false;
    var nRellenaInt=0; 
    var swRellenaDec=false;
    var nRellenaDec=0;
    var maxNdecim=0;
    var maxNint=0;
    var i = 0;
	var nombreClase = obj.className;
	var nombresClases = nombreClase.split(/\s/);
		
    if(mask==='') // Si la máscara es vacía, no se valida nada.
	return;
    var arrMask=mask.split(',');
	/* *** Análisis de la máscara. *** */
    if(mask.indexOf('B')==-1)					swNumerica=true;
    if(swNumerica===true)
    {
        if(mask.charAt(0)=='+' || mask.charAt(0)=='-')		swSigno=true;
	if(mask.indexOf(',')>-1)				swDecim=true;
	if(mask.indexOf('.')>-1)				swSepMiles=true;
	if(arrMask[0].indexOf('9')>-1)				swRellenaInt=true;
	if(swRellenaInt===true) 
	{
            for(i=0;i<arrMask[0].length;i++)
		{
			if(arrMask[0].charAt(i)==9)
				{
					nRellenaInt++;
				}
		}
	}
        if(swDecim===true && arrMask[1].indexOf('9')>-1)		
	{
	swRellenaDec=true;
	}
    	if(swRellenaDec===true) 
	{
		for(i=0;i<arrMask[1].length;i++)
		{
			if(arrMask[1].charAt(i)==9)
			{
				nRellenaDec++;
			}
		}
	}
        for(i=0;i<arrMask[0].length;i++)
	{
		if(arrMask[0].charAt(i)=='Z' || arrMask[0].charAt(i)=='9')
		{
			maxNint++;
		}
	}
	
        if(swDecim===true)
	{
            for(i=0;i<arrMask[1].length;i++)
		{
			if(arrMask[1].charAt(i)=='Z' || arrMask[1].charAt(i)=='9')
			{
				maxNdecim++;
			}
		}
	}	
    }
//    else
//    {
    	/* *** Tratamiento de mascaras NO Numéricas *** */
//    }
	/* *** FIN Análisis de la máscara. *** */
		
	/* *** Análisis del DATO *** */
	if(valor==='')
	{
		return;
	}
	var arrValor=valor.split(',');
	var auxInt='';
	var c_0=new String('0');
	var c_9=new String('9');
    
	for(i=0;i<arrValor[0].length;i++)
	{
		if(arrValor[0].charCodeAt(i)>=c_0.charCodeAt(0) && arrValor[0].charCodeAt(i)<=c_9.charCodeAt(0))
        	{
			auxInt+=''+arrValor[0].charAt(i)+'';
		}
	}
	if(swNumerica===true)
	{
		var trimValor=trim(valor);
		if(swSigno)
		{
			if(trimValor.charAt(0)!='-' && trimValor.charAt(0)!='+')
			{
				err='El formato es incorrecto.\nDebe introducir el signo + / - por delante del número.';
			}
		}
		else 
		{
			if(!swSigno)
			{
				if(trimValor.charAt(0)=='-' || trimValor.charAt(0)=='+')
				{
					err='El formato es incorrecto.\nNo debe introducir el signo + / - por delante del número.';
				}
			}
		}
        
		if(swDecim)
		{
			if(arrValor.length>2)
			{
				err='El formato es incorrecto.\nDemasiados separadores decimales.';
			}
			else 
			{
				if(arrValor.length<2)
				{
					//err='El formato es incorrecto.\nDebe introducir '+nRellenaDec+' decimales.';
					obj.value+=',';
					for(i=0;i<nRellenaDec;i++)
					{
						obj.value+='0';
					}
				}
				else 
				{
					if(arrValor[1].length<nRellenaDec)
					{
			//err='El formato es incorrecto.\nDebe introducir al menos '+nRellenaDec+' decimales y no más de '+maxNdecim+'.';
						for(i=0;i<(nRellenaDec-arrValor[1].length);i++)
						{
							obj.value+='0';
						}				
					}
					else
					{
						if(arrValor[1].length>maxNdecim)
						{
							err='El formato es incorrecto.\nDebe introducir al menos '+nRellenaDec+' decimales y no más de '+maxNdecim+'.';
						}
						for(i=0;i<arrValor[1].length;i++)
						{
							if(arrValor[1].charCodeAt(i)<c_0.charCodeAt(0)  || arrValor[1].charCodeAt(i)> c_9.charCodeAt(0))
							{
								err='El formato es incorrecto.\nÚnicamente puede introducir números en la parte decimal.';
							break;
							}
						}
					}
				}
			}
		}
		else 
		{
			if(!swDecim)
			{
				if(arrValor.length>=2)
				{
					err='El formato es incorrecto.\nNo debe introducir decimales.';        
				}
			}
		}
		if(!swSepMiles)
		{
			for(i=0;i<arrValor[0].length;i++)
			{
				if(arrValor[0].charCodeAt(i)<c_0.charCodeAt(0) || arrValor[0].charCodeAt(i)>c_9.charCodeAt(0))
				{	    
					err='El formato es incorrecto.\nNo debe usar separador de miles.';
					break;
				}
			}
		}
		else 
		{
			if(swSepMiles)
			{
				for(i=0;i<arrValor[0].length;i++)
				{
				    if((arrValor[0].charCodeAt(i)<c_0.charCodeAt(0) || 
					arrValor[0].charCodeAt(i)>c_9.charCodeAt(0)) && 
					(arrValor[0].charAt(i)!='.' && arrValor[0].charAt(i)!='+' && arrValor[0].charAt(i)!='-'))
				    {
					err='El formato es incorrecto.\nÚnicamente puede introducir \'.\' como separador de miles.';
					break;
				    }
				}
			    
				var arrAuxInt=arrValor[0].split('.');
    	        var str = ' ' ;
    	        var maxlength = null;
    	        for (var att in obj)
    	        {
    	        	attributesArray = obj.getAttribute(att);
    	        	if (attributesArray != null)
    	        	{
	    	        	if ('maxLength' == att)
    	        			maxlength = attributesArray;
	        		}
    	        }    	        
    	        
        	    if((auxInt.length>3) && (arrAuxInt.length<=1))
            	{
	            	if ((maxlength != null) && (maxlength >0 ))
	            	{
		            	if (arrAuxInt[0].length <maxlength)
		            	obj.value=formateaIntMiles(obj.value);
	            	}
	            	else
	            	{
                    	//err='El formato es incorrecto.\nDebe utilizar \'.\' como separador de miles.';
                    	obj.value=formateaIntMiles(obj.value);
                	}
                }
				j=arrAuxInt.length-1;
				for(i=0;((i<arrAuxInt.length)&&(j>0));i++,j--)
				{
				    var trimAuxInt=trim(arrAuxInt[i]);
					
				    if(arrAuxInt[j].length!==3 || trimAuxInt.length===0)
				    {
					err='El formato es incorrecto.\nSeparador de miles mal ubicado.';
					break;
				    }
				}
			}
		
		}
		if(swRellenaInt)
		{
			if(auxInt.length<nRellenaInt)
			{
				//err='El formato es incorrecto.\nDebe introducir al menos '+nRellenaInt+' enteros y no más de '+maxNint+'.';
				var aux_00='';
				for(i=0;i<(nRellenaInt-auxInt.length);i++)
				{
					aux_00+='0';
				}
				if(!swSepMiles)
				{
					obj.value=aux_00+''+obj.value;
				}
				else
				{
					obj.value=formateaIntMiles(aux_00+''+obj.value);
				}
			}
			else 
			{
			    if(auxInt.length>maxNint)
			    {
				err='El formato es incorrecto.\nDebe introducir al menos '+nRellenaInt+' enteros y no más de '+maxNint+'.';
			    }
			}
		}
		
		try
		{
		    var auxVal=valor.replace(/\./g,'');
		    auxVal=auxVal.replace(/\,/g,'.');
		    //alert(auxVal);
		    var nDato=parseFloat(auxVal);
		    var strMask=mask.replace(/Z/g,'9');
		    strMask=strMask.replace(/\./g,'');
		    strMask=strMask.replace(/\,/g,'.');
		    //alert(strMask);
		    var nMask=parseFloat(strMask);
		    if(nDato>nMask)
		    {
			err='El número introducido es mayor que el permitido.';
			//Sustituimos el valor por el 0
			var valorNuevo=mask.replace(/Z/g,'');
			valorNuevo=valorNuevo.replace(/9/g,'0');
			valorNuevo=valorNuevo.replace(/[.][.]+/g,'');
			obj.value=valorNuevo;
		    }
		}
		catch(e)
		{
	        err='El formato es incorrecto.\nNo se puede comprobar el valor introducido.\nRevise que el formato sea correcto.';
		}
        }
	/* *** FIN Análisis del DATO *** */

    if (err!=='')
    {
    	if(nombresClases.length==0){
    		nombreClase="normalNOK";
    	}else{
    		nombreClase="";
    		for(i=0;i<nombresClases.length;i++){
    			if(nombresClases[i]=="normalOK"){
    				nombreClase = nombreClase+" normalNOK";
    			}else{
    				nombreClase = nombreClase+" "+nombresClases[i];
   				}
    		}
    	}
        obj.className = nombreClase;
        actualizaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
        actualizaElementoArray(obj.name, "vNoValido"+indexArrayName);
        alert(err);
	//obj.focus(); Cuidado!! Podemos entrar en bucle infinito.
    }
    else
    {
    	if(nombresClases.length==0){
    		nombreClase="normalNOK";
    	}else{
    		nombreClase="";
    		for(i=0;i<nombresClases.length;i++){
    			if(nombresClases[i]=="normalNOK"){
    				nombreClase = nombreClase+" normalOK";
    			}else{
    				nombreClase = nombreClase+" "+nombresClases[i];
   				}
    		}
    	}
        obj.className = nombreClase;
        eliminaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
        eliminaElementoArray(obj.name, "vNoValido"+indexArrayName);
    }
}

function mascaraDecimal(obj,indexArrayName,arqmask){
    var mask=arqmask;//new String(obj.arqmask);
    var valor=new String(obj.value);

    var err='';

    var swRellenaDec=false;
    var nRellenaDec=0;
    var maxNdecim=0;
    var i = 0;
	var nombreClase = obj.className;
	var nombresClases = nombreClase.split(/\s/);
		
    if(mask==='') // Si la máscara es vacía, no se valida nada.
	return;
	
	if(mask.indexOf('9')>-1)		
	{
		swRellenaDec=true;
	}
	
	for(i=0;i<mask.length;i++)
	{
		if(mask.charAt(i)==9)
		{
			nRellenaDec++;
		}
	}
    for(i=0;i<mask.length;i++)
	{
		if(mask.charAt(i)=='Z' || mask.charAt(i)=='9')
		{
			maxNdecim++;
		}
	}
		
	/* *** Análisis del DATO *** */
	if(valor==='')
	{
		return;
	}
	var c_0=new String('0');
	var c_9=new String('9');
    
	if(valor.length<nRellenaDec)
	{
		for(i=0;i<(nRellenaDec-valor.length);i++)
		{
			obj.value+='0';
		}				
	}
	else
	{
		if(valor.length>maxNdecim)
		{
			err='El formato es incorrecto.\nDebe introducir al menos '+nRellenaDec+' decimales y no más de '+maxNdecim+'.';
		}
		for(i=0;i<valor.length;i++)
		{
			if(valor.charCodeAt(i)<c_0.charCodeAt(0)  || valor.charCodeAt(i)> c_9.charCodeAt(0))
			{
				err='El formato es incorrecto.\nÚnicamente puede introducir números en la parte decimal.';
			break;
			}
		}
	}

	try
	{
	    var auxVal=valor.replace(/\./g,'');
	    auxVal=auxVal.replace(/\,/g,'.');
	    //alert(auxVal);
	    var nDato=parseFloat(auxVal);
	    var strMask=mask.replace(/Z/g,'9');
	    strMask=strMask.replace(/\./g,'');
	    strMask=strMask.replace(/\,/g,'.');
	    //alert(strMask);
	    var nMask=parseFloat(strMask);
	    if(nDato>nMask)
	    {
		err='El número introducido es mayor que el permitido.';
		//Sustituimos el valor por el 0
		var valorNuevo=mask.replace(/Z/g,'');
		valorNuevo=valorNuevo.replace(/9/g,'0');
		valorNuevo=valorNuevo.replace(/[.][.]+/g,'');
		obj.value=valorNuevo;
	    }
	}
	catch(e)
	{
        err='El formato es incorrecto.\nNo se puede comprobar el valor introducido.\nRevise que el formato sea correcto.';
	}

    if (err!=='')
    {
    	if(nombresClases.length==0){
    		nombreClase="normalNOK";
    	}else{
    		nombreClase="";
    		for(i=0;i<nombresClases.length;i++){
    			if(nombresClases[i]=="normalOK"){
    				nombreClase = nombreClase+" normalNOK";
    			}else{
    				nombreClase = nombreClase+" "+nombresClases[i];
   				}
    		}
    	}
        obj.className = nombreClase;
        actualizaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
        actualizaElementoArray(obj.name, "vNoValido"+indexArrayName);
        alert(err);
	//obj.focus(); Cuidado!! Podemos entrar en bucle infinito.
    }
    else
    {
    	if(nombresClases.length==0){
    		nombreClase="normalNOK";
    	}else{
    		nombreClase="";
    		for(i=0;i<nombresClases.length;i++){
    			if(nombresClases[i]=="normalNOK"){
    				nombreClase = nombreClase+" normalOK";
    			}else{
    				nombreClase = nombreClase+" "+nombresClases[i];
   				}
    		}
    	}
        obj.className = nombreClase;
        eliminaElementoArray(obj.name, "vNumNoValido"+indexArrayName);
        eliminaElementoArray(obj.name, "vNoValido"+indexArrayName);
    }
}

function getSesion()
{
    var s=new String(document.cookie);
    alert(s);
    var arrCook=s.split(';');
    for(var i=0; i<arrCook.length;i++)
    {
        var arr=arrCook[i].split('=');
        //alert('Nombre Cookie: '+arr[0]);
        if(arr[0].indexOf('JSESSIONID')!=-1 || arr[0].indexOf('sesessionid')!=-1)
        {
            //alert('Nombre Cookie: '+arr[0]);
            if(arr[1].indexOf(':')!=-1) // En caso de WAS
            {
                var arrClave=arr[1].split(':');
                var auxClv=arrClave[0].substr(4);
                //alert('Clave Cifrado: '+auxClv+auxClv+auxClv);
                return auxClv+auxClv+auxClv;
            }
            else
            {
                //alert('Clave Cifrado: '+arr[1]+arr[1]+arr[1]);
                return arr[1]+arr[1]+arr[1];
            }
            
        }
    }
    return '';
}

function cifrado(obCampo)
{
    var ret='';
    var clave=getSesion();
    var dato=new String(obCampo.value);
    //alert('Valor del Campo antes de Cifrar: '+dato);
    if(clave.length>0 && clave.length>dato.length)
    {
        for(var i=0;i<dato.length;i++)
        {
            ret+=String.fromCharCode(dato.charCodeAt(i)^clave.charCodeAt(i));
        }
        var retEscapado=escape(ret);
        if(obCampo.maxlength<retEscapado.length)
            obCampo.maxlength=retEscapado.length;
        obCampo.value=escape(ret);
        obCampo.name='PC_'+obCampo.name;
        /*alert('Valor del Campo antes de Cifrar: '+dato+
        '\nValor del Campo despues de Cifrar: '+obCampo.value+
        '\nNombre del Campo despues de Cifrar: '+obCampo.name);*/
    }
}
    
function desCifrado(obCampo)
{
    var ret='';
    var clave=getSesion();
    var dato=new String(obCampo.value);
    if(clave.length>0 && clave.length>dato.length)
    {
        for(var i=0;i<dato.length;i++)
        {
            ret+=String.fromCharCode(dato.charCodeAt(i)^clave.charCodeAt(i));
        }
        obCampo.value=ret;
        obCampo.name='PC_'+obCampo.name;
    }
}
function getValorFromId(strId)
{
    if(strId.indexOf('_')!=-1)
    {
        var arr=strId.substring(0,strId.indexOf('_'));
        arr=strId.substring(strId.indexOf('_')+1,strId.Length)+','+arr;
        return arr;        
    }
    return '';
}

function getNombre(strNom)
{
    if(strNom.indexOf('_')!=-1)
    {
        var arr=strNom.substring(strNom.indexOf('_')+1,strNom.Length);
        return arr;
    }
    return '';
}

function chkCheck(obj)
{
    var strNomOb=obj.name;
    var strIdOb=obj.id;
    var arrObs=document.getElementsByName(strNomOb);
                
    obj=document.getElementById('ID_'+getNombre(strNomOb));
    obj.value=getValorFromId(strIdOb);
                
    if(arrObs && arrObs.length>0)
    {
        for(var i=0;i<arrObs.length;i++)
        {
            if(arrObs[i].id!=strIdOb)
            {
                arrObs[i].checked=false;
            }
        }
    }
}

function Trim(str){
	var longi=str.length;
	var npos=longi;
	var code;
	for(i=0;i<longi;i++){
		code=str.charCodeAt(i);
		if(code!=10 && code!=13 && code!=32 && code!=9 && code!=NaN){
			npos=i;break;
		}
	}
	
	for(i=longi-1;i>=0;i--){
		code=str.charCodeAt(i);
		if(code!=10 && code!=13 && code!=32 && code!=9 && code!=NaN)
			break;
	}
	if(npos>i)
		return '';
	else 
		return str.substring(npos,i+1);
}

function BloqueaKeys(ncar,obj,e){
	if(obj){
		var str=new String(obj.value);
		var ArrPermit;
		if(str.length>=ncar){
			var kcode=0;
			if(window.event|| !e.which)
				{
					ArrPermit=new Array(0,8);
					kcode=e.keyCode;
				}
			else 
				{
					if(e)
					{
						ArrPermit=new Array(0,8,9,33,34,35,36,37,38,39,40,46);
						kcode=e.which;
					}
					else 
					{
						return true;
					}
				}
			for(i=0;i<ArrPermit.length;i++)
			{
				if(kcode==ArrPermit[i])
				{
					return true;
				}
			}
			return false;
		}
	}
	return true;
}


function mostrarMensajeConfirmacion(mensaje, elemento){
	var flag = false;
	var resultado = confirm(mensaje);
	if (resultado == true){
		var name = elemento.name;		
		var numEvento = name.substring('EV_CONFIRMACION'.length,'EV_CONFIRMACION'.length+1);
		elemento.name = "EV_"+numEvento;
		flag = true;
	}
	
	return flag;
}

function mostrarMensajes(identificador, tag)
{
	var div = document.getElementById(identificador);
	div.style.display = 'none';
	var elementos = div.getElementsByTagName(tag);
	for( contador = 0; contador<elementos.length;contador++){
		alert(elementos[contador].innerHTML);
	}
}


function ImprimirVentanaAccesible(elemento)
{
	var formulario;
    var strLocation=new String(document.location);
    var nombreVentana;
    var destino;
    var parametros;
    var tieneMostrarMenu = false;
    var valorAnteriorMostrarMenu;
    
    strLocation=strLocation.toLowerCase();    
    if(nn)
        formulario = document.layers[capa].document.forms[0];
    else
    {
        var indexFormulario = document.forms.length - 1;
        formulario = document.forms[indexFormulario];
    }
	if(strLocation.indexOf('kiosko')<0) // Si no es kiosko ...
	{
		if(formulario.mm){
			tieneMostrarMenu = true;
			valorAnteriorMostrarMenu = formulario.mm.value; 
	    	formulario.mm.value=false;
	    }
	    if(formulario.nw)
	    	formulario.nw.value=true;
	}
    if(arguments.length>1)
    {
        nombreVentana=Math.round(Math.random()*100);
/*        destino=arguments[2];
        
        //Metemos al destino los valores del formulario
        for(i=0;i<formulario.elements.length;i++){
        	nombreElemento = ""+formulario.elements[i].name;

        	if(nombreElemento.match("EV_") == null)
       			destino = destino + "&"+formulario.elements[i].name+"="+formulario.elements[i].value;
        } */
        
        destino='../siglo21/estandar/recursos/void.html';

        parametros=arguments[3];
        if ( arguments[1] === "" )
        {
        	destino=arguments[2];

	        //Metemos al destino los valores del formulario
	        for(i=0;i<formulario.elements.length;i++){
	        	nombreElemento = ""+formulario.elements[i].name;
	
	        	if(nombreElemento.match("EV_") == null)
	       			destino = destino + "&"+formulario.elements[i].name+"="+formulario.elements[i].value;
	        }
	        
            if(strLocation.indexOf('kiosko')>-1) // Si es kiosko ...
            {
                document.location=destino;
            }
            else // Si NO es kiosko ...
            {
                window.open(destino,nombreVentana,parametros);
            }
            return;
        }
    }
    else
    {
        parametros='width=750,height=700,toolbar=0,location=0,directories=0,status=0,scrollbars=1,'+
                   'menubar=0,resizable=1,left="10",top="10",screenX="750",screenY="600"';
        nombreVentana='imprimir';
        formulario.e.value = "i";

    }
    
	var input = document.createElement('input');
	
	input.type="hidden";
	input.name = "EV_"+arguments[1];
	input.setAttribute("value", "");
	formulario.appendChild(input);

    
    var targetFormulario = formulario.target;
    
    if(strLocation.indexOf('kiosko')<0) // Si NO es kiosko ...
    {
        ventana = window.open(destino,nombreVentana,parametros);        
        formulario.target = nombreVentana;
		if(!n6 && !nn)
           ventana.focus();
    }
    
    formulario.submit();
    formulario.removeChild(input);
    if(tieneMostrarMenu)
    	formulario.mm.value=valorAnteriorMostrarMenu;
    formulario.target = targetFormulario;
}

	function hideFrame(){
		parent.document.getElementById("top").rows="*,100%";
		parent.document.getElementById("top2").cols="*,100%";
	}

	function showFrame(){
		parent.document.getElementById("top").rows="135px,100%";
		parent.document.getElementById("top2").cols="145px,100%";		
	}
	
	var contadorMusica = 0;
	
	function playMusic(identificador, sonido)
	{
		var sonido = new SWFObject("../siglo21/comunes/recursos/reproductor.swf?tema="+sonido,"audio","1","1","6","#FFFFFF");
		sonido.addParam("quality", "high");
		sonido.write(identificador);
	}


	function play_pause() {
	    document.getElementById("audio").togglePause();
	}

	function stop() {
	    document.getElementById("audio").stop();
	}	
function openTargetBlank(e){
   
	var className = 'external';
	var classNameAlone750 = 'externalAlone750';
	var classNameAlone300 = 'externalAlone300';

	if (!e) var e = window.event;
	var clickedObj = e.target ? e.target : e.srcElement;
	
	while( (clickedObj != null) && clickedObj.nodeName != 'A'){
		clickedObj = clickedObj.parentNode;
	}

	if((clickedObj!=null) && (clickedObj.nodeName == 'A' ))
	{
		r=new RegExp("(^| )"+className+"($| )");
		r2=new RegExp("(^| )"+classNameAlone750+"($| )");
		r3=new RegExp("(^| )"+classNameAlone300+"($| )");
		if(r.test(clickedObj.className)){
			 window.open(clickedObj.href);
			 return false;
		}else if(r2.test(clickedObj.className)){
			window.open(clickedObj.href,'popup','menubar=0, scrollbar=no,width=750,height=470,left=20,top=20');
			return false;
		}else if(r3.test(clickedObj.className)){
			window.open(clickedObj.href,'popup','menubar=0, scrollbar=no,width=300,height=100,left=150,top=100');
			return false;
		}
	}
}

document.onclick = openTargetBlank;

function cambiarContenido(cadena){
	document.clear();
	document.write(cadena);
	document.close();
}

function eliminarControl()
{
    if (document.addEventListener)
    {
       document.addEventListener("keypress",keypress,false);
    }
    else if (document.attachEvent)
    {
       document.attachEvent("onkeypress", keypress);
    }
    else
    {
       document.onkeypress= keypress;
    }
}

function suppressdefault(e,flag)
{
   if (flag)
   {
       if (e.preventDefault) e.preventDefault();
       if (e.stopPropagation) e.stopPropagation();
   }
   return !flag;
}

function keypress(e)
{
	//if (!e) e= event;
	if (!e) var e = window.event;
	var pressedObj = e.target ? e.target : e.srcElement;

	while( (pressedObj != null) && pressedObj.nodeName != 'INPUT'){
		pressedObj = pressedObj.parentNode;
	}

	if((pressedObj!=null) && (pressedObj.nodeName == 'INPUT' )){
		if (e.keyCode == 13 && (pressedObj.type == 'text' || pressedObj.type == 'password'))
		return suppressdefault(e,true);
	}
}

document.onkeypress= keypress;

function mostrarApplet(){
	var applets = document.getElementsByTagName("applet");
	var index = 0;
	for (index = 0;index<applets.length;index++){		
		applets[index].className = "applet";
	}
}
//-->

function Soundplay (url)
{
	var bgsound = document.createElement('bgsound');
	var formulario;
    if(nn)
        formulario = document.layers[capa].document.forms[0];
    else
    {
        var indexFormulario = document.forms.length - 1;
        formulario = document.forms[indexFormulario];
    }
    bgsound.loop = 1;
    bgsound.src = url;
    formulario.appendChild(bgsound);
    
}
