﻿var COR =	{
				DDL:	{	FUNDO_NORMAL		: "#ffffff",
							FUNDO_ALTERNADO		: "#f4f4f4",
							ITEM_DISPONIVEL		: "#909090",
							ITEM_JA_SELECIONADO	: "#000000"
						},
				TBL:	{	FUNDO_NORMAL	: "#ffffff",
							FUNDO_ALTERNADO	: "#f4f4f4"
						}
			};



/*	Verifica campos com preenchimento errado e campos obrigatórios que não
	foram preenchidos.
________________________________________________________________________________*/
function formulario_ok( f, titulo )
{	
	if( !titulo ) titulo = 'ROTEIRO - CONSISTÊNCIA DAS INFORMAÇÕES';
	var campo_obrigatorio_nao_preenchido = false;
	var campo_obrigatorio = null;
	var campo_preenchido_errado = false;
	var campo_errado = null;
	for( var i=0; i<f.elements.length;i++ )
	{	var c = f.elements[i];

		switch( c.tagName.toUpperCase() )
		{
			case "INPUT":
				if( c.type.toUpperCase()!="TEXT" ) continue;
				if( c.readOnly ) continue;	
				if( c.className == "invisivel" ) continue;
				if( c.style.color.toUpperCase() == COR_ERRO.toUpperCase() )
				{	if( campo_preenchido_errado ) continue;
					campo_preenchido_errado = true;
					campo_errado = c;
					continue;
				}
				if( typeof c.obrigatorio == "undefined" ) continue;
				if( c.obrigatorio.toUpperCase() != "TRUE") continue;
				if( c.value.trim()!= "" ) continue;
				c.style.backgroundColor = COR_OBRIGATORIO;
				if( campo_obrigatorio_nao_preenchido ) continue;
				campo_obrigatorio_nao_preenchido = true;
				campo_obrigatorio = c;
				break;
		
			case "SELECT":
				if( typeof c.obrigatorio == "undefined" ) continue;
				if(	c.obrigatorio.toUpperCase()!="TRUE" ) continue;
				if( c.selectedIndex > 0 ) continue;
				c.style.backgroundColor = COR_OBRIGATORIO;
				if( campo_obrigatorio_nao_preenchido ) continue;
				campo_obrigatorio_nao_preenchido = true;
				campo_obrigatorio = c;
				break;

			case "TEXTAREA":
				if( c.type.toUpperCase()!="TEXTAREA" ) continue;
				if( c.readOnly ) continue;	
				if( c.className == "invisivel" ) continue;
				if( c.style.color.toUpperCase() == COR_ERRO.toUpperCase() )
				{	if( campo_preenchido_errado ) continue;
					campo_preenchido_errado = true;
					campo_errado = c;
					continue;
				}
				if( typeof c.obrigatorio == "undefined" ) continue;
				if( c.obrigatorio.toUpperCase() != "TRUE") continue;
				if( c.value.trim()!= "" ) continue;
				c.style.backgroundColor = COR_OBRIGATORIO;
				if( campo_obrigatorio_nao_preenchido ) continue;
				campo_obrigatorio_nao_preenchido = true;
				campo_obrigatorio = c;
				break;
		}
	}

	if( campo_preenchido_errado )
	{	aviso(	titulo,	"Preencha corretamente todos os campos" );
		try { campo_errado.focus() } catch(e) {};
		return false;
	}
	if( campo_obrigatorio_nao_preenchido )
	{	aviso(	titulo,	"Preencha todos os campos obrigatórios" );
		try { campo_obrigatorio.focus() } catch(e) { };
		return false;
	}
	return true;
}

function usuario_obtem_id()
{	
	return parent.frames[0].window.document.all.idu_lbl.innerText;
}


