

var gMask;
var gControl;
var gTipo;
var gTam;


var gAux;


//Chama uma funcao js 
function callFuncUd(pFuncName, pID){

    eval( pFuncName + '("' + pID + '");' );

}

function setaFocoCampo( pCampo ){
    
    document.getElementById(pCampo).focus();
    
}



function showHideAba(pIDTabMain,pIDTabClick,pClassAtiva,pClassInativa){

	var lAbaAtiva =  eval(pIDTabMain + '_abaAtiva;');

	
	if( lAbaAtiva != ''){
	
		 lAbaAtiva_content = document.getElementById( lAbaAtiva + '_content' );
		 lAbaAtiva_content.style.display = 'none';
		 
		 lAbaAtiva_header = document.getElementById( lAbaAtiva + '_header' ); 
	
                 lAbaAtiva_header.className = pClassInativa;
       
        
	}	
	
	//Seta aba clicada para ativa
	eval(pIDTabMain + '_abaAtiva = pIDTabClick;');
	lAbaAtiva =  eval(pIDTabMain + '_abaAtiva;');
	
	
	lAbaAtiva_content = document.getElementById( lAbaAtiva + '_content' );
	lAbaAtiva_content.style.display = 'block';
		 
	lAbaAtiva_header = document.getElementById( lAbaAtiva + '_header' ); 
	//lAbaAtiva_header.style.backgroundColor = "#EEEEEE";	
        lAbaAtiva_header.className = pClassAtiva;
 
}

function trataMaxCaracs_(){

	lTexto = gControl.value;
	gControl.value = lTexto.substring(0, gTam);

}

function trataMaxCaracs(pID,pTamanho){

	lField = $(pID);

	lTexto = lField.value;
	if(lTexto.length > pTamanho){
	    gControl = lField;
		gTam = pTamanho;
		setTimeout(trataMaxCaracs_,200);	
    }		
}

function validateData(pValue,pTitulo){

	if( pValue!=''){

		var erro = false;
		var date = pValue;
		var array_data = new Array;
		var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
		array_data = date.split("/");

		if ( date.search(ExpReg) == -1 )
			erro = true;
		else if ( ( array_data[0].length != 2 ) || ( array_data[1].length != 2 ) || ( array_data[2].length != 4 ) )
			erro = true;
		else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
			erro = true;
		else if ( array_data[1] == 2 ) {
			if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
				erro = true;
			if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
				erro = true;
		}
		if ( erro ) 
			return "-Valor inválido para o campo " + pTitulo + "!\n"; 	
		else
			return '';	
	}
	return '';
}

function validateCPF(pValue,pTitulo){

	if( pValue!=''){

		var erro = false;
		var cpfq = '';
		var cpfq1;	 
		var campo = pValue;
		 
	   sText = campo.split("");	 
	   for (i = 0; i < sText.length; i++){  
	
		  Char = sText[i]; // sText.charAt(i)	
		  if ((Char >= "0") &&   (Char <= "9") ) 	
			  cpfq = cpfq + sText[i];
	   }	 
		 
		cpf1 = cpfq.split("");

		if ( cpfq.length != 11 ){ 
			erro=true;
		}
		else if ( (cpf1[0]==cpf1[1])&&(cpf1[1]==cpf1[2])&&(cpf1[2]==cpf1[3])
					&&(cpf1[3]==cpf1[4])&&(cpf1[4]==cpf1[5])&&(cpf1[5]==cpf1[6])
					&&(cpf1[6]==cpf1[7])&&(cpf1[7]==cpf1[8])&&(cpf1[8]==cpf1[9])
					&&(cpf1[9]==cpf1[10])&&(cpf1[10]==cpf1[0])){ 
			erro=true;
		}
		else{	
			if (isNaN(cpfq)) {
				erro = true;
			}
			var i;
			var c = cpfq.substr(0,9);
			var dv = cpfq.substr(9,2);
			var d1 = 0;
			for (i = 0; i < 9; i++) {
				d1 += c.charAt(i)*(10-i);
			}
			if (d1 == 0){
				erro = true;
			}         
			d1 = 11 - (d1 % 11);
			if (d1 > 9) 
				d1 = 0;         
			if (dv.charAt(0) != d1) {
				erro = true;        
			}
			d1 *= 2;
			for (i = 0; i < 9; i++) {
				d1 += c.charAt(i)*(11-i);
			}
			d1 = 11 - (d1 % 11);
			if (d1 > 9) 
				d1 = 0;
			if (dv.charAt(1) != d1) {
				erro = true;
			}
		}   

		if ( erro ) 
			return "-Valor inválido para o campo " + pTitulo + "!\n"; 	
		else
			return '';	
	}
	return '';

}

