function conv_maiusculo(texto)
{
  texto.value = texto.value.toUpperCase();
}

function conv_minusculo(texto)
{
  texto.value = texto.value.toLowerCase();
}

function jsData(dtaobjeto)
{
   if(dtaobjeto.value != "" && ! fvalidadata(dtaobjeto))
	{
	   dtaobjeto.value = "";
		dtaobjeto.focus();
		return false;
	}
	return true;
}

function jsDataVigencia(dtaobjeto, dtaobjeto1, boocmp)
{
  // alert( boocmp + "*" + dtaobjeto.value + "*" + dtaobjeto1.value );
   if(dtaobjeto.value != "" && ! fvalidadata(dtaobjeto))
	{
	   dtaobjeto.value = "";
		dtaobjeto.focus();
	}
	else if( boocmp && dtaobjeto.value != "" && dtaobjeto1.value != "" )
	{
	   if ( jsInverte( dtaobjeto.value ) < jsInverte( dtaobjeto1.value ) )
		{
		   alert( "* Atenção *\nFinal de Vigência NÃO pode ser \n inferior ao Início.");
	      dtaobjeto.value = "";
		   dtaobjeto.focus();
		}	
	}
	return;
}

function jsInverte( lsValor )
{
   var i;
	var lsValorInv;
	
	lsValorInv = "";
	
   lsValorInv += lsValor.substring(6,10);
   lsValorInv += lsValor.substring(3,5);
   lsValorInv += lsValor.substring(0,2);
	
	return lsValorInv;
}

function fvalidadata(vpobjeto)
{
   var ret;
	var strret;
	
	ret = true;
	
	vdata = vpobjeto.value;

	var inum = '';
	var rstr = '0123456789';
	var itam = vdata.length;

	for ( cont=0; cont < vdata.length; cont++ ) 
	{
		tchar = vdata.charAt(cont);
		if (rstr.indexOf(tchar) != -1)
			inum = inum + tchar;
	};

   strret = "* Atenção *\n";
	
	itam = inum.length;
	if (itam != 8)
	{
	   strret += "Tamanho Inválido.\n";
	   alert( strret );		
		return false;
	}	

	dia = inum.substring(0,2);
	mes = inum.substring(2,4);
	ano = inum.substring(4,8);

	if ((mes < 1) || (mes > 12)) 
	{
	   strret += mes + " - Mês Inválido.\n";
		ret = false;
	}	


	if ((dia < 1) || (dia > 31))
	{
	   strret += dia + " - Dia Inválido.\n";
		ret = false;
	}	


	if ((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11))
		if (dia > 30) 
		{
		   strret += dia + " - Dia Inválido.\n";
			ret = false;
		};

	if (mes == 2) 
		if (((ano % 4) == 0) || ((ano % 4) == 100) || ((ano % 400) == 0))
		{
			if (dia > 29)
			{
			   strret += dia + " - Dia Inválido.\n";
				ret = false;
			};
		}
		else
		{
			if (dia > 28)
			{
			   strret += dia + " - Dia Inválido.\n";
				ret = false;
			};
		};

   if( ! ret )
	   alert( strret );
		
	return ret;
}

function pad(valor, tam, carac, alin)
{

// Exemplo de chamada:
// ... onblur="javascript:pad(this,15,'0','D');">

	var i;
	var tamvalor;
	var conj='';
	var retorno;
	retorno = valor.value;
	tamvalor = retorno.length;
	for (i=1; i <= (tam - tamvalor); i++)
	{
		conj = conj + carac;
	};
	valor.value = alin.toUpperCase()=='D'?conj+retorno:retorno+conj;
	return;
}

function replicate(carac, tam)
{

// Exemplo de chamada:
// ... onblur="javascript:replicate('0',15 );">

	var i;
	var str='';
	for (i=1; i <= tam; i++)
	{
		str = str + carac;
	};
	return str;
}


//Define variaveis a serem utilizadas nesta função e em demais funções de layers
var totalLayersInLoop=1;
var NumPosicaoAtualLayer=1;
//////////////////////////////////////////////
// Objetivo		:Inicializa referencia do layer a ser utilizado
// Chamada		:initLayer()
// Exemplo		:
//////////////////////////////////////////////
function initLayer(){
	if (navigator.appName == "Netscape") {
	 	layerStyleRef="layer.";
	 	layerRef="document.layers";
	 	styleSwitch="";
	}else{
	 	layerStyleRef="layer.style.";
	 	layerRef="document.all";
	 	styleSwitch=".style";
	}
//alert('layerRef=' + layerRef);
}

//////////////////////////////////////////////
// Objetivo		:Exibe o layer passado como parametro
// Chamada		:ExibeLayer(NomeLayer)
// Exemplo		:
//////////////////////////////////////////////
function ExibeLayer(NomeLayer){
	initLayer();
	eval(layerRef+'["'+NomeLayer+'"]'+styleSwitch+'.visibility="visible"');
}