//--------------,---------------------------------------------------------------,
//  a v i s o   | Apresenta um aviso ao usuário									|
//--------------'---------------------------------------------------------------'
function aviso( titulo, conteudo )
{
	if( conteudo.indexOf("denied")>0 )
	{	titulo = "S O M E N T E   L E I T U R A";
		conteudo = "Usuário não possui os direitos de acesso para efetuar alterações.";
	}
	alert(	titulo + 
			"\n______________________________________________________\n\n" +
			conteudo +
			"\n______________________________________________________"
		 );
}









//------------------,-----------------------------------------------------------,
//  c o n f i r m a | Solicita a confirmação/cancelamento da operação			|
//------------------'-----------------------------------------------------------'
function confirma( titulo, conteudo )
{
	return confirm(titulo + 
			"\n______________________________________________________\n\n" +
			conteudo +
			"\n______________________________________________________\n\n" +
			"Pressione o botão [OK] para confirmar a operação."
		 )
}









//-----------,------------------------------------------------------------------,
// i s X X X | Verifica se caracter ou string é do tipo XXX						|
//-----------,------------------------------------------------------------------'


//	I S   D I G I T

function isDigit( d )
{
	return ((d>='0')&&(d<='9'))
}



//	I S   N U L L

function isNull( val )
{
	return (val == null);
}



//	I S   N U M E R I C

function isNumeric(c)
{
	var i;
	for(i=0;i<c.length;i++)
	{	if(!isDigit(c.charAt(i))) return false;
	}
	return true;
}

//-----------------,------------------------------------------------------------,
// k e y P r e s s | Filtro para os campos										|
//-----------------'------------------------------------------------------------'



//	D A T A 

	function dataKeyPress() 
	{
		k = event.keyCode;

		if( (k>31) && (k<127) ) {

		//	[0..9,/]
		
			if( (k!=47) 
				&& ((k<48)||(k>57)) ) {
			    event.keyCode = 0;
				event.returnValue = false;
				return false;
				}
			}
		return true;
	}



//	S Ó   N U M E R O S 

	function soNumerosKeyPress( ) 
	{
		k = event.keyCode;
		if( k>31 ) {

		//	SÓ NÚMEROS [0..9]
		
			if( (k<48)||(k>57) ) {
			    event.keyCode = 0;
				event.returnValue = false;
				return false;
				}
			}
		return true;
	}



//	S Ó   L E T R A S

	function soLetrasKeyPress( ) 
	{
		k = event.keyCode;
		if( k>31 ) {

		//	SÓ LETRAS [A..Z]
		
		if( ( (k>31) && (k<65) ) ||
			( (k>90) && (k<97) ) ||
			( k>122)
			) {
			    event.keyCode = 0;
				event.returnValue = false;
				return false;
				}
			}
		return true;
	}



//	S Ó   A L F A N U M É R I C O  (LETRAS E NÚMEROS)

	function soAlfaNumKeyPress( branco ) 
	{
		var k = event.keyCode;
		var x = branco ? 32 : 31;
		
	//	SÓ NÚMEROS [0..9] [A..Z] [a..z]
			
		if( 
			( (k>x ) && (k<48) ) || 
			( (k>57) && (k<65) ) ||
			( (k>90) && (k<97) ) ||
			( k>122)
			) {
		    event.keyCode = 0;
			event.returnValue = false;
			return false;
		}
		return true;
	}



//	S Ó   C P F

	function soCpfKeyPress( ) 
	{
		k = event.keyCode;

		if( k>31 ) {

		//	SÓ ['0'..'9','.','-']
		
			if( 
				((k<48)||(k>57)) && (k!=45) && (k!=46) 
				) {
			    event.keyCode = 0;
				event.returnValue = false;
				return false;
				}
			}
		return true;
	}




//--------------,---------------------------------------------------------------,
// f m t X X X  | Formatação de valor do tipo XXX								|
//--------------'---------------------------------------------------------------'


//----------------------------------,
//		N U M   F O R M A T			|
//----------------------------------'


