﻿//--------------+
//	TIRA ALFA	|
//--------------+
//	deixa somente caracteres numéricos

function TiraAlfa( s )
{	var i,w;
	w = "";
	if (s=="") return s;
	for(i=0;i<s.length;i++) if(isDigit(s.charAt(i))) w += s.charAt(i);
	return w
}



//--------------+
//	i s X X X	|
//--------------+
//	Verifica se caracter ou string é do tipo XXX

	function isDigit( d )	{	return ((d>='0')&&(d<='9'))		}
	function isEmpty( s )	{	return ( s.trim()=='' )	}
	function isNull( val )	{	return (val == null);	}

	function isNumeric(c)
	{	var i;
		for(i=0;i<c.length;i++)
			if(!isDigit(c.charAt(i))) return false;
		return true;
	}



/*	String . constantes
________________________________________________________________________________*/
String.letras =	{	acentuadas: "ÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇáéíúúàèìòùãõâêîôûäëïöüç",
					sem_acento: "AEIOUAEIOUAOAEIOUAEIOUCaeiouaeiouaoaeiouaeiouc"
				}
	

/*	String.decode 
    · decodifica os caracteres codificados do html (&nnn;)
________________________________________________________________________________*/
String.prototype.decode = function()
{
	var s = this;
	var m = s.match(/&#\d+;?/g);
	if( m == null ) return s;
	
	var t = m.length;
	var r;
	for(var i=0; i<t; i++)
	{
		r = String.fromCharCode((m[i]).replace(/\D/g,""));
		s = s.replace(/&#\d+;?/,r);
	}
	return s;
};




/*		String.leftTrim - Retira os caracteres brancos do início
____________________________________________________________________________*/
String.prototype.isLetter = function()
{
	var
		r =
			(
				(
					( this>='A' ) && ( this<='Z' ) 
				) ||
				(
					( this>='a' ) && ( this<='z' )
				) ||
				( String.letras.acentuadas.indexOf ( this ) >= 0 )
			);
	return r;
};





/*		String.leftTrim - Retira os caracteres brancos do início
____________________________________________________________________________*/
String.prototype.leftTrim = function()
{
	var s = this;
	if ((s == '')||(s === null)) return s;
	for (var i=0; s.charAt(i)==" "; i++);
	return s.substring(i,s.length);
};






/*	String.noAccentuation - Troca os caracteres acentuados
________________________________________________________________________________*/
String.prototype.noAccentuation = function()
{
	var 
		i,
		s = this,
		rg;
	for ( i = 0; i < String.letras.acentuadas.length; i++ )
		{
			rg = new RegExp(String.letras.acentuadas.charAt(i),"g");
			s = s.replace( rg, String.letras.sem_acento.charAt(i));
		};
	return s;
};




/*	String.padLeft - adiciona caracteres à esquerda
________________________________________________________________________________*/
String.prototype.padLeft = function( tamanho , caracter )
{	var s = this;
	while( s.length < tamanho ) s = caracter + s;
	return s;
};





/*	String.onlyNumbers - remove caracters não numéricos
________________________________________________________________________________*/
String.prototype.onlyNumbers = function()
{
	var s = this;
	var i,w;
	w = "";
	if (s=="") return s;
	for(i=0;i<s.length;i++) if(isDigit(s.charAt(i))) w += s.charAt(i);
	return w
};





/*	String.rightTrim - Retira os caracteres brancos do início
________________________________________________________________________________*/

String.prototype.rightTrim = function()
{
	var s = this;
	if ((s == '')||(s === null)) return s;
	for (var i=s.length-1; s.charAt(i)==" "; i--);
	return s.substring(0,i+1);
};





/*
________________________________________________________________________________ */
String.prototype.to_aaaammdd = function()
{
	var d = this.trim();
	if( d.length < 10 ) return "00000000";
	return d.substr(6,4) + d.substr(3,2) + d.substr(0,2);
};





/*	String.toCurrency - Formata como valor monetário
________________________________________________________________________________*/
String.prototype.toCurrency = function()
{
	var s = this;
	var n, i, valor, cents;	
//  FILTRA	
	s = s.toString().trim();
	if (s == "") return "";

//  SEPARA VALOR E CENTAVOS	
	s = NUM_formata( s, 3, '<');
	valor = s.substring(0,s.length-2);
	cents = s.substring(s.length-2,s.length)
	

//  TIRA ZEROS A ESQUERDA
	s = valor;
	while (s.charAt(0) == '0') s = s.substring(1,s.length);
	valor = s.trim();

			
//  SEPARADOR MILHAR	
	s = '';
	n = -1;
	for(i=valor.length; i>=0; i=i-1) {
		n++;
		s = valor.charAt(i) + s;
		if ((n % 3)==0) {
			if ((i > 0)&&(i<valor.length)) s = '.' + s;
			}
		}

	valor = s.trim();
	if (valor == '') valor = '0';
	
//  SEPARADOR DECIMAL
	return (valor + ","  + cents);
};






/*	transforma em data - transforma uma string DD/MM/AAAA em uma data
________________________________________________________________________________ */
String.prototype.toDate = function()
{
	var s = this;
	var d = new Date();
	d.setDate(		1 );
	d.setFullYear(	parseInt(s.substr(6,4), 10) );
	d.setMonth(		parseInt(s.substr(3,2), 10)-1 );
	d.setDate(		parseInt(s.substr(0,2), 10) );
	d.setHours( 12 );
	d.setMinutes( 0 );
	d.setSeconds( 0 );
	d.setMilliseconds( 0 );

	return d;
};






/*
_______________________________________________________________________________	*/
String.prototype.toFormattedName  = function ()
{
	var
		i,
		k,
		nome	= '',
		u,
		z		= this.toLowerCase().split(' ');

	for	( i = 0; i < z.length; i++ )
	{
		z[i] = z[i].toUpperCase();
		if	( nome!='' )
			{
				nome += ' ';
			};

		if	( z[i] == "" )
			{
				continue;
			}
		else if ((z[i] == "I") || (z[i] == "II") || (z[i] == "III") || (z[i] == "IV") || (z[i] == "V") || (z[i] == "VI") || (z[i] == "VII")
			  || (z[i] == "VIII") || (z[i] == "IX") || (z[i] == "X") || (z[i] == "XI") || (z[i] == "XII") || (z[i] == "XIII") || (z[i] == "XIV")
			  || (z[i] == "XV") || (z[i] == "XVI") || (z[i] == "XVII") || (z[i] == "XVIII") || (z[i] == "XIX") || (z[i] == "XX"))
		{
			nome += z[i];
		}
		else if ((i != 0) && ((z[i] == "DA") || (z[i] == "DE") || (z[i] == "DO") || (z[i] == "DAS") || (z[i] == "DOS") ||
							(z[i] == "A") || (z[i] == "AS") || (z[i] == "AO") || (z[i] == "E") || (z[i] == "OU") ||
							(z[i] == "EM") || (z[i] == "O") || (z[i] == "OS") || (z[i] == "COM") || (z[i] == "PARA") ||
							(z[i] == "SUA") || (z[i] == "SUAS") || (z[i] == "SEU") || (z[i] == "SEUS") ||
							(z[i] == "'S" ) || (z[i] == "À") || (z[i] == "ÀS")
			    ))
		{
			nome += z[i].toLowerCase();
		}
		else if( (( z[i].charAt(0) == '(' ) || ( z[i].charAt(0) == '[' )) &&
				 (( z[i].charAt(z[i].length-1) == ')' ) || ( z[i].charAt(z[i].length-1) == ']' ))
			)
		{
			nome += z[i];
		}
		else
		{
			u = true;
			for	( k = 0; k < z[i].length; k++ )
			{
				if( z[i].charAt(k).isLetter() )
				{
					if( u )
					{
						nome += z[i].substr( k, 1 ).toUpperCase();
						u = false;
					}
					else
					{
						nome += z[i].substr( k, 1 ).toLowerCase();
					}

				}
				else
				{
					nome += z[i].substr( k, 1 );
					u = ( z[i].substr( k, 1 ) == "'" ) ? false : true;
				}
			}
		}
	};

	return nome;
};



/*	transforma em inteiro
________________________________________________________________________________ */
String.prototype.toInteger = function()
{
	var s = this.onlyNumbers();
	
	if( s == '' ) return -1;

	return Math.round( s );
};






/*	String.trim - Retira os caracteres brancos do início
________________________________________________________________________________*/
String.prototype.trim = function()
{
	var s = this;
	if ((s == '')||(s === null)) return s;
	return s.rightTrim().leftTrim();
};