//////////////////////////////////////////////
// Objetivo		:Esconde o layer passado como parametro
// Chamada		:EscondeLayer(NomeLayer)
// Exemplo		:
//////////////////////////////////////////////
function EscondeLayer(NomeLayer)	{
	initLayer();
	eval(layerRef+'["'+NomeLayer+'"]'+styleSwitch+'.visibility="hidden"');
}

function validacao(valor, objeto)
{
	var cgc;
	var cpf;
	cgc=false;
	cpf=false;
		
		if( valor == '' )
		{
			return false;
		}
		
		if ( valor.length > 11 )
		{
			if( valor == replicate(valor.substring(0,1), 15) )
			{
				alert('CNPJ inválido.');
				objeto.value="";
				objeto.focus();
				return false;
			}
		}
		else
		{
			if( valor == replicate(valor.substring(0,1), 11) )
			{
				alert('CPF inválido.');
				objeto.value=""
				objeto.focus();
				return false;
			}
		}
		
		if (CNPJValido(valor)==true)
		{
			cgc=true;
		}
		
		if (CPFValido(valor)==true)
		{
			cpf=true;
		}
			
		if((cpf==false)&&(cgc==false))
		{
			alert('CNPJ/CPF inválido');
			objeto.value="";
			objeto.focus();
			return false
		}
		return true;
		
}

function CNPJValido(CNPJ){
   var i, j, k, Soma;
       
   if (CNPJ.length != 14)
      return false;
    
      k = 0;
	  while (k <= 1){
	     Soma = 0;
		 j = 5 + k;
		 for (i=0; i <= 11+k; i++){
		    Soma += parseInt(CNPJ.charAt(i),10)*j;
			if ( j != 2)
			   j--;
			else
			   j = 9;
		 }
		 Soma = 11 - Soma%11;
		 if (Soma >= 10)
		    Soma = 0;
		 if ( Soma != parseInt(CNPJ.charAt(12+k)))
		    return false;
		 k++;
	  }

   return true;
}
    
function CPFValido(CPF){
     var k, i, j, Soma;
         
     if (CPF.length != 11)
        return false;
        
  	  k =0;
  	  while( k <= 1){
  	     Soma = 0;
           j = 10 + k;
  		 for (i=0; i<9+k; i++){
  		    Soma += parseInt(CPF.charAt(i),10)*j;
  		    j--;
  		 }
  		 Soma = 11 - Soma%11;
  		 if (Soma >= 10)
  		    Soma = 0;
  		 if (parseInt(CPF.charAt(9+k),10) != Soma)
  		    return false;
  		 k++;
  	  }

     return true;
  }   



function VerifCobExpressa(CobExpressa,mostramsg,CodCorretor)
{
/*** 13/01/2004- função para verificação do valor do documento FCA  ***/
/*** esta mesma função está presente na dll Tkcoprcalc.dll no módulo geral.bas  ***/
/*** com o seguite nome: Public Function VerifCobExpressa(CobExpressa As String) As Boolean ***/
/*** esta migração foi feita para atender as novas necessidades do SGS para recber as propostas ***/
/*** novas geradas a partir do webKit   ***/
	var ni;
	var cCobExpressa;
	var nSoma;
	var nDV;

   cCobExpressa = CobExpressa + '';// para forçar a transformação em um tipo string
	cCobExpressa = Left(cCobExpressa, 15);
   nSoma = 0;
   
   if ( CodCorretor != Mid( CobExpressa, 1, 7 ) )
   {
		alert('FCA Inválido!  Verifique o código do Corretor.');
		return false;
   }
   
	for ( ni=15; ni > 0; ni-- )
	    {
	    nSoma =  parseInt(nSoma) +  (parseInt(Mid(cCobExpressa, 16 - ni, 1)) * ni);
	    }
	if (nSoma - (parseInt(nSoma / 11) * 11) == 10 ) 
		{  nDV = 0}
	else
	    {nDV = nSoma - (parseInt(nSoma / 11) * 11)} 
	if (nDV == parseInt(Right(CobExpressa, 1)) )
	   {
	   return true ;
	   }
	else
	    {
	        if (mostramsg==true)
		        alert('Numero do documento invalido.')
	    
		    return false;
	    }
}