/**
* Verifica se um caractere é númerico
*
* @param	string	Caractere
* @return	int true se válido, false se inválido
*/
function phpFormIsCharNumeric(pChar){

	if( pChar =='0') return true;
	if( pChar =='1') return true;
	if( pChar =='2') return true;
	if( pChar =='3') return true;
	if( pChar =='4') return true;
	if( pChar =='5') return true;
	if( pChar =='6') return true;
	if( pChar =='7') return true;
	if( pChar =='8') return true;
	if( pChar =='9') return true;
	return false;
}


/**
* realiza a formatação do campo
*
* @return	nada
*/
function phpFormFormataFloat_(){

	lControl = document.getElementById( gControl );

	lValue = lControl.value; 
	lNumCasas = gTipo;
	
	var lValueFormatado = '';
	
	var lContVirg = 0;


	var lPodeAdicionar = true;
	
	var lDecimalSep = ',';
	
	if( lDecimalSep == ',')
		lOutroDecimalSep = '.';
	else		
		lOutroDecimalSep = ',';
	
	
	for (indStr=0; indStr < lValue.length;indStr++){

  		    lChar = lValue.charAt(indStr);
	/*		
			if( (lChar=='0') || (lChar=='1') || (lChar=='2') || 
			    (lChar=='3') || (lChar=='4') || (lChar=='5') || 
				(lChar=='6') || (lChar=='7') || (lChar=='8') || 
				(lChar=='9') || (lChar==lDecimalSep) || (lChar==lOutroDecimalSep) ){ 
		
*/		

			if( phpFormIsCharNumeric(lChar) ||  (lChar==lDecimalSep) || (lChar==lOutroDecimalSep) ){ 

				//com isso permite teclar "." no teclado numerico, por exemplo e mudar para ","
				if (lChar==lOutroDecimalSep)
					lChar = lDecimalSep;

				//Se o primeiro carac digitado for um separador, entao adiciona o 0 na frente
				if( (lValueFormatado.length==0) && (lChar == lDecimalSep) )
 					lChar = '0' + lDecimalSep;

	
				lPodeAdicionar = true;	
	
				if(lChar==lDecimalSep){	
					lContVirg = lContVirg + 1;

					//Permite adicionar somente uma ,
					if(lContVirg < 2)
					  lPodeAdicionar = true; 
					else
					  lPodeAdicionar = false;	
						//lValueFormatado = lValueFormatado + lChar;
				}
	
				//Se tem decimal, entao verifica se nao ultrapassou o numero maximo de casas
				lArr = lValueFormatado.split(lDecimalSep);
				if( lArr.length > 1){
						lFrac = lArr[1];
						if( lFrac.length >= lNumCasas)
							lPodeAdicionar = false;	
				
				}
	
				
				if(lPodeAdicionar )
	  			 	 lValueFormatado = lValueFormatado + lChar;
			}
    }	
	
	

	
	lControl.value = lValueFormatado;	
}



/**
* realiza a formatação do campo
*
* @return	nada
*/
function phpFormFormataText_(){

	lControl = document.getElementById( gControl );

	lValue = lControl.value; 
	
	if( gTipo=='cFORMATA_UPPER')
		lValue = lValue.toUpperCase();

	if( gTipo=='cFORMATA_LOWER')
		lValue = lValue.toLowerCase();
	
	lControl.value = lValue;	
}

