//--------------------------------------------------------------------------------------------//
//                FUNÇÕES JAVASCRIPT USADAS NO SISTEMA MC2                                    //
//--------------------------------------------------------------------------------------------//

//variável pública usada para fechar as listas
var slist;

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*       Quebra um campo TEXTAREA (id=VetText) em outros diferentes campos para permitir o 
*	 envio de uma grande quantidade de informações devido ao limite do ASP de 100k por campo   	
*
*    Parametros de entrada: 	
*    	   pForm   - nome do formulário onde se encontra o campo
*          pCampo  - nome do campo
* 
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function BreakItUp(pForm, pCampo)
{

  //Set the limit for field size.
  var FormLimit = 102399

  //Get the value of the large input object.
  var TempVar = new String
  TempVar = document.getElementById('textarea1').value

  //If the length of the object is greater than the limit, break it
  //into multiple objects.
  if (TempVar.length > FormLimit)
  {
    document.getElementById('textarea1').value = TempVar.substr(0, FormLimit)
    TempVar = TempVar.substr(FormLimit)

    while (TempVar.length > 0)
    {
      var objTEXTAREA = document.createElement("TEXTAREA")
      objTEXTAREA.name = pCampo
      objTEXTAREA.value = TempVar.substr(0, FormLimit)
      document.forms[pForm].appendChild(objTEXTAREA)

      TempVar = TempVar.substr(FormLimit)
    }
  }

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Verificar se uma palavra informada está na lista de palavra pertencentes ao HTML 
*	   	e portanto não poderão ser utilizadas.
* 
*    Parametros de entrada: 	
*    	   pPalavra - variável com a palavra a ser verificada.
*
*    Parametros de saída: 						
*	   Retorna True ou False dependendo se a palavra foi ou não localizada.
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function VerificaTag(pPalavra) {

	var wLista, wVetores, i
	
	// Inclui as tags sempre com letra maiúscula	
	wLista = "HTML,HREF,TABLE,BODY,FORM,TR,TD,DIV,A,LINK,CENTER,SCRIPT,TITLE,HEAD,WIDTH,ALIGN,HEIGHT,FONT,CLASS,NAME,BR,COLOR";
	
	wVetores = wLista.split(",");
	for(i = 0;i < wVetores.length;i++) {
		//if (trim(pPalavra.toUpperCase())==trim(wVetores[i])) { return true };
		if (wVetores[i].indexOf(pPalavra.toUpperCase())!=-1) { return true };
	}
	return false;
	
}


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Retirar espaços em branco do começo e do final de uma cadeia de
*           caracteres.
* 
*    Parametros de entrada: 	
*    	   cadeia - variável com a cadeia de caracteres a ser analizada.
*
*    Parametros de saída: 						
*	   retorna a string sem espacos em branco no comeco e no final.
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function trim(cadeia) {

existe_caractere = false;
nova_cadeia = cadeia;

if (cadeia.length > 0) {
   caractere = "";

   for(i = 0;i < cadeia.length;i++) {
      caractere = cadeia.substr(i,1);
      pos_caractere = (cadeia.substr(i+1) == null)?"":cadeia.substr(i+1);
      if (!existe_caractere) {
         if (caractere == " ") {
	    nova_cadeia = pos_caractere;
	 }
         else
	    { existe_caractere = true; }
      }
      else
	 { break; }
   }
     
   cadeia = nova_cadeia;
   existe_caractere = false;
   caractere = ""

   for(i = cadeia.length - 1;i >= 0;i--) {
      caractere = cadeia.substr(i,1);
      ant_caractere = (cadeia.substr(0,i) == null)?"":cadeia.substr(0,i);
      if (!existe_caractere) {
	 if (caractere == " ")	{
	    nova_cadeia = ant_caractere;
	 }
         else
	    { existe_caractere = true; }
      }
      else
	 { break; }
   }
	
   cadeia = nova_cadeia;

}
else
   { cadeia = ""; } //Vazia 

return cadeia;

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Verificar se o HTMLArea está vazio
* 
*    Parametros de entrada: 	
*    	   cadeia - variável com a cadeia de caracteres a ser analizada.
*
*    Parametros de saída: 						
*	   retorna true se o HTMLArea está vazio e false se não estive.
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */
function htmlvazio(cadeia){
	var vhtml, wS, wS1, wS2, wS3, wS4, wS5, wS6

	wS = trim(cadeia);
	
	wS1 = /\r/gi;
	wS2 = /\n/gi;
	wS3 = /<DIV>/gi;
	wS4 = /<\/DIV>/gi;
	wS5 = /&nbsp\;/gi;
	wS6 = /\r\n/gi;
	wS = wS.replace(wS1,"");
	wS = wS.replace(wS2,"");
	wS = wS.replace(wS3,"");
	wS = wS.replace(wS4,"");
	wS = wS.replace(wS5,"");
	wS = wS.replace(wS6,"");
	
	wS = trim(wS);
   
	if (wS.length == 0) {
		vhtml = true;
	} else{
		vhtml = false;
	}
	return vhtml;
}





/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Abrir uma janela para mostrar os dados de um item especifico
*	   cadastrado no sistema MC2.
* 
*    Parametros de entrada: 	
*      pURL - variavel contendo a URL para abrir a pagina
*	   pLargura  - tamanho da largura da janela.
*	   pAltura  - tamanho da altura da janela.
*      pTelaCheia - é true se a funcao está sendo chamada de uma página com tela cheia,
                    é false se a funcao está sendo chamada de uma outra popup.  
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function abrirPopUp(pURL,pNome,pLargura, pAltura,pTelaCheia) {
  var wF,wTop=20,wLeft=20;
  
   if(!pTelaCheia)
   {
	
	if (navigator.appName != 'Microsoft Internet Explorer'){
		
		
		wTop = screenY + 25;
     		wLeft = screenX + 11;
	}
     	else{	
		wTop = window.screenTop + 2;
     		wLeft = window.screenLeft + 7;
	}
   }
	
   //alert(wTop + '--------' + wLeft)
      
  wF = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,top='+ wTop +',left=' + wLeft + ',width=' + pLargura + ',height=' + pAltura;
  slist = window.open(pURL,pNome,wF);
  slist.focus();
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*      Abrir uma janela para mostrar os dados de um item especifico
*	   cadastrado no sistema MC2 com mais opções.
* 
*    Parametros de entrada: 	
*      pURL - variavel contendo a URL para abrir a pagina
*      pParam - parametros adicionais para personalizar o PopUP
*                exemplo: pParam = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=470,height=220';
                 obs.: nao se deve passar o top, nem o left.

*      pTelaCheia - é true se a funcao está sendo chamada de uma página com tela cheia,
*                   é false se a funcao está sendo chamada de uma outra popup.                  
*                
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function abrirPopUpPersonalizado(pURL,pNome,pParam,pTelaCheia) {
  var wF,wTop=20,wLeft=20;
  
   if(!pTelaCheia)
   {
     wTop = window.screenTop + 2;
     wLeft = window.screenLeft + 7;
   }
      
  wF = pParam + ',top='+ wTop +',left=' + wLeft;
  slist = window.open(pURL,pNome,wF);
  slist.focus();
}



/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Validar uma data se ela existe ou não.
* 
*    Parametros de entrada: 	
*    	   dia - número do dia.
*    	   mes - número do mês
*    	   ano - número do ano.
*
*    Parametros de saída: 						
*	   retorna true se a data for verdadeira ou false se ela não for
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */


function validardata(pdia, pmes, pano) {

var d0 
var d1
var wDate = new Date(pano, pmes-1, pdia);
      
d0 = wDate.getDate() + "/" + (wDate.getMonth() + 1) + "/" + wDate.getFullYear();
d1 = pdia + "/" + pmes + "/" + pano; 

if (d1 == d0)          
   { return true; }    // Data válida
else
   { return false; }   // Data não válida

}


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Validar uma entrada numérica.
* 
*    Parametros de entrada: 	
*    	   pnumero - caracteres númericos digitados.
*
*    Parametros de saída: 						
*	   retorna true se somente existir números em pnumero ou false se não existir
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */


function validanumero(pnumero) {
   var conta, i, j, numero

   if (pnumero.length < 1) { return false; } 
	   
   conta = 0;
   numero = "0123456789";

   for (i=0; i<=pnumero.length - 1; i++)  {    // varre todos os caracteres da string
      for (j=0; j<=numero.length - 1; j++)  {
         if (pnumero.substr(i,1) == numero.substr(j,1))  { conta++;  }
      }
   }			     

   if (conta == 0 || conta != pnumero.length) { return false; }
	
   return true;	
}


function numericVal(obj)
{

 /*
  o parametro "obj" deve receber um objeto que suporta texto...exemplo: "<INPUT type=text>"
  exemplo de chamada: numericVal(document.form1.campotext);
  essa funcao deve ser chamada através do "onKeyUp"
   
  @Autor: José Alécio Carvalho
  @Objetivo: garantir que somente números inteiros entrem no campo especificado.
 
 */

  var tam = obj.value.length;
  for(var i=0;i<tam;i++)
  {
  	caracter = obj.value.charCodeAt(i);
   if(!(caracter >= 48 && caracter <= 57) )
	  {
       obj.value=obj.value.substring(0,tam-1);      
       numericVal(obj);
      }
  }
}



/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*          Validar se existe um substring dentro de uma string
* 
*    Parametros de entrada: 	
*    	   pcampocod - String de códigos
*	   pcod      - SubString código a ser procurado em pcampocod
*	
*    Parametros de saída: 						
*	   retorna -1 se não encontrou pcod em pcampocod
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function Existencia(pcampocod, pcod) {

     if (pcampocod.length == 0) { return -1; } 
     if (pcod.length == 0) { return -1; } 
	
     return pcampocod.search(pcod);   //Procurar se já existe a string pcod em pcampocod
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
*
*    Objetivo da função:	
*           Validar uma entrada de um valor monetário.
* 
*    Parametros de entrada: 	
*    	   pnumero - valor monetário digitado.
*
*    Parametros de saída: 						
*	   retorna true se somente existir números e o ponto ou a vírgula em pnumero ou false se não existir
*
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */


function validamoney(pnumero) {
   var conta, i, j, numero,contavirg,contaponto

   if (pnumero.length < 1) { return false; } 
	   
   conta = 0;
   contavirg=0;
   contaponto=0;
   numero = "0123456789,.";

   for (i=0; i<=pnumero.length - 1; i++)  {    // varre todos os caracteres da string
      for (j=0; j<=numero.length - 1; j++)  {
         if (pnumero.substr(i,1) == numero.substr(j,1))  { 
		    conta++;  
			if (pnumero.substr(i,1)==",") {contavirg++;}
			if (pnumero.substr(i,1)==".") {contaponto++;}
			}
      }
   }			     

   if (conta == 0 || conta != pnumero.length) { return false; }
   if (contavirg>1 || contaponto>1) { return false; } 	   	 
   if ((contavirg==1 && pnumero.length==1) || (contaponto==1 && pnumero.length==1)) { return false; }
   return true;	
}


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*           Validar um período de datas, ou seja, se data final é maior que data inicial.
* 
*    Parametros de entrada: 	
*    	   pdia1 - número do dia da data inicial.
*    	   pmes1 - número do mês da data inicial.
*    	   pano1 - número do ano da data inicial.
*		   pdia2 - número do dia da data final.
*    	   pmes2 - número do mês da data final.
*    	   pano2 - número do ano da data final.

*    Parametros de saída: 						
*	   retorna true se período for válido (data inicial menor que data final) ou false se não for (data inicial maior que data final)
*/

function difdata(pdia1, pmes1, pano1, pdia2, pmes2, pano2) {

var sd0 
var sd1 

sd0 = pmes1 + "/" + pdia1 + "/" + pano1;
sd1 = pmes2 + "/" + pdia2 + "/" + pano2; 

var d0 = new Date(sd0);
var d1 = new Date(sd1);

if (d1 >= d0)          
   { return true; }    // Data válida
else
   { return false; }   // Data não válida

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       abrir a janela de pesquisa âmbito
* 
*   Parametros de entrada: 	
*		string contendo os parametros de abertura:
*       "?ambito="+p1+"&multiplo="+p2+"&tipo="+p3+"&pagina="+p4+"&codigo="+p5+"&tipounico"+p6
*	onde:
*	p1 = string com os números correnpondentes aos itens que se quer inserir na combo (separados por vírgula).
*	p2 = se puder selecionar vários itens passar "M", senão passar ""
*	p3 = se quiser as letras que identificam qual o tipo do código passar "T" , senão passar ""
*	     ou seja, se passar "T" o pesquisa âmbito retornará PI23_CA34_GR2_UN3_..., senão 23_34_2_3_...
*	p4 = caso a página chame o pesquisa âmbito mais de uma vez temos que identificar onde ele deverá retornar os nomes e os códigos selecionados. Assim, passe a string que identifica os campos onde o pesquisa âmbito vai retornar seus dados. Ex.: parâmetro “fonte” – a página do pesquisa âmbito sabe que deverá retornar seus dados para os campos texto2 e codtexto2.
*	p5 = 
*	p6 = a página pesquisa âmbito acumula os itens selecionadas na lista a direita, caso queira não acumular, ou seja, não pode misturar vários tipos (grupo com núcleo com unidade, etc) passar “U”. Isto é válido quando a lista é multiple, pois quando não é já não acumula.
*	
*    Parametros de saída: 						
*	     nada
*/

function AbrirPesquisaAmbito(pstr) {
	/*
	var wf, ws
	
	wf = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=660,height=420";				
	ws = "PesquisaAmbito.asp" + pstr;
	slist = window.open(ws, "", wf);
	slist.focus(); */
	
 wf = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=660,height=420";				
 ws = "PesquisaAmbito.asp" + pstr;
 abrirPopUpPersonalizado(ws,'',wf,true)
	
	
} 

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       abrir a janela de expressão chave
* 
*    Parametros de entrada: 	
*		  nome da janela. identifica se pode escolher mais de uma expressão-chave, qual o campo que deve armazenar as expressões 
*
*	Opções de parâmetro existentes:
*	- PesquisaSistemica: possibilidade de inserir em três campos (texto1, texto2, texto3)  sem concatenação com o que foi digitado. Se o primeiro estiver cheio, insere no segundo e assim por diante.
*	- PesquisaAcervo: insere em um campo (texto) concatenando com o que já tinha nele.
*	- Telefato: insere em um campo (texto1) que não é habilitado, ou seja, só insere as expressões-chave uma após a outra separadas por vígula.
*	- Fórum: insere em um campo (texto1) concatenando com o que já tinha nele adicionando também a string "Expressões-chave selecionadas:".
*	- ConsultasAutoResposta: idem a acima
*	- RespostasIncluir: idem acima
*	- CatalogoCurso: insere em um campo (texto1) somente uma.
*	- AtivProf: insere em um campo (texto1) todas as selecionadas.
*	- AtivProf2:
*	- IncluirCatalogo:
*
*	Único parâmetro que faz a lista não ser multiple é: CatalogoCurso
*	
*    Parametros de saída: 						
*	     nada
*/

function AbrirExpressaoChave(pjanela) {
	var wf, ws
	
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=600,height=430';
	ws = "ExpressoesChave.asp?NomeJanela=" + pjanela;
	abrirPopUpPersonalizado(ws,'',wf,true)
	
}


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       abrir a janela de destina
* 
*    Parametros de entrada: 	
*		  nada
*	
*    Parametros de saída: 						
*	     nada
*/

function AbrirDestina() {
	/*
	var wf, ws

	wf = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,top=55,left=55,width=660,height=420";					
	ws = "Destina.asp"
	slist = window.open(ws,"",wf);
	slist.focus();
	*/
	
	wf = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=660,height=420";					
	ws = "Destina.asp";
	abrirPopUpPersonalizado(ws,'',wf,true)
	
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       abrir a janela de associar multiplicadores
* 
*    Parametros de entrada: 	
*		  codigo dos autores, codigos dos temas
*	
*    Parametros de saída: 						
*	     nada
*/

function AbrirAssociar(pCodAutor, pCodTema) {
	
	/*
	var wf, ws

	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=640,height=400';
	ws = "Associar.asp?CdAutor=" + pCodAutor + "&CodTema=" + pCodTema
	slist = window.open(ws,"",wf);	
	slist.focus();
	*/
	
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=640,height=400';
	ws = "Associar.asp?CdAutor=" + pCodAutor + "&CodTema=" + pCodTema
	abrirPopUpPersonalizado(ws,'',wf,true)
	
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       Abrir a janela de associar link ou arquivo
* 
*	 Parametro de entrada:
*		Indentificará qual diretório será dado upload do arquivo
*		CC = DirDoc (diretório \documentosMC2) utilizado pelo Disco Virtual
*		DI = DirImagens (diretório \fotos)
*		DD = DirDoc (diretório \documentosMC2)
*    Parametros de saída: 						
*	     Nada
*/

function AssociarLink(pPag) {
	var wf, ws

	/*
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=470,height=220';
	ws = 'AssociarLink.asp?Pagina=' + pPag
	slist = window.open(ws,'',wf);	
	slist.focus();
	*/
	
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=470,height=190';
	ws = 'AssociarLink.asp?Pagina=' + pPag
	abrirPopUpPersonalizado(ws,'AssociarLink',wf,true)
    
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       fechar as janela: Expressãochave, PesquisaAmbito, Destina
*		  Obs: Essa função se baseia na variável pública: slist
*	
*    Parametros de entrada: 	
*		  nada
*	
*    Parametros de saída: 						
*	     nada
*/

function FecharJanelasLista() {
	if (window.slist && !window.slist.closed) { window.slist.close(); }
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       Apagar algum texto explicativo que tenha sido colocado no campo
*	
*    Parametros de entrada: 	
*		  pCampo: é o campo do texto
*		  pStatus: é o campo escondido que deve possuir valor default = 0
*                  para poder apagar somente na primeira vez que o usuário clicar       	
*    Parametros de saída: 						
*	     nada
*/
function ApagaObs (pCampo,pStatus){

	if (pStatus.value=="0")
	{
		pCampo.className = 'caracter8';
		pCampo.value = '';
		pStatus.value="1";
	}
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       abrir a janela de avaliação
* 
*    Parametros de entrada: 	
*		  pCod --> código referente ao módulo (ex: artigo,desenvolvimento). Serve para pegar a nota dada no banco (só ver ou editar)
*		  pPagina --> página de onde foi chamada
*		  pNota --> para receber a nota que foi dada no caso de não poder pegar na tabela (ainda)
*		  pInd --> índice que indica qual o campo que estou avaliando
*	
*    Parametros de saída: 						
*	     nada
*/

function AbrirAvaliar(pCod, pPagina, pNota, pInd, pCodPessoa) {
	var wf, ws

	/*
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=230,height=250';
	ws = "Avaliacao_popup.asp?Cod=" + pCod + "&Pagina=" + pPagina + "&Nota=" + pNota + "&Indice=" + pInd
	slist = window.open(ws,"",wf);	
	slist.focus();
	*/
	
	wf = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=230,height=250';
	ws = "Avaliacao_popup.asp?Cod=" + pCod + "&Pagina=" + pPagina + "&Nota=" + pNota + "&Indice=" + pInd + "&CP=" + pCodPessoa
	abrirPopUpPersonalizado(ws,'',wf,true)
	
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       Contar quantos caracteres ainda faltam para completar o tamanho máximo do campo.
* 
*    Parametros de entrada: 	
*		  pCampo1 --> campo que digitamos
*		  pCampo2 --> campo que mostra o número com a quantidade máxima de caracteres e que vai diminuindo a medida que se vai digitando
*		  pQtd --> quantidade máxima de caracteres permitido
*	
*    Parametros de saída: 						
*	     nada
*/


function ContaCarac(pCampo1,pCampo2,pQtd) {
	var x, y, a
	
	x = pQtd;
	y = trim(pCampo1.value).length;

	if (y > pQtd){
		alert('Você está excedendo a quantidade máxima de caracteres.');
		a = pCampo1.value;
		pCampo1.value = a.substr(0,pQtd);
		pCampo2.value = 0;
	}
	else {pCampo2.value = x - y;};
	
}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       Função que mostra a progress bar
* 
*    Parametros de entrada: 	
*		  pObj = Campo do tipo FILE que contém o arquivo a ser transferido...
*		  barra = Parâmetros que serão passados para a página frame bar. Esse parâmetro é obtido
*				  ao executar a função setaBarra()
*	
*    Parametros de saída: 						
*	     nada
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function ShowProgress(pObj, barra)
{
  strAppVersion = navigator.appVersion;
  if (pObj.value != "")
  {
    if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4)
    {
      winstyle = "dialogWidth=375px; dialogHeight:160px; center:yes; status:no";
      window.showModelessDialog(barra + '&b=IE',null,winstyle);
	    
    }
    else
    {
      window.open(barra + '&b=NN','','width=370,height=115', true);
    }
  }
  return true;
}


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*    Função DesabilitaBotao(objForm,objBotao,booSubmit)
*    Objetivo da função: Desabilitar botao
*    Observação:
*     Se o parâmetro booSubmit é falso, o botão desabilitado deve ser tipo submit.
*     Se o botão não for tipo submit então booSubmit deverá ser true.
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function DesabilitaBotao(objForm,objBotao,booSubmit)
 {
   objBotao.value='Aguarde...';
   objBotao.disabled = true;
   if(booSubmit)
     objForm.submit();   
 }


/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 
*
*    Objetivo da função:	
*       Funções usadas para abrir e fechar nós da árvore
*
*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */


function ToggleDisplay(oButton, oItems) {

	if ((oItems.style.display == "") || (oItems.style.display == "none")) {
		oItems.style.display = "block";
		oButton.src = "imagens/minus.gif";
	}	else {
		oItems.style.display = "none";
		oButton.src = "imagens/plus.gif";
	}

	return false;

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function HideDisplay(oItems) {
	
	oItems.style.display = "none";

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */

function ShowDisplay(oItems) {
	
	oItems.style.display = "block";

}

/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */
function HTMLVazio(pStr) {
//Retorna se o campo html está vazio

     myString = new String (pStr);
   rExp = new RegExp("<P style="+String.fromCharCode(34)+"MARGIN: 0cm 0cm 0pt"+String.fromCharCode(34)+">","gi");
   myString = myString.replace(rExp, '');
   rExp = new RegExp("</P>","gi");
   myString = myString.replace(rExp, '');
   rExp = new RegExp("<P>","gi");
   myString = myString.replace(rExp, '');
   rExp = new RegExp("&nbsp;","gi");
   myString = myString.replace(rExp, '');
   rExp = new RegExp(String.fromCharCode(13),"gi");
   myString = myString.replace(rExp, '');
   rExp = new RegExp(String.fromCharCode(10),"gi");
   myString = myString.replace(rExp, '');

  if(trim(myString).length==0){
	return true;
  }
  else{
	return false;	
  }
}


//*****************************************************************************************



/*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> */
function CriticaCusto(pObj) {
//Só deixa digitar números e a vírgula(somente uma vírgula)
//??????O ponto do teclado dos números não aciona esta função

	var contaponto,tam,i
	
	contaponto = 0;	
	tam = pObj.value.length;

	for(i = 0; i < tam ; i++)  {
  		caracter = pObj.value.charCodeAt(i);
		if((caracter >= 48 && caracter <= 57) || caracter == 44) {
			//não faço nada se for número ou ponto
		}
		else {
			pObj.value = pObj.value.substring(0,tam-1);
			CriticaCusto(pObj)     
		}
		
		if (pObj.value.substr(i,1) == ",") {contaponto++;}
	}
	
	if (contaponto > 1) {
		alert('Você deve digitar somente um separador para os decimais.');
		pObj.value = pObj.value.substring(0,tam-1);   
	}
}


//*****************************************************************************************