function validadigitosudameris(obj,mostramsg) 
{
    var vspeso;    
    var vssoma;      
    var vsdigito;    
    var vsresto;     
    var vscont;      
    var funcao;
	    
    vspeso = '98765432';
    
    if (obj.value == '') return;
    
    vpnumero = '000000000' + obj.value;
    vpnumero = vpnumero.substring(vpnumero.length-9);
    obj.value  = vpnumero;
    
    if (vpnumero.length != 9) 
        return false;
    
    vssoma = 0
    
	for ( vscont=0;vscont<vpnumero.length-1; vscont++ ) 	
		vssoma += vpnumero.charAt(vscont) * vspeso.charAt(vscont);
	
	vsresto =  vssoma%11;
        
    if (vsresto == 0 || vsresto == 1 ) 
		{
		if (vsresto == 1)
			vsresto = 0;
		else
			vsresto = 1;
        }
    else
		vsresto = 11 - vsresto;      
	
    if (vsresto != vpnumero.substring(vpnumero.length-1)) 
    {	        
        if (mostramsg==true)
            alert('Numero do documento invalido.')
            
            obj.value = '';
            obj.focus();
        return false;
	
    }
    return true;
		
}

function validapropostabilhete(obj,mostramsg) 
{
    var vsresto;     
	var vpnumero;
	var vpcompara;
	 
    if (obj.value == '') return;
    
    vpnumero = '0000000' + obj.value;
    vpnumero = vpnumero.substring(vpnumero.length-7);
    obj.value  = vpnumero;
    
    if (vpnumero.length != 7) 
    {
		alert('Numero da proposta/bilhete invalido.')
        obj.value = '';
        obj.focus();
		return false;
    }   
	
	vpcompara=vpnumero.substring(0,vpnumero.length-1);       
	vsresto =  vpcompara%11;
	
	if(vsresto==10 && vpnumero.substring(vpnumero.length-1)==0)
	   return true;
    
    if (vsresto != vpnumero.substring(vpnumero.length-1)) 
    {	        
        if (mostramsg==true)
            alert('Numero da proposta/bilhete invalido.')
            obj.value = '';
            obj.focus();
			return false;
    }
    return true;
}



function fdatavalida(vpobjeto)
{
    var ret;
	var strret;
	
	ret = true;
	
	vdata = vpobjeto.value;

	var inum = '';
	var rstr = '0123456789';
	var itam = vdata.length;
	
    inum = vdata
    
    strret = "* Atenção *\n";
	
	itam = inum.length;
	
	if (itam != 10)
	{
	   strret += "Data Inválida.\nInforme no formato dd/mm/yyyy";
	   alert( strret );		
	   return false;
	}	

	dia = inum.substring(0,2);
	mes = inum.substring(3,5);
	ano = inum.substring(6,10);

	if ((mes < 1) || (mes > 12)) 
	{
	   strret += mes + " - Mês Inválido.\nInforme no formato dd/mm/yyyy";
		ret = false;
	}	


	if ((dia < 1) || (dia > 31))
	{
	   strret += dia + " - Dia Inválido.\n";
		ret = false;
	}	


	if ((mes == 4) || (mes == 6) || (mes == 9) || (mes == 11))
		if (dia > 30) 
		{
		   strret += dia + " - Dia Inválido.\nInforme no formato dd/mm/yyyy";
			ret = false;
		};

	if (mes == 2) 
		if (((ano % 4) == 0) || ((ano % 4) == 100) || ((ano % 400) == 0))
		{
			if (dia > 29)
			{
			   strret += dia + " - Dia Inválido.\nInforme no formato dd/mm/yyyy";
				ret = false;
			};
		}
		else
		{
			if (dia > 28)
			{
			   strret += dia + " - Dia Inválido.\nInforme no formato dd/mm/yyyy";
				ret = false;
			};
		};

   if( ! ret )
	   alert( strret);
		
	return ret;
}

function rtrim(s)
{
	return s.replace(/\s+$/,'');
}

function ltrim(s)
{
	return s.replace(/^\s+/,'');
}

function trim(s)
{
	return s.replace(/\s+/g,'');
}

function mtrim(s)
{
	return s.replace(/\B\s+/g,' ');
}


//------------------------------------------------------------------------------------------------------------------------------------------


function fncAbreJanela(oUrl, oWidth, oHeight)
{
//Variáveis para centralizar a tela
var oTop = window.screen.availHeight
var oLeft = window.screen.availwidth

	oTop  = (oTop - oHeight) / 2
	oLeft = (oLeft - oWidth) / 2
	
	/*alert(oUrl)
	alert(oWidth)
	alert(oHeight)
	alert(oTop)
	alert(oLeft)*/
	
	return window.open(oUrl,"LibertyAffinity","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,top=" + oTop +" ,left=" + oLeft + ",width="+ oWidth +",height=" + oHeight);	
}


function fncAbreDialogo(oUrl, oWidth, oHeight, oArgument)
{
//Variáveis para centralizar a tela
var oRetorno
	
	/*alert(oUrl)
	alert(oWidth)
	alert(oHeight)
	alert(oTop)
	alert(oLeft)*/
	return window.showModalDialog(oUrl,oArgument,"dialogHeight: " + oHeight + "; dialogWidth: " + oWidth + "; center: Yes; resizable: No; scroll: No; status: No;");	
//	oRetorno = window.showModalDialog(oUrl,oArgument,"dialogHeight: oHeight; dialogWidth: oHeight; dialogTop: px; dialogLeft: px; edge: Sunken; center: Yes; help: Yes; resizable: No; status: No;");	
//	window.open(oUrl,"LibertyAffinity","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,top=" + oTop +" ,left=" + oLeft + ",width="+ oWidth +",height=" + oHeight)	
}