//	f m t C P F

function fmtCPF( num  ) {
	num = TiraAlfa(num);
	if( (num.length==0) || (num.length>11) ) return num;
	while( num.length<11 ) { num = '0'+num }	
	num = num.substr(0,3)+'.'+num.substr(3,3)+"."+num.substr(6,3)+"-"+num.substr(9,2);
	if( num == '000.000.000-00' ) num = '';
	return num;	
}





//--------------,---------------------------------------------------------------,
// t o D a t e  | 'DD/MM/AAAA' -> date											|
//--------------'---------------------------------------------------------------'

	function toDate( s )
	{
	return new Date(
					parseInt( s.substr(6,4), 10 ),
					parseInt( s.substr(3,2), 10 )-1,
					parseInt( s.substr(0,2), 10 ),
					0,0,0,0
					);
	}



//==============================================================================

//----------------------------------,
//		N U M   F O R M A T			|
//----------------------------------'
function NumFormat( num , tam, mao ) 
{
	var n, i; 

	num = TiraAlfa(num);
	if (num == '') return num;
	
	n = num.length;
	n = tam - n;
	if (n < 0) n = 0;
	
	for ( i = 0; i < n; i++)
	{
		if (mao == '<') num = '0' + num; 
		if (mao == '>') num = num + '0';
	}
	
	return num;	
}



//--------------------------------------,
//		M O N E Y   F O R M A T			|
//--------------------------------------'
function MoneyFormat( num ) {
var n, s, i, valor, cents;	

//  FILTRA	
	s = '';
	for(i=0;i<num.length;i++) {
		if( isDigit(num.charAt(i))||(num.charAt(i)=='.')||(num.charAt(i)==',') ) s += num.charAt(i);
		}
	
	num = s;	

//  SEPARA VALOR E CENTAVOS	
	s = TiraAlfa(num);
	if (s == '') return s;

	s = NumFormat(s,3,'<');
	valor = s.substring(0,s.length-2);
	cents = s.substring(s.length-2,s.length)
	
//  TIRA ZEROS A ESQUERDA
	i = 0;
	s = valor;
	while (s.charAt(i) == '0') {
		s = ' ' + s.substring(i+1,s.length);
		i++;
		}
	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);
}




//--------------------------------------,
//		M O N E Y   KEY DOWN			|	
//--------------------------------------'
function MoneyKeyDown( campo ) {

	var k = window.event.keyCode;

//	READONLY ?
	if( campo.readOnly )
	{	if( (k!=13)&&(k!=9) )
		{	window.event.keyCode = 0;
			window.event.returnValue = false;
			return;
		}
	}
	
//	TAMANHO DO CAMPO
	var t = campo.maxLength;
	var c = campo.value;
	var s;

//  CARACTERES VÁLIDOS: 0 1 2 3 4 5 6 7 8 9 TAB BACKSPACE DEL	

	if( k ==13 ) {
		window.event.returnValue = true;
		return c;
		}
	
	if ((k>=96)&&(k<=105)) k = k-48;	
	if (k==46) k = 8;
	if (((k<48)&&(k>57))&&(k>32)) k = 0;
	
//  VERIFICA TAMANHO	
	s = TiraAlfa(c)
	if ((k != 8)&&(s.length >= t)) {
		if( k != 9 ) window.event.returnValue = false;
		return c;
		}
		
//  ACRESCENTA CARACTER DIGITADO NA STRING	
	if (k > 0) s = c + String.fromCharCode(k);
	if (k == 8) s = c.substring(0,c.length-1);
	s = MoneyFormat(s);

//  APAGA CARACTER DIGITADO DO CAMPO
	if (k != 9) window.event.returnValue = false;
	campo.value = s;
}



/*
_______________________________________________________________________________*/
function url_parametro( nome )
{
  nome = nome.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]" + nome + "=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );

  return ( results == null ) ? "" : results[1];
}
