/**************************************************************
 Funcao que Abre uma janela convencional
  Parâmetros: 	1.tela = nome do arquivo (html/asp) a ser aberto na nova janela 
         2.nomeJanela = nome a ser atribuído a nova janela
         3.larg = largura da janela em pixels
         4.altura = altura da janela em pixels
         5.horiz = distância horizontal em pixels (-1 para centralizar)
         6.vert = distância vertical em pixels (-1 para centralizar)
*************************************************************/							  

var primeira=1;
var janela=null;

function abreJanela(tela,nomeJanela,larg,altura,horiz,vert)
{
var posicao = '';
var pos = 0;
if (vert == -1) {
	pos = (600 - altura) / 2;
	posicao = posicao + ',top=' + pos.toString();
	//alert('posicao1=' + posicao);
}
else {
	posicao = posicao + ',top=' + vert;
	//alert('posicao1=' + posicao);
}
if (horiz == -1) {
	pos = (800 - larg) / 2;
	posicao = posicao + ',left=' + pos.toString();
	//alert('posicao2=' + posicao);
}
else {
	posicao = posicao + ',left=' + horiz;
	//alert('posicao2=' + posicao);
}
if (primeira==1) { 
	janela=window.open(tela,nomeJanela, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no , resizable=no, copyhistory=no, width=' + larg + ',height=' + altura + posicao);
	primeira=0;
	janela.focus();
}
else { 
	if (janela.closed==0) {
		janela.focus();
	} 
	else { 
		janela=window.open(tela,nomeJanela, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + larg + ',height=' + altura + posicao);
		janela.focus();
	}
}
}

/**************************************************************
 Funcao que Abre um popup convencional
 Parametros : theURL --> Url que ira abrir
                     winName --> nome de janela
			   features --> caracteristicas da janela, tamanho, altura, etc
*************************************************************/							  
function MM_openBrWindow(theURL,winName,features) { //v2.0
  janela = window.open(theURL,winName,features);
  janela.focus();
}
/*******************************************************************
Abre Janela Relatorio
Parâmetros:  theURL --> Url que ira abrir
             winName --> nome de janela

********************************************************************/
function abreJanela2(tela,nomeJanela,larg,altura,horiz,vert) { //v2.0
  var janela = window.open(tela,nomeJanela, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no , resizable=yes, copyhistory=no, width=' + larg + ',height=' + altura);
  janela.focus();
}
/*******************************************************************
Abre Janela MODAL
Parâmetros:

	pPagina: 	Nome da página que será aberta na janela Modal
	pnmJanela: 	Nome da janela
	pLargura: 	Largura da janela
	pAltura: 	Altura da janela
	pTopo: 		Distância em relação ao topo
	pEsquerda: 	Distância em relação a lateral esquerda
	pscrioll: se tiver scrol (1 ou 0)

obs: Caso os valores de pTopo e pEsquerda sejam passados com valor "-1", sua posição na tela será centralizada
***********************************************************************/
function abreJanelaModal( pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda, campo, pscroll, idimgPreview ){

    if(navigator.appName == 'Netscape' )
    {
 
      if (pPagina == '../include/ap_frCalendario.asp')
          {
             pPagina = '../include/ap_Calendario.asp';
          }
       else
          {
             pPagina = '../enviaimagem/ap_enviaImg.asp?tipo=T&idimgPreview=' + idimgPreview;
          }
      
      abreJanela( pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda, campo, pscroll, idimgPreview )
      return false;
    }

	var ltxtaux;1

	if ( ( pAltura == -1 ) || ( pEsquerda == -1 ) ) 
		ltxtaux = ";center:1";
	else   
		ltxtaux = ";dialogTop:"+pTopo+"px;dialogLeft:"+pEsquerda+"px"; 
		rvalor=  window.showModalDialog( pPagina, pnmJanela, "dialogWidth:"+pLargura+"px;dialogHeight:"+pAltura+"px;scroll:"+pscroll+";help:0;status:0"+ltxtaux );
    
    if ((rvalor!="")&&(rvalor!=null)){
		campo.value = rvalor;
        
        var strFile = rvalor;
        var strExteFile = strFile.substr((strFile.length - 3 ), strFile.length);
        strExteFile = strExteFile.toUpperCase();
        
        if ((strExteFile == 'JPG') || (strExteFile == 'GIF'))
           {
            PreviewIMG(rvalor, idimgPreview);
            
            if (idimgPreview == 'imgPreview')
               mostra_obj_id(document.limpa)
               
            if (idimgPreview == 'imgPreview2')
               mostra_obj_id(document.limpa2)
            
            if (idimgPreview == 'imgPreview3')
               mostra_obj_id(document.limpa3)
               
            if (idimgPreview == 'imgPreview4')
               mostra_obj_id(document.limpa4)

            if (idimgPreview == 'imgPreview5')
               mostra_obj_id(document.limpa5)

           }
	}
}

/****************************************************************
	esconder objeto id
***************************************************************/

function esconde_obj_id(p_objname)
{   
    p_objname.style.display = 'none';
    //  document.getElementById(p_objname).style.visibility = "hidden";
}

/****************************************************************
	mostra objeto id
***************************************************************/
function mostra_obj_id(p_objname)
{   
      p_objname.style.display = 'block';
    //   document.getElementById(p_objname).style.visibility = "visible";
}

/*******************************************************************
Abre Janela MODAL
Parâmetros:

	pPagina: 	Nome da página que será aberta na janela Modal
	pnmJanela: 	Nome da janela
	pLargura: 	Largura da janela
	pAltura: 	Altura da janela
	pTopo: 		Distância em relação ao topo
	pEsquerda: 	Distância em relação a lateral esquerda
	pscrioll: se tiver scrol (1 ou 0)

obs: Caso os valores de pTopo e pEsquerda sejam passados com valor "-1", sua posição na tela será centralizada
***********************************************************************/
function abreJanelaModalReload(pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda,pScroll)
{   

if(navigator.appName == 'Netscape' ){
	  abreJanela(pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda,pScroll)
    }
else
    {
        	var ltxtaux;
        	if ( ( pAltura == -1 ) || ( pEsquerda == -1 ) ) 
        		ltxtaux = ";center:1";
        	else   
        		ltxtaux = ";dialogTop:"+pTopo+"px;dialogLeft:"+pEsquerda+"px"; 
        //		window.open(pPagina)
        	if (window.showModalDialog( pPagina, pnmJanela, "dialogWidth:"+pLargura+"px;dialogHeight:"+pAltura+"px;scroll:"+pScroll+";help:0;status:0"+ltxtaux) == 1)
        		oForm.submit();
        		window.location.reload();
        }

    }

/**************************************************************
 Funcao que Abre um popup modal
 Parametros : theURL --> Url que ira abrir
                     winName --> nome de janela
			   features --> caracteristicas da janela, tamanho, altura, etc
*************************************************************/							  
function MM_openBrWindowModal(theURL,winName,features) { //v2.0
  rv = window.showModalDialog(theURL,winName,features);
  return rv;
}



/**************************************************************
 Funcao que marca ou desmarca todos os Checkbox do Formulario
 Parametros : pformulario --> Nome do Formulario 
              pmarca      --> Se true ele marca todos 
			                  Se false ele desmarca todos
*************************************************************/							  

function MarcaCheckbox(valor,checkbox)
{ 
  if (typeof(checkbox.length)== 'undefined')
    checkbox.checked = valor;
  else
  {
      for (i = 0 ; i < checkbox.length ; i++)
              checkbox[i].checked = valor;
  }
}


/**************************************************************
 Funcao que desmarca os Checkboxs que marcam todos os outros
 Parametros : pformulario --> Nome do Formulario 
              pmarca      --> Se true ele marca todos 
			                  Se false ele desmarca todos
*************************************************************/							  
function DesmarcaCheckbox( pformulario, pmarca )
{

   for (var i = 0; i < pformulario.elements.length ; i++) 
   {
	       pformulario.elements[i].checked = false;
	}   

}	




/**************************************************************
 Funcao que Verifica se um campo eh numerico
 Parametros : field --> Nome do campo
                     msg   --> mensagems que será exibida se houver erro

*************************************************************/							  
function isNumber(field,msg){

  data = field.value;   

   //testa infinitos numeros sem virgula
   var r1 = new RegExp("^([0-9]+)$");

   //testa infinitos numeros com virgula
   var r2 = new RegExp("^([0-9]+\\,[0-9]{0,3})$");

   //testa numero com pontos e virgulas
   var r3 = new RegExp("^[0-9]{1,3}(\\.[0-9]{3})*(\\,[0-9]{0,2}){0,1}$");

 //  return((r1.test(data)) || (r2.test(data)) || (r3.test(data)) )

  if ( ((r1.test(data)) || (r2.test(data)) || (r3.test(data)) ) == true) 
     return true;
  else
  {  alert(msg);
     field.focus();  
     return false;	
  }
}


/**************************************************************
 Funcao que Verifica se um campo eh inteiro
 Parametros : field --> Nome do campo
                     msg   --> mensagems que será exibida se houver erro

*************************************************************/							  
function isInteiro(objNum,msg) {
   data = objNum.value;   
   var numStr = "0123456789";
   var thisChar;
   var counter = 0;
   for (var i=0; i<data.length; i++){
       thisChar = data.substring(i, i+1);
       if (numStr.indexOf(thisChar) != -1)
           counter++;
   }
   if (counter == data.length){
      return(true);
   }else{
		alert(msg);
		objNum.focus();		
	  	return false;
   }
	return true;
}


/**************************************************************
 Funcao de mascara de numero decimais positivos
 Parametros : field --> o nome do objeto do formulario
*************************************************************/
function mask_numero_percentual(field)
	{
    var local_caract_especial,cont_caract_especial;
	
	local_caract_especial = 0;
	cont_caract_especial = 0;
		
		if ( field.value.length == 0  && (event.keyCode == 44 || event.keyCode == 46) )
		{   
           return false;
        }
		else
		{
           if ( (event.keyCode == 44 || event.keyCode == 46) || (event.keyCode > 47 && event.keyCode < 58) )
		   {
 		      for (i=0; i <= field.value.length-1; i++)
			  {	
			     str = field.value.substring(i, i+1);
				 str = str.charAt(0)
			     if ( (str == ",") || (str == ".") )
				 {
				    cont_caract_especial++;
					local_caract_especial = i
				 }
			   }

			 if ( event.keyCode == 44 || event.keyCode == 46 )
		     {
			    if ( cont_caract_especial == 1 )
			    {
			       return false;
			    }
			    else
			    {
			       return true;
		   	    }
		     }
		     else
		     {  
  		         if ( field.value.length == 3 && (event.keyCode != 44 && event.keyCode != 46) && cont_caract_especial == 0 )
			     {
			        field.value = field.value + '.';
				    return true;
			     }
				 else
				 {
			        if ( cont_caract_especial == 1 )
			        {
  		               if ( field.value.length == 3 && (event.keyCode != 44 && event.keyCode != 46) && cont_caract_especial == 0 )
			           {
			                 field.value = field.value + '.';
				             return true;
			           }
				       else
				       {
				          if ( ( local_caract_especial == 0 || local_caract_especial == 1 ) && field.value.length >= 5 )
                             return false;
				       }
		            }
				 }
		     }
	   }
       else
	   {
	      return false;
	   }
   }
}


/**************************************************************
 Funcao que Verifica se um campo eh vazio
 Parametros : field --> Nome do campo
                     msg   --> mensagems que será exibida se houver erro

*************************************************************/							  
function isVazio(field,msg){
   var thisChar;
   var counter = 0;
   var str;
   
    str = field.value
    if ( str == "" ) {
            if (typeof(msg) != "undefined"){ 
		   alert(msg)
		   field.focus()
		}   
		return true;
    }
    
    for (var i=0; i<str.length; i++){
       thisChar = str.substring(i, i+1);
       if (thisChar == " ")
           counter++;
   }
   
   if (counter == str.length){
       if (typeof(msg) != "undefined"){
	    alert(msg);
          field.focus();		
	 }   
      return true;
   }
   
    return false;	
}

/**************************************************************
 Funcao que Verifica se um campo que nao sabemos o nome eh vazio
 Parametros : oForm --> Nome do formulário
                     msg   --> mensagems que será exibida se houver erro

*************************************************************/							  

function isCampoVazio(oForm,msg)
{

	for (i = 0; i < oForm.length; i++)
	{
		if (oForm.elements[i].id == "validar")
		{
            //alert(oForm.elements[i].name);
			
		  	if (!oForm.elements[i].disabled)
			{
			   if ((oForm.elements[i].value == '') || (oForm.elements[i].value == ' ') || (oForm.elements[i].value == '  ' ) )
		          {
				   alert(msg);
				   oForm.elements[i].focus();
				   return false;
			      }
            } 
		}
	}
return true;
}


/**************************************************************
 Funcao que Verifica se um radio é checado
 Parametros : field --> Nome do campo
                     mensagem   --> mensagems que será exibida se houver erro

*************************************************************/							  

function isChecked(field, msg)
{
   checado = false
   for (i=0; i < field.length; i++)
       { 
      // if (frm.elements[i].type == "radio")
            if (field[i].checked)
            checado = true;
       }    
   if (!checado)
   {
   alert(msg);
   return false;
   }
 return true;
}

/**************************************************************
 Funcao que verifica se uma data e hora eh Posterior a outra no formato dd/mm/aaaa
*************************************************************/


function isDateTimeCompara(p_data1, p_hora1,  p_data2, p_hora2, p_msg)
{
    var dia, mes, ano
    dia = p_data1.value.substr(0,2);
    mes = p_data1.value.substr(3,2);
    ano = p_data1.value.substr(6,4);
    
    var hora1, hora2, minuto1, minto2
       
    hora1  = p_hora1.value.substr(0,2);
    hora2 =  p_hora2.value.substr(0,2);

    minuto1  = p_hora1.value.substr(3,2);
    minuto2 =  p_hora2.value.substr(3,2);
   
    var dtinicio = new Date(ano + "/" + mes + "/" + dia + " " + hora1 + ":" + minuto1);
    dia = p_data2.value.substr(0,2);
    mes = p_data2.value.substr(3,2);
    ano = p_data2.value.substr(6,4);
    		
    var dtfinal = new Date(ano + "/" + mes + "/" + dia + " " + hora2 + ":" + minuto2);
    if (dtinicio >= dtfinal){
       alert(p_msg);
       p_data1.focus();
       return false;
       }
	else
    return true;
}


/**************************************************************
 Funcao que Verifica se um Combo é Selecionado
 Parametros : field --> Nome do campo
                     mensagem   --> mensagems que será exibida se houver erro

*************************************************************/							  

function isSelected(field, msg)
{ 
  if (field.selectedIndex == '')
       { 
        alert(msg);
        field.focus();
	    return false;	
	   }    
 return true;
}

/**************************************************************
 Funcao que Verifica se um campo eh zero
 Parametros : field --> Nome do campo
                     mensagem   --> mensagems que será exibida se houver erro

*************************************************************/							  
function isZero(field,msg){
    str = field.value
    if  ( str == 0) {
		alert(msg)
		field.focus()
		return true;
	}
    return false;	
}

/**************************************************************
 Funcao que Verifica  se é ou naum um email valido
 Parametros : str --> Email

*************************************************************/							  
function isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}


/**************************************************************
 Funcao de mascara de numero decimais positivos
 Parametros : field --> o nome do objeto do formulario
*************************************************************/							  
function mask_numero_decimal(field)
{	
    if ((field.value.length == 2) && (event.keyCode == 44))
        return(true);
    if ( (event.keyCode > 64 && event.keyCode < 91) || (event.keyCode > 96 && event.keyCode < 123) )
        return(false);
    if (((event.keyCode) > 47) && ((event.keyCode) < 58)){
        NumDig = field.value;
        TamDig = NumDig.length;
        Contador = 0;
        if ((TamDig > 0) && (TamDig < field.maxLength)){
            numer = "";
            for (i = TamDig; (i >= 0); i--){
                if ((parseInt(NumDig.substr(i,1))>=0) && (parseInt(NumDig.substr(i, 1))<=9)){
                    Contador++;
                    if ((Contador == 2) && ((TamDig -i) < 4)){
                   //     numer = ","+numer;
                   //     Contador = 0;
                    }else if (Contador == 3){
                             numer = "."+numer;
                             Contador = 0;
                    }
                    numer = NumDig.substr(i, 1)+numer;
                }
            }
            field.value = numer;
            return(true);
        }
    }else return(false);
}

/**************************************************************
 Funcao de mascara de numero natural
 Parametros : field --> o nome do objeto do formulario
*************************************************************/							  
function mask_numero_natural(field){
  
  var caracter = event.keyCode;

  //permit o backspace
  if (caracter  == 13)
    return true;
 //numeros de 0 a 9 
  if ((caracter  < 48) || (caracter  > 57)){  
     field.focus();     
     return false
  }    
  
return true;  
}



/**************************************************************
 Funcao que monta uma mascara para data
 Parametros : field --> objeto do form de data (campo de data)

*************************************************************/							  
function maskdata(field,teclapres){

  var caracter = teclapres.keyCode;
  
  if (caracter  == 13)
    return true;
  
  if (((field.value.length == 2) || (field.value.length == 5)) && (caracter == 47))
     field.value = field.value + '/';
 
  if ((caracter  < 48) || (caracter  > 57)){  
     field.focus();     
     return false
  }
  else{
        if (  ((field.value.length == 2) || (field.value.length == 5))  && (caracter != 8)  )
 	      field.value = field.value + '/';
  }
  
 
return true;
}

/**************************************************************
 Funcao para usar maskara no campo de horas(tecla-a-tecla)
 parâmetos : field    --> campo de hora
            teclapres --> tecla pressionada
*************************************************************/

function maskhora(field,teclapres){

  var caracter = teclapres.keyCode;
  
  if (caracter == 13)
    return true;
  
  if ((field.value.length == 2) && (caracter == 47))
     field.value = field.value + ':';
 
  if ((caracter  < 48) || (caracter  > 57)){  
     field.focus();     
     return false;
  }
  else{
       if (  (field.value.length == 0)  && (caracter > 50)  )
			return false;

        if (  (field.value.length == 1)  && (field.value.charAt(field.value.length-1) == '2' ) && (caracter > 51) )
			return false;

        if (  (field.value.length == 2)  && (caracter != 8)  )
 	      field.value = field.value + ':';

       if (  (field.value.length == 3)  && (caracter > 53)  )
			return false;

       if (field.value.length == 5)
			return false;

  }  
  return true;
}

/**************************************************************
 Funcao que monta uma mascara para data no formato mes/ano
 Parametros : field --> objeto do form de data (campo de data)

*************************************************************/							  
function maskdata_mesano(field,teclapres){

  var caracter = teclapres.keyCode;
  
  if (caracter  == 13)
    return true;
  
  if ((field.value.length == 2)  && (caracter == 47))
     field.value = field.value + '/';
 
  if ((caracter  < 48) || (caracter  > 57)){  
     field.focus();     
     return false
  }
  else{
        if ( (field.value.length == 2)  && (caracter != 8)  )
 	      field.value = field.value + '/';
  }
  
 
return true;
}


/**************************************************************
 Funcao que verifica se uma data eh válida no formato dd/mm/aaa
 Parametros : objdata --> objeto do form de data (campo de data)

*************************************************************/							  

function isDate(objdata){
	if ((objdata.value.length < 10) || (objdata.value.length == "")) {
		alert("Data inválida. Formato indicado: dd/mm/aaaa. Ex: 01/01/2002");
		objdata.focus();
		return false;
	}
	dia = objdata.value.substr(0,2);
	mes = objdata.value.substr(3,2);
	ano = objdata.value.substr(6,4);
    if   ((isNaN(parseInt(dia)) || isNaN(parseInt(mes)) ||
    isNaN(parseInt(ano))) ||
		(ano < 1900 || ano > 9999) ||
        (mes < 1 || mes > 12) ||
        (dia < 1 || dia > 31) ||
        (mes == 2 && dia > 28 && (ano % 4 != 0)) ||
        (mes == 2 && dia > 29 && (ano % 4 == 0)) ||
        (dia > 30 && (mes == 4 || mes == 6 || mes == 9 || mes == 11))) {
			alert("Data inválida! Informe uma data válida.");
			objdata.focus();
			return false;
    }else {
            return true;
    }
}


/**************************************************************
 Funcao que testa uma mascara passada.
 Parametros : codigo --> o objeto que se quer testar.
			   mascara --> mascara usando a barra como separador.
           			                      utiliza formato 99/99/999 para valores numericos
							    e aaa/aa/aaaa/aa para valores alpha

*************************************************************/							  

function mascara_generica(codigo,mascara){
  str = mascara;
  fim = str.length;
  valor = codigo.value;
  posicao = valor.length -1;
  tipo = str.charAt(posicao);
  
  if ((tipo == "a") || (tipo == "A")){
     if ((valor.charCodeAt(posicao) >= 48) && (valor.charCodeAt(posicao) <= 57) ||
		(valor.charCodeAt(posicao) >= 65) && (valor.charCodeAt(posicao) <= 90) ||
		(valor.charCodeAt(posicao) >= 97) && (valor.charCodeAt(posicao) <= 122)) {
		tipo = str.charAt(posicao+1);
             cont = posicao + 1;
		while ((tipo!="a") && (tipo!="A") && (tipo!="9") && (tipo!="") ) {
			codigo.value=codigo.value+tipo;
                    cont = cont + 1;
 		       tipo = str.charAt(cont);
		}
	 } else { 
		codigo.value = codigo.value.substr(0,posicao);
	 }
  } else {
	if (tipo == "9") {
		if ((valor.charCodeAt(posicao) >= 48) && (valor.charCodeAt(posicao) <= 57)) {
			tipo = str.charAt(posicao+1);
            cont = posicao + 1;
			while ((tipo!="a") && (tipo!="A") && (tipo!="9") && (tipo!="")) {
				codigo.value=codigo.value+tipo;
                           cont = cont + 1;
 	   	              tipo = str.charAt(cont);
			}
		} else { 
			codigo.value = codigo.value.substr(0,posicao);
		}
	} else {
        	tipo = str.charAt(posicao+1);
            cont = posicao + 1;
			while ((tipo!="a") && (tipo!="A") && (tipo!="9") && (tipo!="")) {
				codigo.value=codigo.value+tipo;
                           cont = cont + 1;
 	   	              tipo = str.charAt(cont);
			}
	}
  }
  codigo.value = codigo.value.substr(0,fim - 1) ;
  return true;
}

  
/**************************************************************
 
 Funcao para validar ano em uma consulta
 
*************************************************************/		
function ValidaAno(field){
if (field.value != ''){
  if (!isNumber(field,'Ano deve ser numérico'))
     {
     return false;
     }
  if ((field.value.length < 4) && (field.value.length >= 1))
    {
     alert('O Ano deve ser de 4 dígitos');
	 field.focus();
     return false;
    }
 }
return true;
} 

/************************************************************
Preview Imagem de Upload
************************************************************/
function PreviewIMG(txUpload, idimgPreview )
{
 if (txUpload.value == ''){
     alert('Selecione a Imagem para Visualizar');
	 txUpload.focus();
     return false;
  }
  else
  {
    if (idimgPreview == 'imgPreview')
    document.imgPreview.src = oForm.url_img.value + txUpload;

    if (idimgPreview == 'imgPreview2')
    document.imgPreview2.src = oForm.url_img.value + txUpload;

    if (idimgPreview == 'imgPreview3')
    document.imgPreview3.src = oForm.url_img.value + txUpload;

    if (idimgPreview == 'imgPreview4')
    document.imgPreview4.src = oForm.url_img.value + txUpload;

    if (idimgPreview == 'imgPreview5')
    document.imgPreview5.src = oForm.url_img.value + txUpload;

 
  }
return true;
}

/**************************************************************
 Funcao para popular combos relacionados (dependentes)
 onchage="popula_combo_dependente(window.oFrame(frame_escondido), oForm, oCampo);"
 parâmetor: combo origem e combo de destino

*************************************************************/
function popula_combo_dependente(p_nmFuncao, p_nmFrame_escondido, p_nmForm, p_nmCampo, p_codigoSQL, p_ordemform) 
{
  //alert(p_ordemform)
   p_nmForm.target = p_nmFrame_escondido;
   p_nmForm.action = 'http://www.vendabarato.com.br/include/ap_popula_filtros.asp?p_nmFuncao=' + p_nmFuncao + '&p_NmCombo=' + p_nmCampo + '&p_codigoSQL=' + p_codigoSQL + '&p_ordemform=' + p_ordemform ;
  // p_nmForm.action = '../include/ap_popula_filtros.asp?p_nmFuncao=' + p_nmFuncao + '&p_NmCombo=' + p_nmCampo + '&p_codigoSQL=' + p_codigoSQL + '&p_ordemform=' + p_ordemform ;
   p_nmForm.submit();
 return true;  
}


/**************************************************************
 Funcao para adicionar valores de combo p/ combo
 onchage="PapulaCombo(document.oForm.cb_Empregado,document.oForm.cd_grupo_func);"
 parâmetor: combo origem e combo de destino
*************************************************************/	
function PopulaCombo(origem, destino) 
//function insereItemCombo( origem,  destino )
  {
      var qtdexiste = 0;
      if (origem.selectedIndex >= 0 )
      {
      for ( lnx = 0 ;  lnx < origem.length  ; lnx++ )
      {
         
          if ( (origem.options[ lnx ].selected ) && ( !fn_procuravalor( destino, origem.options[ lnx ].value ) ) )
          {
	         destino.length =  destino.length + 1;
	         destino.options[ destino.length -1 ].value = origem.options[ lnx ].value;
	         destino.options[ destino.length -1 ].text = origem.options[ lnx ].text;

          }
          else 
          {
            qtdexiste++;
          }
      }	
      } 
      
      
  }
  
  
/**************************************************************
 Funcao que remove item do Combo aberto
 Parametros : src -> objeto
			  cor -> cor
			  strTxt -> 
			  tipo_cursor -> tipo do cursor
*************************************************************/							  
    
  function removeItemCombo( campo ) 
  {
		
      if ( campo.selectedIndex >= 0 )
         campo.options[ campo.selectedIndex ] = null;
				  
  }  

  
  
function fn_procuravalor( objeto, valor )
{
   existe = false;
   for ( lny = 0 ;  ((lny < objeto.length) && (!existe))  ; lny++ )
   {
       if ( objeto.options[ lny ].value == valor ) 
       {
	   existe = true;
       }
      }
   return existe;


}  
/**************************************************************
funcao para ordenar combo
***************************************************************/

function ordenaCombo(field,acao)
{  
 	var tmp = 0;
	var retorno = false;
	if ((acao.toLowerCase() == 'cima') && (field.options[field.selectedIndex].index != 0)) {
 		tmp = tmp - 1;
		retorno =  true;
	}
	else {
 		if ((acao.toLowerCase() == 'baixo') && (field.options[field.selectedIndex].index != field.options.length -1)){
			tmp = tmp + 1;
			retorno = true;
		}
 	}
	if (retorno){	
		//garda os textos e os values
		txselected = field.options[((field[field.selectedIndex].index))].text;
		txprox = field.options[((field[field.selectedIndex].index)+tmp)].text;
		vlselected = field.options[((field[field.selectedIndex].index))].value;
		vlprox = field.options[((field[field.selectedIndex].index)+tmp)].value;
		
		//faz a troca de acordo com a acao passada
		field.options[((field.options[field.selectedIndex].index))].text = txprox;
		field.options[((field.options[field.selectedIndex].index)+ tmp)].text = txselected;
		field.options[((field.options[field.selectedIndex].index))].value = vlprox;
		field.options[((field.options[field.selectedIndex].index)+tmp)].value = vlselected;
				
		field.selectedIndex = field.selectedIndex + tmp;
	 }
}


/*******************************************

Funcao usada para layers (oculpat layers...)

obs: Caso os valores de pTopo e pEsquerda sejam passados com valor "-1", sua posição na tela será centralizada

*********************************************/

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

/***************************************************

funcao que retorna o numero da qtd de %

**************************************************/

function RetornaPercentual_restante(Field, p_crme_pr_pagamento_total, p_msg)
{
 if (parseFloat(Field.value.replace(",",".")) > parseFloat(p_crme_pr_pagamento_total))
   {
    alert(p_msg);
	Field.focus();
    return false;
   }
 return true;
}



/****************************************************************
	Essa função deverá ser altera para atender as necessidades da página em questão. 
***************************************************************/

function ModalWindow( pagina, formelement, campo, titulo)
{  	
	if (formelement==""){
		janela = abreJanelaModal(pagina, titulo, 220, 250, -1, -1, campo);
	}
	else{
		var data;
		if (!isDate(campo)) {
		 return false;
		}		
		data=formelement.split("/");
		janela = abreJanelaModal(""+pagina+"?diam="+data[0]+"&mesa="+data[1]+"&anoa="+data[2]+"", titulo, 260, 280, -1, -1, campo);
	}
}  

/************************************************************************************
Parâmetros:
    p_valor   --> o nome do objeto do formulario
	p_char    --> caracter que vai ser substituido
	p_charNew --> caracter substituto
*************************************************************************************/
function replaceAll(p_valor, p_char, p_charNew){
	p_valor_old = '';
    while(p_valor_old != p_valor){
		p_valor_old = p_valor;
		p_valor = p_valor.replace(p_char, p_charNew);
	}
	return p_valor;
}
/************************************************************************************
Parâmetros:
    p_field      --> o nome do objeto do formulario
	p_descricao  --> string que vai definir da descricao
*************************************************************************************/
function limpa_combo(p_field,p_descricao) {
    p_field.length = 1;
    p_field.options[p_field.length-1].text = p_descricao;
    p_field.options[p_field.length-1].value = '';
}
/*******************************************************************
Abre Janela MODAL Retorna 2 valores
Parâmetros:

	pPagina: 	Nome da página que será aberta na janela Modal
	pnmJanela: 	Nome da janela
	pLargura: 	Largura da janela
	pAltura: 	Altura da janela
	pTopo: 		Distância em relação ao topo
	pEsquerda: 	Distância em relação a lateral esquerda
    campo:      Campo para retorno
    campo_hd:   Campo hidden para segundo retorno
	pscrioll: se tiver scrol (1 ou 0)

obs: Caso os valores de pTopo e pEsquerda sejam passados com valor "-1", sua posição na tela será centralizada
***********************************************************************/
function abreJanelaModal_dois_retornos( pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda, campo, campo_hd, pscroll){
	var ltxtaux; 
    var i=0;
	if ( ( pAltura == -1 ) || ( pEsquerda == -1 ) ) 
		ltxtaux = ";center:1";
	else   
		ltxtaux = ";dialogTop:"+pTopo+"px;dialogLeft:"+pEsquerda+"px"; 
//		window.open(pPagina)
	rvalor = window.showModalDialog( pPagina, pnmJanela, "dialogWidth:"+pLargura+"px;dialogHeight:"+pAltura+"px;scroll:"+pscroll+";help:0;status:0"+ltxtaux );
	if ((rvalor!="")&&(rvalor!=null)){        
        while ((i<rvalor.length)&&(rvalor.charAt(i) != '#'))
             i++;
        campo.value    = rvalor.substring(0,i);
        campo_hd.value = rvalor.substring(i+1,rvalor.lenght)
        
	}
}
/**************************************************************
 Funcao que verifica se uma data eh válida no formato mm/aaaa
 Parametros : objdata --> objeto do form de data (campo de data)

*************************************************************/							  

function isDateMesAno(objdata){
	if ((objdata.value.length < 7) || (objdata.value.length == "")) {
		alert("Data inválida. Formato indicado: mm/aaaa. Ex: 01/2002");
		objdata.focus();
		return false;
	}
	mes = objdata.value.substr(0,2);    
	ano = objdata.value.substr(3,7);
    if  ((isNaN(parseInt(mes)) || isNaN(parseInt(ano))) ||
		(ano < 1900 || ano > 9999) ||
        (mes < 1 || mes > 12))  {
			alert("Data inválida! Informe uma data válida.");
			objdata.focus();
			return false;
    }else {
            return true;
    }
}
/****************************************************************
	Essa função deverá ser altera para atender as necessidades da página em questão. 
***************************************************************/

function ModalWindowMesAno( pagina, formelement, campo, titulo)
{  	
	if (formelement==""){
		janela = abreJanelaModal(pagina, titulo, 200, 230, -1, -1, campo);
	}
	else{
		var data;
		if (!isDateMesAno(campo)) {
		 return false;
		}		
		data=formelement.split("/");
		janela = abreJanelaModal(""+pagina+"?mesa="+data[0]+"&anoa="+data[1]+"", titulo, 200, 230, -1, -1, campo);
	}
}

/*******************************************************************
Abre Janela MODAL
Parâmetros:

	pPagina: 	Nome da página que será aberta na janela Modal
	pnmJanela: 	Nome da janela
	pLargura: 	Largura da janela
	pAltura: 	Altura da janela
	pTopo: 		Distância em relação ao topo
	pEsquerda: 	Distância em relação a lateral esquerda
	pscrioll: se tiver scrol (1 ou 0)
obs: Caso os valores de pTopo e pEsquerda sejam passados com valor "-1", sua posição na tela será centralizada
***********************************************************************/

function abreJanelaModal2( pPagina, pnmJanela, pLargura, pAltura, pTopo, pEsquerda, pscroll, p_combo_dependente, p_frame_escondido, p_form, p_combo_ser_populado, p_codigoSQL, p_ordemform, p_mensagem)
{
  var ltxtaux;1
 
  if (p_codigoSQL == '' || p_codigoSQL == null)
  {
   alert(p_mensagem)
   //  return false;
  }
  else
  {
	if ( ( pAltura == -1 ) || ( pEsquerda == -1 ) ) 
		ltxtaux = ";center:1";
	else   
     {
		ltxtaux = ";dialogTop:"+pTopo+"px;dialogLeft:"+pEsquerda+"px"; 
		rvalor =  window.showModalDialog( pPagina, pnmJanela, "dialogWidth:"+pLargura+"px;dialogHeight:"+pAltura+"px;scroll:"+pscroll+";help:0;status:0"+ltxtaux );
     }
	if ((rvalor!="")&&(rvalor!=null))
     {
      popula_combo_dependente(p_combo_dependente, p_frame_escondido, p_form, p_combo_ser_populado, rvalor, p_ordemform);
      
	 }
  }
}

/********************
Flash
*********************/

function writeFlash( targetFlash, widthFlash, heightFlash, backFlash  ) {
	document.write( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + widthFlash + '" height="' + heightFlash + '">');
	document.write( '<param name="allowScriptAccess" value="sameDomain" />' );
	document.write( '<param name="movie" value="' + targetFlash + '">' );
	document.write( '<param name="quality" value="high">' );
	document.write( '<param name="menu" value="false">' );
	
	if ( backFlash ) {
		document.write( '<param name="bgcolor" value="' + backFlash + '">' );
		document.write( '<embed src="' + targetFlash + '" quality="high" bgcolor="' + backFlash + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + widthFlash + '" height="' + heightFlash + '"></embed>' );
	} else {
		document.write( '<param name="wmode" value="transparent">' );
		document.write( '<embed src="' + targetFlash + '" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + widthFlash + '" height="' + heightFlash + '"></embed>' );
	}
		
	document.write( '</object>' );
}

/********************
Data Form Filtro
*********************/

function abre_popup(width, height, nome) {
  var top; var left;
  top = ( (screen.height/2) - (height/2) )
  left = ( (screen.width/2) - (width/2) )
  window.open('',nome,'width='+width+',height='+height+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,left='+left+',top='+top);
}

function definir_data(dia,mes,ano) {
  oFormFiltro.dia.value=dia;
  oFormFiltro.mes.value=mes;
  oFormFiltro.ano.value=ano;
  oFormFiltro.submit();
}
function up_dia() {
  if(oFormFiltro.dia.value==''){
    oFormFiltro.dia.value=1;
  }
  else {
    if(isNaN(oFormFiltro.dia.value)){
	  oFormFiltro.dia.value=1;
	}
	else {
	  if (parseInt(oFormFiltro.dia.value) < 31){
	    oFormFiltro.dia.value=parseFloat(oFormFiltro.dia.value)+1;
	  }
	}
  }
}
function down_dia() {
  if(oFormFiltro.dia.value==''){
    oFormFiltro.dia.value=1;
  }
  else {
    if(isNaN(oFormFiltro.dia.value)){
	  oFormFiltro.dia.value=1;
	}
	else {
	  if (parseInt(oFormFiltro.dia.value) > 1){
	    oFormFiltro.dia.value=parseFloat(oFormFiltro.dia.value)-1;
	  }
	}
  }
}
function up_mes() {
  if(oFormFiltro.mes.value==''){
    oFormFiltro.mes.value=1;
  }
  else {
    if(isNaN(oFormFiltro.mes.value)){
	  oFormFiltro.mes.value=1;
	}
	else {
	  if (parseInt(oFormFiltro.mes.value) < 12){
	    oFormFiltro.mes.value=parseFloat(oFormFiltro.mes.value)+1;
	  }
	}
  }
}
function down_mes() {
  if(oFormFiltro.mes.value==''){
    oFormFiltro.mes.value=1;
  }
  else {
    if(isNaN(oFormFiltro.mes.value)){
	  oFormFiltro.mes.value=1;
	}
	else {
	  if (parseInt(oFormFiltro.mes.value) > 1){
	    oFormFiltro.mes.value=parseFloat(oFormFiltro.mes.value)-1;
	  }
	}
  }
}

function up_ano() {
  if(oFormFiltro.ano.value==''){
    oFormFiltro.ano.value=2000;
  }
  else {
    if(isNaN(oFormFiltro.ano.value)){
	  oFormFiltro.ano.value=1;
	}
	else {
	  oFormFiltro.ano.value=parseFloat(oFormFiltro.ano.value)+1;
	}
  }
}
function down_ano() {
  if(oFormFiltro.ano.value==''){
    oFormFiltro.ano.value=2000;
  }
  else {
    if(isNaN(oFormFiltro.ano.value)){
	  oFormFiltro.ano.value=1;
	}
	else {
	  if (parseInt(oFormFiltro.ano.value) > 2000){
	    oFormFiltro.ano.value=parseFloat(oFormFiltro.ano.value)-1;
	  }
	}
  }
}