/////////////////////////////////////
//Funções para o rollover dos menus//
/////////////////////////////////////

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeimages()
{
	if (document.images && (preloadflag == true))
	{
		for (var i=0; i<changeimages.arguments.length; i+=2)
		{
			document[changeimages.arguments[i]].src = changeimages.arguments[i+1];
		}
	}
}


function InStr(String1, String2)
{
	var a = 0;

	if (String1 == null || String2 == null)
		{return (false);}

	String1 = String1.toLowerCase();
	String2 = String2.toLowerCase();

	a = String1.indexOf(String2);
	if (a == -1)
		{return 0;}
	else
		{return a + 1;}
}
/**************************************************************
 Replace: Returns a string in which a specified substring has 
          been replaced with another substring a specified 
          number of times.

 Parameters:
      Expression = String expression containing substring to 
                   replace
      Find       = Substring being searched for.
      Replace    = Replacement substring.

 Returns: String
***************************************************************/
function Replace(Expression, Find, Replace)
{
	var temp = Expression;
	var a = 0;

	for (var i = 0; i < Expression.length; i++) 
	{
		a = temp.indexOf(Find);
		if (a == -1)
			break
		else
			temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
	}

	return temp;
}
/**************************************************************
 Len: Returns a Long containing the number of characters in a 
      string or the number of bytes required to store a 
      variable.

 Parameters:
      string = Any valid string expression. If string contains 
               null, false is returned.

 Returns: Long
***************************************************************/
function Len(string)
{
	if (string == null)
		return (false);

	return String(string).length;
}

/**************************************************************
 Trim: Returns a String containing a copy of a specified 
        string without both leading and trailing spaces 

 Parameters:
      String = The required string argument is any valid 
               string expression. If string contains null, 
               false is returned

 Returns: String
***************************************************************/
function Trim(String)
{
	if (String == null)
		return (false);

	return RTrim(LTrim(String));
}

/**************************************************************
 Left: Returns a String containing a specified number of 
       characters from the left side of a string.

 Parameters:
      String = String expression from which the leftmost 
               characters are returned. If string contains null, 
               false is returned.
      Length = Numeric expression indicating how many characters 
               to return. If 0, a zero-length string ("") is 
               returned. If greater than or equal to the number 
               of characters in string, the entire string is 
               returned. 

 Returns: String
***************************************************************/
function Left(String, Length)
{
	if (String == null)
		return (false);

	return String.substr(0, Length);
}

/**************************************************************
 Right: Returns a String containing a specified number of 
        characters from the right side of a string.

 Parameters:
      String = String expression from which the leftmost 
               characters are returned. If string contains null, 
               false is returned.
      Length = Numeric expression indicating how many characters 
               to return. If 0, a zero-length string ("") is 
               returned. If greater than or equal to the number 
               of characters in string, the entire string is 
               returned. 

 Returns: String
***************************************************************/
function Right(String, Length)
{
	if (String == null)
		return (false);

    var dest = '';
    for (var i = (String.length - 1); i >= 0; i--)
		dest = dest + String.charAt(i);

	String = dest;
	String = String.substr(0, Length);
	dest = '';

    for (var i = (String.length - 1); i >= 0; i--)
		dest = dest + String.charAt(i);

	return dest;
}

/**************************************************************
 Mid: Returns a String containing a specified number of 
      characters from a string

 Parameters:
      String = String expression from which characters are 
               returned. If string contains null, false is 
               returned.
      Start  = Number. Character position in string at which 
               the part to be taken begins. If Start is 
               greater than the number of characters in 
               string, Mid returns a zero-length string ("").
      Length = Number of characters to return. If omitted 
               false is returned. 

 Returns: String
***************************************************************/
function Mid(String, Start, Length)
{
	if (String == null)
		return (false);

	if (Start > String.length)
		return '';

	if (Length == null || Length.length == 0)
		return (false);

	return String.substr((Start - 1), Length);
}

/**************************************************************
 InStr: Returns a Long specifying the position of the first 
        occurrence of one string within another. Is String1
        or String2 are null, false is returned.

 Parameters:
      String1 = String expression being searched.
      String2 = String expression sought

 Returns: Integer
***************************************************************/
function InStr(String1, String2)
{
	var a = 0;

	if (String1 == null || String2 == null)
		return (false);

	String1 = String1.toLowerCase();
	String2 = String2.toLowerCase();

	a = String1.indexOf(String2);
	if (a == -1)
		return 0;
	else
		return a + 1;
}

