function setPointer(theRow,theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
        
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
            
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;         
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase())
             {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;            
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
    
        if (theAction == 'click') {       
            newColor              = theDefaultColor;          
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
}

function ChangeOptions(lstPrimary, lstSecondary, strArray, strValorInit, strDisplayInit, indice) 
{
  var alen    = eval(strArray + ".length")
  var listLen = 1;
  var strKey  = eval("document.forms[indice]." + lstPrimary + ".options[document.forms[indice]." + lstPrimary + ".selectedIndex].value")
  
  eval("document.forms[indice]." + lstSecondary + ".options.length = 0");

    
	var Opcao = document.createElement("option");
	Opcao.value = strValorInit;
	Opcao.text = strDisplayInit;		
	eval("var init = document.forms[indice]." + lstSecondary  )	
	init.add(Opcao,0);

  for (var i = 1; i < alen; i++) 
  {
   if (eval(strArray + "[i][0] == " + strKey))
    {
    eval("document.forms[indice]." + lstSecondary + ".options[listLen] = new Option(" + strArray + "[i][2], " + strArray + "[i][1])");
    listLen = listLen + 1;
    }
  }

  if (listLen > 0)
  {eval("document.forms[indice]." + lstSecondary + ".options[0].selected = true");}
  
  if (document.all == null)  
    {history.go(0);}  
}

///////////////////////////////////////////////////
//  Função		:Confirma
//	objetivo	:direcionar para um link caso resposta seja positiva
//  Entrada: 
//		mensagem			: pergunta que terá que ser confimada
//		link				: link que será redirecionado caso resposta positiva
////////////////////////////////////////////////////
function Confirma(mensagem, link)
{ 
	bresposta = confirm(mensagem);
	if (bresposta == true)
	{
	location.href = link;
	} 
}
///////////////////////////////////////////////////
//  Função		:ConfirmaNWindow
//	objetivo	:direcionar para um link caso resposta seja positiva
//  Entrada: 
//		mensagem			: pergunta que terá que ser confimada
//		link				: link que será redirecionado caso resposta positiva
////////////////////////////////////////////////////
function ConfirmaNWindow(mensagem, link)
{ 
	bresposta = confirm(mensagem);
	if (bresposta == true)
	{
	newWindow=window.open(link);
	} 
}



//*********************************************************
// Proposta: Pega 2 parâmetros: a string da página e o valor selecionado pelo servidor
//			 e redireciona para página com a variável e o valor pré-selecionado
//  Entrada:	
//	 strPagina:	String contendo o nome da página que chamou a função
//strParametro:	Nome do parâmetro
//	  intValor:	Valor do parâmetro
//	
//    Saída:	Um redirecionamento para a página juntamente com o(s) parâmetro(s) e valor(es)
//
//*********************************************************

function Refresh(strPagina, strParametro1, intValor1, strParametro2, intValor2)
{	

	//Somente o primeiro parâmetro foi passado
	if ((intValor1 != '0') && (intValor2 == 'undefined'))
	{	
		location.href=strPagina+"?"+strParametro1+"="+intValor1;
  	}
  	//O primeiro e o segundo parâmetros foram passados
	if (intValor1 != "0" && intValor2 != 'undefined')
	{	
		location.href=strPagina+"?"+strParametro1+"="+intValor1+"&"+strParametro2+"="+intValor2;
  	}
  	
  	return;
}
///////////////////////////////////////////////////////////////
//	Verifica se a posição no array está preenchida
///////////////////////////////////////////////////////////////
function PosicaoPreenchida(Arranjo, Cont) {
	if(Arranjo == null)
		return false;
	if(Arranjo[Cont] == null)
		return false;
	else if(Arranjo[Cont] == "")
		return false;
	else
		return true;
}
function ReplaceFunciona(Valor, Procurado, Substituto) 
{
	var Cont;
	var ValorResultante = "";
	if(Valor != null)
		for(Cont = 0; Cont < Valor.length; Cont++)
			if(Valor.substring(Cont, Cont + 1) == Procurado)
				ValorResultante = ValorResultante + Substituto;
			else
				ValorResultante = ValorResultante + Valor.substring(Cont, Cont + 1);
	return ValorResultante;
}


//*********************************************************
// Proposta: Passa os ítens de um <SELECT> para um outrocumento e secundária
//
//  Entrada:	
//			 Origem:Valor do campo onde vai ser pego o(s) campo(s) selecionado(s)
//			Destino:Valor do campo para onde vai ser movido o(s) item(ns) selecionado(s) no primeiro <SELECT>
//			  Todos:Boleano que indica se é para mover todos os ítens ou não
//			
//      Saída:	Os ítnes são movidos para o segundo <SELECT>lassificacao 1 e 2  do documento
//
//*********************************************************
function PassaItem(Origem, Destino, Indice)
{
	var novoOption = new Option();
	var antigoOption = Origem.options(Indice);

	novoOption.text = antigoOption.text;
	novoOption.value = antigoOption.value;
	Destino.options.add(novoOption);
	
	Origem.options.remove(Indice);
}



function PassaItens(Origem, Destino, Todos)
{
	var i;
	var o = Origem.options;

	for(i = 0; i < o.length;)
	{
		if(Todos || o(i).selected)
		{
			PassaItem(Origem, Destino, i);
		}
		else
		{
			i++;
		}
	}
}

///////////////////////////////////////////////////
//	Valida os campos genéricos durante o preenchimento
///////////////////////////////////////////////////
function ValidaCampoPreenchimento(campo, proximo, tipo, maximo) {
	//	Verificando o preenchimento
	switch(tipo) {
		//	Campos moeda
		case 1:
			FormataMoeda(campo);
			break;
		//	Campos data
		case 2:		
			FormataData(campo);
			break;
	}
	//	Pulando para o próximo campo do formulário
	if(campo.value.length == maximo)
		proximo.focus();
}




//////////////////////////////////////////////////////////////////////////////////////////////////////
// Formata campos data dinamicamente
//////////////////////////////////////////////////////////////////////////////////////////////////////
function FormataData(intCampo) {
	//	Valor original	
	var valorOriginal = Filtra(intCampo.value);

	//	Valor formatado
	var valorFormatado = "";

	//	Posição no string
	var posicao = 0;
	
	//adicionei sinal de comentário, retirar depois
	verificaValores (valorOriginal,intCampo)
	
	//	Formatando o valor
	for(posicao = 0; posicao < valorOriginal.length; posicao ++) {
		//	Barra
		if((posicao % 2) == 0 && posicao > 0 && posicao < 5)
			valorFormatado = valorFormatado + "/";
		//	Resultado final
		valorFormatado = valorFormatado + valorOriginal.substring(posicao, posicao + 1);
	}

	//	Atualizando o valor do campo
	intCampo.value = valorFormatado;
}



//////////////////////////////////////////////////////////////////////////////////
//	Proposta:	Verifica os valores de dia, mês e ano para ver se são válidos
//   Entrada: 
//    valorOriginal: O valor do campo
//			  campo: O Nome que foi dado ao campo
//
//    Saida:
//		True ou False, representando se valor é correto ou não
//////////////////////////////////////////////////////////////////////////////////

function verificaValores(valorOriginal,intCampo)
{

//	Campo dia entre 1 e 31
	if (valorOriginal.length >= 2)
	{
		var dia = parseInt(valorOriginal.substring(0,2),10)
		if(dia < 1 || dia > 31) 
		{
			alert("Dia incorreto");
			intCampo.focus;
			return false;
		}
	}	
	//	Campo mês entre 1 e 12
	if (valorOriginal.length >= 4)
	{
		var mes = parseInt(valorOriginal.substring(2,4),10)
		if(mes < 1 || mes > 12) 
		{
			alert("Mês incorreto");
			intCampo.focus;
			return false;
		}
		// validando fevereiro
		if(mes == 2) 
		{
			var dia = parseInt(valorOriginal.substring(0,2),10)
			if (dia > 29) {
				alert("Data inválida para o mês de Fevereiro");
				intCampo.focus;
				return false;
			}
		}
		
	}	
	
	//	Campo ano entre 1900 e atual
	if (valorOriginal.length == 8)
	{
		var ano = parseInt(valorOriginal.substring(4,10),10)
		var today = new Date();
		if(ano < 1970 || ano > today.getFullYear()) 
		{
			alert("Ano incorreto");
			intCampo.focus;
			return false;
		}
	}	

}

//////////////////////////////////////////////////////////////////////////////////////////////////////
//	Filtra caracteres não numéricos
//////////////////////////////////////////////////////////////////////////////////////////////////////

function Filtra(valor) {
	//	Valor formatado
	var valorFormatado = "";

	//	Posicao no string
	var posicao = 0;
	
	//	Varrendo o string
	for(posicao = 0; posicao < valor.length; posicao ++) {
		if(!isNaN(valor.substring(posicao, posicao + 1)))		
			valorFormatado = valorFormatado + valor.substring(posicao, posicao + 1);
	}

	//	Retornando o valor filtrado e invertido
	return valorFormatado;
}



/*
//////////////////////////////////////////////////////////////////////////////////////////////////////
//	Filtra caracteres não numéricos e inverte o string
//////////////////////////////////////////////////////////////////////////////////////////////////////
function FiltraInverte(valor) {
	//	Valor formatado
	var valorFormatado = "";

	//	Posicao no string
	var posicao = 0;
	
	//	Varrendo o string
	for(posicao = 0; posicao < valor.length; posicao ++) {
		if(EhNumero(valor.substring(posicao, posicao + 1)))
			valorFormatado = valor.substring(posicao, posicao + 1) + valorFormatado;
	}

	//	Retornando o valor filtrado e invertido
	return valorFormatado;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////
//	Pesquisa um determinado valor num array
//////////////////////////////////////////////////////////////////////////////////////////////////////
function PesquisaArray(array, valor) {
	//	Posicao no array
	var posicao = 0;
	
	for(posicao = 0; posicao < array.length; posicao ++)
		if(array[posicao] == valor)
			return true;
	return false;
}

*/


////////////////////////////////////////////////////////////////////////////////////////
//	Verifica se o string tem algum dígito que não seja número
////////////////////////////////////////////////////////////////////////////////////////
function SoNumero (Valor,Campo) 
{
	var Numeros="1234567890";
	for (Cont=0; Cont < Valor.length; Cont++) 
	{
		TempChar = Valor.substring(Cont,Cont+1);
		if	(Numeros.indexOf(TempChar,0) == -1)	
		{
			Campo.value = "";
			Campo.focus();
			alert("Campo Numérico");
			return (false);
		}
		
	}
	return (true);
}
////////////////////////////////////////////////////////////////////////////////////////
//	so permite a entrada de números
////////////////////////////////////////////////////////////////////////////////////////
function SoEntraNumero (Campo) 
{ 
	var Numeros="1234567890";
	var Valor =  Campo.value;
	var NumeroValidado="";	
	for (Cont=0; Cont < Valor.length; Cont++) 
	{
		TempChar = Valor.substring(Cont,Cont+1);		
		if	(Numeros.indexOf(TempChar,0) == -1)
		{			
			alert("Campo Numérico");			
		}
		else
		{
			NumeroValidado = NumeroValidado + TempChar;
		}
		
	}
	Campo.value = NumeroValidado;
}
////////////////////////////////////////////////////////////////////////////////////////
//	so permite a entrada de números
////////////////////////////////////////////////////////////////////////////////////////
function SoEntraNumeroVirgula (Campo) 
{ 
	var Numeros="1234567890,";
	var Valor =  Campo.value;
	var NumeroValidado="";	
	for (Cont=0; Cont < Valor.length; Cont++) 
	{
		TempChar = Valor.substring(Cont,Cont+1);		
		if	(Numeros.indexOf(TempChar,0) == -1)
		{			
			alert("Campo Numérico separado por virgula");			
		}
		else
		{
			NumeroValidado = NumeroValidado + TempChar;
		}
		
	}
	Campo.value = NumeroValidado;
}
////////////////////////////////////////////////////////////////////////////////////
//Função que valida CNPJ/CPF														  //
////////////////////////////////////////////////////////////////////////////////////
function CNPJ(obj,nome,nivel) 
{

	var str
	var det = document.all(nome)
 	str = obj.value;


if (str.length != 0 ){    
   var MaskNumber = "";
   for (var i = 0; i < str.length; i++)
   {
      var chr = str.substring(i, i + 1);
      if (chr != "." && chr != "/" && chr != "-")
      {
         MaskNumber += chr;
      }
   }

   str = MaskNumber;


  if (str.length == 14)
  {
	 var MaskNumber = "";
     var Lpad = "00000000000000";     
     
     for (var i = 0; i < str.length; i++)
     {
        var chr = str.substring(i, i + 1);
        if (chr >= "0" && chr <= "9")
        {
           MaskNumber += chr;
        }
     }
        MaskNumber = Lpad.substring(0, 14 - MaskNumber.length) + MaskNumber;
        MaskNumber = MaskNumber.substring((MaskNumber.length - 14), MaskNumber.length);
        SumBlock1 = 0,
        RemBlock1 = 0;
        SumBlock2 = 0;
        RemBlock2 = 0;
     for (var i = 0; i < (MaskNumber.length - 2); i++)
     {
        var chr = MaskNumber.substring(i, i + 1);
        if (i <= 3)
        {
           SumBlock1 += eval(chr * (5 - i));
        }
        else
        {
           SumBlock1 += eval(chr * (13 - i));
        }
     }
        RemBlock1 = eval(SumBlock1 - (parseInt(SumBlock1 / 11) * 11));
        if (RemBlock1 <= 1)
        {
           RemBlock1 = 0;
        }
        else
        {
           RemBlock1 = eval(11 - RemBlock1);
        }
     for (var i = 0; i < (MaskNumber.length - 2); i++)
     {
        var chr = MaskNumber.substring(i, i + 1);
        if (i <= 4)
        {
           SumBlock2 += eval(chr * (6 - i));
        }
        else
        {
           SumBlock2 += eval(chr * (14 - i));
        }
     }
        SumBlock2 += eval(2 * RemBlock1);
        RemBlock2 = eval(SumBlock2 - (parseInt(SumBlock2 / 11) * 11));
        if (RemBlock2 <= 1)
        {
           RemBlock2 = 0;
        }
        else
        {
           RemBlock2 = eval(11 - RemBlock2);
        }
     var result = "";
	
     if ((RemBlock1 == MaskNumber.substring(12,13)) && (RemBlock2 == MaskNumber.substring(13,14)))
     {
			if(MaskNumber!='00000000000' && MaskNumber!='11111111111' && MaskNumber!='22222222222' && MaskNumber!='33333333333' && MaskNumber!='44444444444' && MaskNumber!='55555555555' && MaskNumber!='66666666666' && MaskNumber!='77777777777' && MaskNumber!='88888888888' && MaskNumber!='99999999999') 
			{
				if (str.length<18)
				{
					obj.value=''
					for (var i = 0; i < str.length; i++)
					{
						obj.value = obj.value + str.substr(i,1)
						mascarar(obj,'##.###.###/####-##')
						
					}	
				}
				return true;
			}  
			else
			{alert("os digitos verificadores são: "+RemBlock1+RemBlock2)
				alert("CNPJ Inválido!")
				obj.value = "";
				obj.focus();
				return false;
			}
		}
		else
			{
				alert("CNPJ Inválido!")
				obj.value = "";
				obj.focus();
				return false;
			}
  }
else if (str.length == 11 && str.length != 0)
{

	   var MaskNumber = "";
	   var Lpad = "00000000000";
	   for (var i = 0; i < str.length; i++)
	   {
	      var chr = str.substring(i, i + 1);
	      if (chr >= "0" && chr <= "9")
	      {
	         MaskNumber += chr;
	      }
	   }
     
	   MaskNumber = Lpad.substring(0, 11 - MaskNumber.length) + MaskNumber;
	   MaskNumber = MaskNumber.substring((MaskNumber.length - 11), MaskNumber.length);
	   SumBlock1 = 0,
	   RemBlock1 = 0;
	   SumBlock2 = 0;
	   RemBlock2 = 0;

      	        
	   for (var i = 0; i < (MaskNumber.length - 2); i++)
	   {
	      var chr = MaskNumber.substring(i, i + 1);
	      SumBlock1 += eval(chr * (10 - i));
	   }
 	   RemBlock1 = eval(SumBlock1 - (parseInt(SumBlock1 / 11) * 11));
	   if (RemBlock1 <= 1)
	   {
	      RemBlock1 = 0;
	   }
	   else
	   {
	      RemBlock1 = eval(11 - RemBlock1);
	   }
	   for (var i = 0; i < (MaskNumber.length - 2); i++)
	   {
	      var chr = MaskNumber.substring(i, i + 1);
	      if (i <= 9)
	      {
	         SumBlock2 += eval(chr * (11 - i));
	      }
	   }
	   SumBlock2 += eval(2 * RemBlock1);
	   RemBlock2 = eval(SumBlock2 - (parseInt(SumBlock2 / 11) * 11));
	   if (RemBlock2 <= 1)
	   {
	      RemBlock2 = 0;
	   }
	   else
	   {
	      RemBlock2 = eval(11 - RemBlock2);
	   }
	   var result = "";	
	       
		if ((RemBlock1 == MaskNumber.substring(09,10)) && (RemBlock2 == MaskNumber.substring(10,11)))
		{		
			if(MaskNumber!='00000000000' && MaskNumber!='11111111111' && MaskNumber!='22222222222' && MaskNumber!='33333333333' && MaskNumber!='44444444444' && MaskNumber!='55555555555' && MaskNumber!='66666666666' && MaskNumber!='77777777777' && MaskNumber!='88888888888' && MaskNumber!='99999999999') 
			{
				if (str.length<14)
				{
					obj.value=''
					for (var i = 0; i < str.length; i++)
					{
						obj.value = obj.value + str.substr(i,1)
						mascarar(obj,'###.###.###-##')
					}	
				}
				return true;
			}  
			else
			{
				alert("CPF Inválido!")
				obj.value = "";
				obj.focus();
				return false;
			}
		} 
		else
			{alert("os  verificadores são: "+RemBlock1+RemBlock2)
				alert("CPF Inválido!")
				obj.value = "";
				obj.focus();
				return false;
			}
	}
 else
			{
				alert("Dados Inválido!")
				obj.value = "";
				obj.focus();
				return false;
			}
}
}




var args;

function AbreFecha(Ancora){
var src = Ancora.childNodes.item(0).src;
var display;

	if (src.substr(src.length - 5, 1) == "7")
	{
		Ancora.childNodes.item(0).src = "http://sistemas/PSV/Imagens/Outros/out_mais.gif";
		display = "none";
	}
	else
	{
		Ancora.childNodes.item(0).src = "http://sistemas/PSV/Imagens/Outros/out_menos.gif";
		display = "block";
	}

	if ((args != null)&&(args[0] != arguments[0]))
	{
		args[0].childNodes.item(0).src = "http://sistemas/PSV/Imagens/Outros/out_mais.gif";
		for(var i = 1; i < args.length; i++)
		{
			document.all(args[i]).style.display = "none";
		}
	}

	for(var i = 1; i < arguments.length; i++)
	{		
		document.all(arguments[i]).style.display = (document.all(arguments[i]).style.display=='none'?'block':'none');
	}

	args = arguments;
}

// Retorna um xmldom a partir de uma URL
function xmlFromServer(strURL)
{
	window.status = 'Carregando dados';
	var xml = new ActiveXObject("Microsoft.XMLDOM")
	xml.async = false
	xml.load(strURL)
	window.status = '';
	
	return xml;
}
	
// Faz uma validação de formulário no servidor à partir de uma URL
function validateOnServer(strURL)
{
	var xml = xmlFromServer(strURL);
	return(xml.documentElement.nodeTypedValue == "true");
}

// Faz uma validação de formulário no servidor à partir de uma URL
function returnFromServer(strURL)
{
	var xml = xmlFromServer(strURL);
	return(xml.documentElement.nodeTypedValue);
}

// Retorna vários campos de um XML vindo do servidor em um vetor
function returnMultiFieldXML(strURL)
{
	var xml = xmlFromServer(strURL);

	var nodeList = xml.documentElement.childNodes;
	var values = new Array(nodeList.length);
	alert(nodeList.length)
	for (var i = 0; i < nodeList.length; i++) 
	{		
		if (nodeList.item(i).nodeTypedValue>0){	values[i] = nodeList.item(i).nodeTypedValue;}
	}
	return(values);
}
////////////////////////////////////////////////////////////////////////////////////////
//	verifica se o XML gerado por um RS é EOF
////////////////////////////////////////////////////////////////////////////////////////
function ValidaRsEof(xml) 
{	
    var doc = xml.documentElement;	
    var EOF = true;		
    if(doc.hasChildNodes())                  
            for(var i=0; i<doc.childNodes.length; i++)
            {
				if (doc.childNodes(i).tagName == 'rs:data')	
				{						
					if (doc.childNodes(i).hasChildNodes())
					EOF = false;					
				}
				
			}  
      
    return(EOF);
}
////////////////////////////////////////////////////////////////////////////////////////
//	gera selects a partir de um XML/XSL
////////////////////////////////////////////////////////////////////////////////////////
function FillListBox(select, xmlurl, emptyOption, textEmptyOption, xslurl)
{
	// Load XML
	var xml = xmlFromServer(xmlurl);
	
	// Load XSL
	xslurl
	
	var xsl = xmlFromServer(xslurl);	
	
	// Transform
	var strSelect = select.outerHTML;
	select.outerHTML = strSelect.substring(0, strSelect.indexOf(">", 6) + 1) + (emptyOption ? '<OPTION>' + textEmptyOption + '</OPTION>' : '') + xml.transformNode(xsl) + '</SELECT>';

}
////////////////////////////////////////////////////////////////////////////////////////
//	valida os números a serem associados
////////////////////////////////////////////////////////////////////////////////////////
function ValidaServidores(select, input, codProcesso)
{
	// Load XML
	if (input.value != "") {
		var xmlurl = "/SACP/Parametros/SQLXML.asp?CodLogin=" + input.value + "&strOpcao=ValidaLogin";
		//alert(xmlurl);
		var xml = xmlFromServer(xmlurl);
		if (ValidaRsEof(xml)) 
		{
			alert( 'SERVIDOR NÃO ENCONTRADO.');
		}
		else 
		{
			// Load XSL
			var ArqXls = "/SACP/Parametros/XSL.asp"	
			var xsl = xmlFromServer(ArqXls);		
	
			//guarda os servidores já validados.
			var Servidores_value = '';
			var vtServidores_value = '';	
			var Servidores_text = '';
			var vtServidores_text = '';	
	
			for (var i=0; i < select.length; i++) 
			{	
				//verifica se não existe um servidor já autorizado
				var valorComp = select.options[i].value.toLowerCase( );
				
				//valorComp = valorComp.substring(0, valorComp.indexOf(" - ", 11) + 1);
				if (valorComp != (input.value.toLowerCase( )))
				{
					//cria vetor com valores já validados
					Servidores_value = Servidores_value + (Servidores_value==''? select.options[i].value :','+  select.options[i].value);
					Servidores_text = Servidores_text + (Servidores_text==''? select.options[i].text :','+  select.options[i].text);
				}
			}

			vtServidores_value = Servidores_value.split(",");
			vtServidores_text = Servidores_text.split(",");
	
			// Transform
			var strSelect = select.outerHTML;
			strSelect =  strSelect.substring(0, strSelect.indexOf(">", 6) + 1) ;
			//inclui os campos já validados
			for (var i=0; i <vtServidores_value.length ; i++) 
			{
			  if (vtServidores_value[i].length > 0 )	strSelect  = strSelect + '<OPTION VALUE=' + vtServidores_value[i] +' >' + vtServidores_text[i] + '</OPTION>';
			}
			//caso o numero exita no sicap ele vai ser incluido
			strSelect  = strSelect + xml.transformNode(xsl) + '</SELECT>';	
			select.outerHTML = strSelect 
		}
	
		input.value = "";	
		input.focus();
	}	

}

////////////////////////////////////////////////////////////////////////////////////////
//	valida os números a serem associados
////////////////////////////////////////////////////////////////////////////////////////
function ValidaSicap(select, input)

{
	// Load XML
	//window.open("/SACP/Parametros/SQLXML.asp?ASSOCIADO=" + input.value + "&strOpcao=ValidaSicap")
	var xmlurl = "/SACP/Parametros/SQLXML.asp?ASSOCIADO=" + input.value + "&strOpcao=ValidaSicap";
	var xml = xmlFromServer(xmlurl);
	if (input.value.length!=12 && input.value.length!=15)	
	{
		alert('Nº Documento/Processo tem 12 ou 15 dígitos.');
	}	
	else if (ValidaRsEof(xml)) 
	{
		alert( 'NÚMERO DE DOCUMENTO/PROCESSO NÃO ENCONTRADO.');
	}
	else 
	{
		// Load XSL
		var ArqXls = "/SACP/Parametros/XSL_Associado.asp"	
		var xsl = xmlFromServer(ArqXls);		
	
		//guarda os números já validados.
		var Associado_value = '';
		var vtAssociado_value = '';	
		var Associado_text = '';
		var vtAssociado_text = '';	
	
		for (var i=0; i < select.length; i++) 
		{	
			//verifica se não existe um número já associado
			var valorComp = select.options[i].text;			
			valorComp = valorComp.substring(0, valorComp.indexOf(" - ", 11) + 1);
			if (parseInt(valorComp,10) != parseInt(input.value,10))
			{
				//cria vetor com valores já validados
				Associado_value = Associado_value + (Associado_value==''? select.options[i].value :','+  select.options[i].value);
				Associado_text = Associado_text + (Associado_text==''? select.options[i].text :','+  select.options[i].text);
			}
		}

		vtAssociado_value = Associado_value.split(",");
		vtAssociado_text = Associado_text.split(",");
	
		// Transform
		var strSelect = select.outerHTML;
		strSelect =  strSelect.substring(0, strSelect.indexOf(">", 6) + 1) ;
		//inclui os campos já validados
		for (var i=0; i <vtAssociado_value.length ; i++) 
		{
		  if (vtAssociado_value[i].length > 0 )	strSelect  = strSelect + '<OPTION VALUE=' + vtAssociado_value[i] +' >' + vtAssociado_text[i] + '</OPTION>';
		}
		//caso o numero exista no sicap ele vai ser incluido
		strSelect  = strSelect + xml.transformNode(xsl) + '</SELECT>';	
		select.outerHTML = strSelect 
	}
	
	input.value = "";	
	input.focus();
	

}

/*
function adicionaUsuario(input, select, codProcesso){
	if(input.value.length > 0)
	{
		var values = returnMultiFieldXML('/SACP/Parametros/SQLXML.asp?CodLogin=' + input.value + '&CodProcesso=' + codProcesso);
		if(values.length == 2)
		{
			if(!existeItem(select, values[0]))
			{
				criaItem(select, values[0], values[1]);
				input.value='';
			}
			else
			{
				alert('Usuário "' + values[1] + '" já possui acesso');
				input.focus();
			}
		}
		else if(values.length == 1)
			{
				alert('Delegação de acesso não permitida');
				input.focus();
			}
			else
			{
				alert('Usuário "' + input.value + '" inexistente');
				input.focus();
			}
	}
}

function criaItem(select,value,text)
{
	var novoOption = new Option();
	
	novoOption.text = text;
	novoOption.value = value;
	
	select.options.add(novoOption, 0);
}
*/