/**
* realiza a formatação do campo
*
* @return	nada
*/
function phpFormFormataMask_(){

	lControl = document.getElementById( gControl );
	
	lValueFormatado = '';
	lValueSemMask = lControl.value;

	intIndexOfMatch = lValueSemMask.indexOf( "/" );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace("/", "");
		intIndexOfMatch = lValueSemMask.indexOf( "/" );
	}

	intIndexOfMatch = lValueSemMask.indexOf( "(" );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace("(", "");
		intIndexOfMatch = lValueSemMask.indexOf( "(" );
	}

	intIndexOfMatch = lValueSemMask.indexOf( ")" );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace(")", "");
		intIndexOfMatch = lValueSemMask.indexOf( ")" );
	}
	
	intIndexOfMatch = lValueSemMask.indexOf( ":" );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace(":", "");
		intIndexOfMatch = lValueSemMask.indexOf( ":" );
	}

	intIndexOfMatch = lValueSemMask.indexOf( "-" );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace("-", "");
		intIndexOfMatch = lValueSemMask.indexOf( "-" );
	}

	intIndexOfMatch = lValueSemMask.indexOf( "," );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace(",", "");
		intIndexOfMatch = lValueSemMask.indexOf( "," );
	}

	intIndexOfMatch = lValueSemMask.indexOf( "." );
	while (intIndexOfMatch != -1){
		lValueSemMask = lValueSemMask.replace(".", "");
		intIndexOfMatch = lValueSemMask.indexOf( "." );
	}
	
	lMask = gMask;

	var indStr = 0;
	for (indMask=0; indMask < lMask.length;indMask++){

		if(indStr <  lValueSemMask.length){
			lCharMask = lMask.charAt(indMask);
			
			if( (lCharMask=='9') || (lCharMask=='#') ){ 
	
				lCharEdt = lValueSemMask.charAt(indStr);

				if(lCharMask=='9'){ 
					if (phpFormIsCharNumeric(lCharEdt)) {
						lValueFormatado = lValueFormatado + lCharEdt;
					}
				}else
					lValueFormatado = lValueFormatado + lCharEdt;
				indStr++;

			}else
				lValueFormatado = lValueFormatado + lCharMask;
		}else
			break;
	
	} 


	lControl.value = lValueFormatado;
}


/**
* após um timeout chama a rotina que irá efetuar a formatação a partir da máscara
*
* @param	string	$pCampoID  Id do componente
* @param	string	$pMask  Máscara de formatação
* @return	nada
*/
function phpFormFormataMask(pCampoID,pMask){

	gControl = pCampoID;
	gMask = pMask;
	setTimeout(phpFormFormataMask_,100);
}


/**
* após um timeout chama a rotina que irá efetuar a formatação a partir da máscara
*
* @param	string	$pCampoID  Id do componente
* @param	string	$pMask  Máscara de formatação
* @return	nada
*/
function phpFormFormataText(pCampoID,pTipo){

	gControl = pCampoID;
	gTipo = pTipo;
	setTimeout(phpFormFormataText_,100);
}



function phpFormFormataFloat(pCampoID,pNumCasas){

	gControl = pCampoID;
	gTipo = pNumCasas;
	setTimeout(phpFormFormataFloat_,100);
}





function setCheckUncheckGrid(pFormName,pIDFull,pIDComp){

	var lFieldList = Form.getInputs(pFormName,'checkbox');

  
        eval('var lState = gCheckAll_' + pIDComp + ';');
    
        lState = !lState;
    
    
        eval('gCheckAll_' + pIDComp + '= lState;');
    
	for(var i=0;i<lFieldList.length ;i++){
            
          lIdCompleto = lFieldList[i].id;
          
          lIdArr = lIdCompleto.split("_");
        
          if(lIdArr[0] == pIDFull)
              lFieldList[i].checked = lState;
        }

}


function changeCheckUncheckGridImage(pIDComp,pIDImg,pImgCheck,pImgUncheck){
    
        eval('var lState = gCheckAll_' + pIDComp + ';');  
    
        if(lState )
            $(pIDImg).src= pImgUncheck;
        else  
            $(pIDImg).src= pImgCheck;        
        
    
}