/**************************************************************
 ReturnString: Returns a String containing a repeating 
               character string of the length specified

 Parameters:
      Number    = Length of the returned string. If number 
                  is less than 1, false is returned.
      Character = Character code specifying the character or 
                  string expression whose first character is 
                  used to build the return string. If character 
                  contains null, false is returned. 

 Returns: String
***************************************************************/
function ReturnString(Number, Character)
{
	var temp = '';

	if (Number < 1)
		return (false);

	if (Character.length == 0)
		return (false);

	if (Character.length > 1)
		Character = Character.charAt(0);

	for (var i = 0; i < Number; i++)
	{
		temp = temp + Character
	}

	return temp;
}

/**************************************************************
 Space: Returns a String consisting of the specified number 
        of spaces

 Parameters:
      Number = Number of spaces you want in the string.

 Returns: String
***************************************************************/
function Space(Number)
{
	var temp = '';

	if (Number < 1)
		return '';

	for (var i = 0; i < Number; i++)
	{
		temp = temp + ' ';
	}
	return temp;
}

/**************************************************************
 IsNumber: Returns a Boolean value indicating whether an 
           expression can be evaluated as a number (this
           includes values like $15,656.00)

 Parameters:
      Expression = Variant containing a numeric expression or 
                   string expression.

 Returns: Boolean
***************************************************************/
function IsNumber(Expression)
{
	Expression = Expression.toLowerCase();
	RefString = "0123456789.-";

	if (Expression.length < 1) 
		return (false);

	for (var i = 0; i < Expression.length; i++) 
	{
		var ch = Expression.substr(i, 1)
		var a = RefString.indexOf(ch, 0)
		if (a == -1)
			return (false);
	}
	return(true);
}

/**************************************************************
 StrConv: Returns a String converted as specified in the
          Parameters Section.

 Parameters:
      String     = String expression to be converted.
      Conversion = Number specifying the type of conversion 
                   to perform.
                   1 = TO UPPER CASE
                   2 = to lower case
                   3 = To Proper Case
                   If Conversion is null or not specified 1
                   is set as default.

 Returns: String
***************************************************************/
function StrConv(String, Conversion)
{
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;

	if (Conversion == null || Conversion.length == 0)
		Conversion = '1';

	if (Conversion != '1' && Conversion != '2' && Conversion != '3')
		Conversion = '1';

	if (Conversion == '1')
		return String.toUpperCase();

	if (Conversion == '2')
		return String.toLowerCase();

	//Proper Case
	tmpStr = String.toLowerCase();
	strLen = tmpStr.length;
	if (strLen > 0)
	{
		for (index = 0; index < strLen; index++)
		{
			if (index == 0)
			{
				tmpChar = tmpStr.substring(0, 1).toUpperCase();
				postString = tmpStr.substring(1, strLen);
				tmpStr = tmpChar + postString;
			}
			else
			{
				tmpChar = tmpStr.substring(index, index + 1);
				if (tmpChar == " " && index < (strLen - 1))
				{
					tmpChar = tmpStr.substring(index + 1, index + 2).toUpperCase();
					preString = tmpStr.substring(0, index + 1);
					postString = tmpStr.substring(index + 2,strLen);
					tmpStr = preString + tmpChar + postString;
				}
			}
		}
	}
	return tmpStr;
}

/**************************************************************
 FormatNumber: Returns an expression formatted as a number.

 Parameters:
      Expression            = Expression to be formatted.
      NumDigitsAfterDecimal = Numeric value indicating how
                              many places to the right of the
                              decimal are displayed.

 Returns: String
***************************************************************/
function FormatNumber(Expression, NumDigitsAfterDecimal)
{
	var iNumDecimals = NumDigitsAfterDecimal;
	var dbInVal = Expression;
	var bNegative = false;
	var iInVal = 0;
	var strInVal
	var strWhole = "", strDec = "";
	var strTemp = "", strOut = "";
	var iLen = 0;

	if (dbInVal < 0)
	{
		bNegative = true;
		dbInVal *= -1;
	}

	dbInVal = dbInVal * Math.pow(10, iNumDecimals)
	iInVal = parseInt(dbInVal);
	if ((dbInVal - iInVal) >= .5)
	{
		iInVal++;
	}
	strInVal = iInVal + "";
	strWhole = strInVal.substring(0, (strInVal.length - iNumDecimals));
	strDec = strInVal.substring((strInVal.length - iNumDecimals), strInVal.length);
	while (strDec.length < iNumDecimals)
	{
		strDec = "0" + strDec;
	}
	iLen = strWhole.length;

	if (iLen >= 3)
	{
		while (iLen > 0)
		{
			strTemp = strWhole.substring(iLen - 3, iLen);
			if (strTemp.length == 3)
			{
				strOut = "," + strTemp + strOut;
				iLen -= 3;
			}
			else
			{
				strOut = strTemp + strOut;
				iLen = 0;
			}
		}
		if (strOut.substring(0, 1) == ",")
		{
			strWhole = strOut.substring(1, strOut.length);
		}
		else
		{
			strWhole = strOut;
		}
	}
	
	if (bNegative)
	{
		return "-" + strWhole + "." + strDec;
	}
	else
	{
		return strWhole + "." + strDec;
	}
}

/**************************************************************
 TxtToNumber: Returns an expression formatted as a number.

 Parameters:
      Expression            = Expression to be formatted.

 Returns: String
***************************************************************/
function TxtToNumber(Expression)
{
	
	var newValue = Expression;
	
	newValue = Replace(newValue,'.','');
	newValue = Replace(newValue,',','.');
	
	return newValue;
	
}

/**************************************************************
 TxtToNumber: Returns an expression formatted as a text.

 Parameters:
      Expression            = Number to be formatted.

 Returns: String
***************************************************************/
function NumberToTxt(Expression)
{
	var newValue = Expression;
	
//	Alert('NumberToTxt in ' + newValue);
	
	if (InStr(newValue,',') > 0)
	{
		newValue = Replace(newValue,',','X');
		newValue = Replace(newValue,'.',',');
		newValue = Replace(newValue,'X','.');
	}
	else
	{
		newValue = Replace(newValue,'.',',');
	}

	return newValue;
	
}
/**************************************************************
 TxtToNumber: Formata campo no formato de valor

 Parameters:
      fld            	= campo
      milSep		= separador de casas de milhar
      decSep		= separador de casas decimais
      e			= evento
      tamanho        	= tamanho do campo

 Returns: String
***************************************************************/

function currencyFormat(fld, milSep, decSep, e, tamanho) 
{
	if (fld.readOnly == false)
	{
		var sep		  = 0;
		var key	 	  = '';
		var i		  = j		=  0;
		var len		  = len2	=  0;
		var aux		  = aux2	= '';
		var strCheck  = '0123456789';
		var whichCode = (window.Event) ? e.which : e.keyCode;
		if (whichCode == 13) return true; key = String.fromCharCode(whichCode); 
		if (strCheck.indexOf(key) == -1) return false;  len = fld.value.length; 
		for(i = 0; i < len; i++)
			if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
			aux = '';
				for(; i < len; i++)
					if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
						aux += key;
						len = aux.length;
							if (len == 0) fld.value = '';
							if (len == 1) fld.value = '0'+ decSep + '0' + aux;
							if (len == 2) fld.value = '0'+ decSep + aux;
							if (len > 2) 
							{	
								aux2 = '';
								for (j = 0, i = len - 3; i >= 0; i--) 
								{
								if ((tamanho + 1) == aux.length) 
								{
								return;
								break;
								}
								else
								{
									if (j == 3) 
										{
											aux2 += milSep;
											j = 0;
										}
									aux2 += aux.charAt(i);
									j++;
								}
							}
							fld.value = '';
							len2 = aux2.length;
							for (i = len2 - 1; i >= 0; i-- )
								fld.value += aux2.charAt(i);
								fld.value += decSep + aux.substr(len - 2, len);

				}
	return false;
	}
}	

//************************************************
//* Acrescenta geros a esquerda			 *
//****************** Parametros ******************
//* vpValor 	= Nome do Campo 		 *
//* vpTamanho 	= Tamanho do campo com o valor	 *
//************************************************
	function ZeroEsquerda(vpValor, vpTamanho)
	{
		ObjValor = eval('document.forms[0].' + vpValor)
		for (var i = ObjValor.value.length; i < (vpTamanho + 1); i++) 
		{
			ObjValor.value = "0" + ObjValor.value
		}
	}

//********************************************
//*Intervalo (d-dias, m-Meses, a-Anos)
//*Qtd Integer
//*Data String Formato(dd/mm/yyyy)
//********************************************
function SomaData(Intervalo,Qtd,Data)
{
	var dateTMP;
	var diaIN = parseInt(Data.substring(0,2),10) ;
	var mesIN = parseInt(Data.substring(3,5),10) ;
	var anoIN = parseInt(Data.substring(6,10),10);
	var qtdIN = parseInt(Qtd,10);
	var dateStr = ""
	


	dateTMP = new Date();

	switch(Intervalo)
	{
		case 'd' : /*** Dias ***/
			dateTMP = new Date( mesIN + "/" + (diaIN + qtdIN ) + "/" + anoIN);
		break;

		case 'm' : /*** Meses ***/
			dateTMP = new Date( (mesIN + qtdIN ) + "/" + diaIN + "/" + anoIN);
		break;
					
		case 'y' : /*** Anos ***/
		case 'a' : /*** Anos ***/
			dateTMP = new Date( mesIN + "/" + diaIN  + "/" + (anoIN + qtdIN) );
		break;
	}

	
	dateStr = (dateTMP.getDate()<10?'0' + dateTMP.getDate():dateTMP.getDate()) + '/';
	dateStr += (dateTMP.getMonth()<9?'0' + (dateTMP.getMonth() + 1):(dateTMP.getMonth()+1)) + '/';
	dateStr += dateTMP.getFullYear()

	return dateStr

}
function fncFormataPlaca(Objeto)
{
	var Resultado = "";
		
	if (InStr(Objeto.value, '-') == false)
	{
		if ( Objeto.value != '' )
		{
		Resultado = Objeto.value.substring(0,Objeto.value.length - 4) + '-' + Objeto.value.substring(Objeto.value.length - 4,7)
		Objeto.value = Resultado
		}
	}
}
//***************************************************
// Não Deixa digitar caracteres especial
// Usar no Evento KeyPress, KeyUp KeyDown
//***************************************************
function AceitaAcento()
{
	// Não Deixa digitar os caracteres especiais Ex. àáãâ
	if (event.keyCode >= 224 && event.keyCode <= 288)
		(
			event.returnValue = false

		)
	//  Não Deixa digitar os caracteres especiais Ex. '`´^~"
	if (event.keyCode == 34 || event.keyCode == 39 || event.keyCode == 94 || event.keyCode == 96 || event.keyCode == 126 || event.keyCode == 180)
	{
		event.returnValue = false
	}
}
function TravaCampos(vpTrava, vpCampos)
{
	var objCampo = '';
	var frmParametros = document.forms[0]
	var StrArray = vpCampos.split('|');
	if (StrArray.length > 0 )
		{
			for (var i = 0; i < StrArray.length ; i++ )
			{
					 objCampo = eval('frmParametros.' + StrArray[i]);
				if ( objCampo.type == 'text'		) objCampo.readOnly = vpTrava;
				if ( objCampo.type == 'textarea'	) objCampo.readOnly = vpTrava;
				if ( objCampo.type == 'password'	) objCampo.readOnly = vpTrava;
				if ( objCampo.type == 'select-one'	) objCampo.disabled = vpTrava;
				if ( objCampo.type == 'button'		) objCampo.disabled = vpTrava;
			}
		}
}
function TravaCheckRadio(vpTrava, vpCampos)
{
	var objCampo = '';
	var FrmArray = document.forms[0]
	var StrArray = vpCampos.split('|');
	if (StrArray.length > 0 )
	{
		for (var i = 0; i < StrArray.length ; i++ )
		{
			objCampo = eval('FrmArray.' + StrArray[i]);
			if ( objCampo.length > 0 )
			{
				for (var j = 0; j < objCampo.length ; j++ )
				{
					objCampo[j].disabled = vpTrava
				}
			}
			else
			( objCampo.disabled = vpTrava )
		}
	}
}

function LimparCampos(vpCampos)
{
	var objCampo = '';
	var frmParametros = document.forms[0]
	var StrArray = vpCampos.split('|');
	if (StrArray.length > 0 )
		{
			for (var i = 0; i < StrArray.length ; i++ )
			{
					 objCampo = eval('frmParametros.' + StrArray[i]);
				if ( objCampo.type == 'text'		) objCampo.value = '';
				if ( objCampo.type == 'textarea'	) objCampo.value = '';
				if ( objCampo.type == 'password'	) objCampo.value = '';
				if ( objCampo.type == 'select-one'	) objCampo.selectedIndex = -1;
			}
		}
}
function LimparCheckRadio(vpCampos)
{
	var objCampo = '';
	var FrmArray = document.forms[0]
	var StrArray = vpCampos.split('|');
	if (StrArray.length > 0 )
	{
		for (var i = 0; i < StrArray.length ; i++ )
		{
			objCampo = eval('FrmArray.' + StrArray[i]);
			if ( objCampo.length > 0 )
			{
				for (var j = 0; j < objCampo.length ; j++ )
				{
					objCampo[j].checked = false;
				}
			}
			else
			( objCampo.checked = false )
		}
	}
}



//funcoes novas, heitor jose

/***************************************************************************
jsConfData: 

parametros: data -> data a ser conferida, separador ->separador de data ex.: "/", showMsg-> variavel booleana onde vai dizer se é ou nao para mostrar a descricao do erro 
            formato da data: dd/mm/aaaa

retorno: retorno um numero entre -1 e 35:
         -2 - diz que o campo de data esta fazio, nao mostra msg e nem seleciona o campo de data
         -1 - diz que a data está digitada incorreta(caracteres incorretos ou insufucientes), 
          0 - caso esteja certa
         1 a 32 - a mascara esta correta, mas dia e/ou mes e/ou ano estao incorretos
         valores maiores que 32 - combinacao dos erros

obs: o intervalo de ano vai de 1900 ate o ano atual somado de 100.
     caso queira basta alterar a soma para anoAtual e o if onde confere se o ano esta dentro deste intervalo aceito

obs2: a teoria matematica soma{ x^y \ x>= 2, y>= 0 \ x é constante e y é variavel e crecente, ou seja, de 0 a n } onde a soma dos resultados de algumas destas potencias sao 
      diferentes da soma dos resultados de qualquer outra combinacao
      ex: (2^0 + 2^1 + 2^2) <> (2^1 + 2^2 + 2^7)

***************************************************************************/


   function jsConfData(objData, separador, showMsg)
   {        
      var erro= 0, msgErro= "Erro na data!\n", chAceitos= "0123456789" + separador, data, dataAtual= new Date(), anoMin= 1900, anoMax= dataAtual.getFullYear() + 100;
      
      if ( !objData.value.length )
      {
         return -2;	
      }	
      
      if ( objData.value.length!= 10 || jsCompChar(objData.value, separador, true)!= 2 || objData.value.charAt(2)!= separador || objData.value.charAt(5)!= separador || jsCompChar(objData.value, chAceitos, false) ) 
      { 
         msgErro+= "A data deve ser informada da seguinte forma: \"dd" + separador + "mm" + separador + "aaaa\"";
         if (showMsg) 
         { 
            alert(msgErro);
            objData.select(); 
         }
         return -1; 
      }
                
      data= objData.value.split(separador); data[0]= parseInt(data[0]); data[1]= parseInt(data[1]); data[2]= parseInt(data[2]);
      
      if ( data[2]< anoMin || data[2]> anoMax ) 
      { 
         msgErro+= "Ano incorreto. Digite um valor entre " + anoMin + " e " + anoMax + ".\n";  
         erro+= 1; 
      }
      
      if ( data[1]< 1 || data[1]> 12 )  
      { 
         msgErro+= "Mês incorreto. Digite um valor entre 1 e 12.\n"; 
         if (showMsg) 
         { 
            alert(msgErro); 
            objData.select(); 
         }
         return erro+ 2; 
      }
      
      switch (data[1])
      {
         case  2: if ( data[0]> 28 && data[2]% 4 )  
                  { 
                     msgErro+= "Dia incorreto. O mês de fevereiro tem no máximo 28 dias para ano não bisesto.";
                     erro+= 4;
                  }  
                  else
                  { 
                     if ( data[0]> 29 ) 
                     { 
                        msgErro+= "Dia incorreto. O mês de fevereiro tem no máximo 29 dias para ano bisesto.";
                        erro+= 8;
                     }       
                  }
                  break;
         case  4: 
         case  6:          
         case  9: 
         case 11: if ( data[0]> 30 ) 
                  { 
                     msgErro+= "Dia incorreto. O mês informado tem no máximo 30 dias";
                     erro+= 16; 
                  } 
                  break;
         case  1:
         case  3:
         case  5:
         case  7:
         case  8:
         case 10:
         case 12: if ( data[0]> 31 ) 
                  { 
                     msgErro+= "Dia incorreto. O mês informado tem no máximo 31 dias";
                     erro+= 32; 
                  } 
                  break;
      }
      
      if (showMsg && erro) 
      { 
         alert(msgErro); 
         objData.select(); 
      }
   
   return erro;    
   }   
   
   
/***************************************************************************
jsCompChar 

paramentros: chVer -> string a para conferencia, chComp -> conjunto de caracteres para base da conferencia, 
             chIgual -> se true retornara o numero de caracteres de chVer que existe em chComp;
                        se false retornara o numero de chVer que sao diferentes de chComp

obs: funcao criada inicialmente para dizer se uma string chVer e composta apenas de caracteres que estao em chComp

***************************************************************************/
  
   function jsCompChar(chVer, chComp, chIgual)
   {
      var i, dif= 0, len= chVer.length;
	
      if ( chIgual ) 
      {
         for ( i= 0 ; i< len ; i++ ) 
         {
            if (chComp.indexOf(chVer.charAt(i))>=  0) { dif++; }
         }
      }
      else
      {
         for ( i= 0 ; i< len ; i++ ) 
         {
            if (chComp.indexOf(chVer.charAt(i))== -1) { dif++; }
         }
      }
   
   return dif;   
   }

//fim funcoes novas, heitor jose




      function intervaloData(dtaobjeto, dtaobjeto1)
		{
		//   alert( boocmp + "*" + dtaobjeto.value + "*" + dtaobjeto1.value );
		   if(dtaobjeto.value != "" && ! fvalidadata(dtaobjeto))
			{
			   dtaobjeto.value = "";
				dtaobjeto.focus();
			}
			else if( dtaobjeto.value != "" && dtaobjeto1.value != "" )
			{
			   if ( jsInverte( dtaobjeto.value ) < jsInverte( dtaobjeto1.value ) )
				{
				   alert( "A Data final não pode ser inferior a data inicial.");
			      dtaobjeto.value = "";
				   dtaobjeto.focus();
				}
			}
			return;
		}





