//***************************************************************************************************
/*	Função     : openWindow
	Descrição  : Abre uma janela pop-up de acordo com os parâmetros
	Parâmetros : 
		1) url  : endereço a ser chamado;
		2) name : nome da janela;
		3) l    : posição left;
		4) t    : posição top;
		5) w    : largura da janela;
		6) h    : altura da janela;
		7) center : Coloca a janela no centro da tela ? (Y/N)
*/
		
function openWindow(url, name, l, t, w, h, center) { 
	if (center == 'Y') {
	    t = (screen.height-h)/2;
    	 l = (screen.width-w)/2;	
	}
	newWindow=window.open(''+url+'',''+name+'','width='+w+',height='+h+',top='+t+',left='+l+',toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=no');
	
  	newWindow.focus();
}
//***************************************************************************************************

//***************************************************************************************************
/*	Função     : openFullWindow
	Descrição  : Abre uma janela pop-up de acordo com a resolução do vídeo do usuário.
	Parâmetros : 
		1) url  : endereço a ser chamado;
		2) name : nome da janela;
		7) center : Coloca a janela no centro da tela ? (Y/N)
*/
function openFullWindow(url, name) { 
    var t = (screen.height)/2;
    var l = (screen.width)/2;

    text = "Este site utiliza janelas pop-up. Se você possuir algum programa bloqueador de pop-up, por favor, desabilite-o.\n";
	 
	remote = window.open(''+url+'',''+name+'','toolbar=no,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=no,top=0,left=0');
	if(remote == null) { alert(text); return; }
	remote.resizeTo(window.screen.availWidth, window.screen.availHeight);
}

//***************************************************************************************************

//***************************************************************************************************
//Desabilita as teclas Backspace, F5
function BlockedButton() {
	if (event.keyCode==8 || event.keyCode==116)	{
		event.keyCode=0;
		event.returnValue=false;
	}	
}
//***************************************************************************************************

//***************************************************************************************************
//Tipo = 0 : Só permite a entrada de números, ENTER, BACKSPACE e DELETE
//Tipo = 1 : Só permite a entrada de números, ponto(.), ENTER, vírgula(,), BACKSPACE e DELETE
function CampoNumerico(tipo) {
	switch (tipo) {
	case 0 :
		if((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 13  && event.keyCode != 8 && event.keyCode != 127) event.returnValue = false;
		break;
	case 1 :
		if((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 46 && event.keyCode != 13 && event.keyCode != 44 && event.keyCode != 8 && event.keyCode != 127) event.returnValue = false;
		break;
	} 
}
//***************************************************************************************************

//***************************************************************************************************
//Formata o número para duas casas decimais
function formatNumber(valor) {
	var indPontoDec; // localizacao do ponto decimal
	var valorLimpo = ""; // valor filtrado (apenas numeros e virgula)
	var cont = 0; // contador
	var indPonto = 0; // localizacao do último ponto
	var indVirgula = 0; // localizacao da última virgula
	var numero = "0123456789"; // domínio de dígitos válidos
	var limite = 0; // limite da colocação do ponto de milhar

	//=====================================================================================
	// descobre qual o último separador que está sendo utilizado
	//=====================================================================================

	indVirgula = valor.lastIndexOf(',');
	indPonto = valor.lastIndexOf('.');
	if (indVirgula == indPonto)
		indPontoDec = -1;
	else
		if (indVirgula > indPonto)
			indPontoDec = indVirgula;
		else
			indPontoDec = indPonto;

	//=====================================================================================
	// limpa dígitos não numéricos do valor
	//=====================================================================================

	for (cont=0; cont < valor.length; cont++)	{
		if (numero.indexOf(valor.charAt(cont)) != -1)
			valorLimpo += valor.charAt(cont);
			// substitui ponto decimal por vírgula
			if (cont+1 == indPontoDec)	{
				cont++;
				valorLimpo += ',';
			}
			else
				if ((cont==0) && (indPontoDec==0))
					valorLimpo += ',';
	}

	if (valorLimpo.indexOf(",") == -1)
		valorLimpo += ",00";
	if (valorLimpo.indexOf(",") == valorLimpo.length-1)
		valorLimpo += "00";
	if (valorLimpo.indexOf(",") == valorLimpo.length-2)
		valorLimpo += "0";

	//=====================================================================================
	// retira zeros à esquerda
	//=====================================================================================
	
	while (valorLimpo.charAt(0)=='0')
		valorLimpo = valorLimpo.substring(1, valorLimpo.length);


	//=====================================================================================
	// transforma ",xx" em "0,xx"
	//=====================================================================================

	if (valorLimpo.charAt(0)==',')
		valorLimpo = '0' + valorLimpo;

	//=====================================================================================
	// Deixa só duas casas depois da vírgula
	//=====================================================================================

	if((valor != "") && (valorLimpo != "")) {
		while (valorLimpo.indexOf(",") != valorLimpo.length-3) 
			valorLimpo = valorLimpo.substring(0, valorLimpo.length-1);
	}

	return valorLimpo;
}
//***************************************************************************************************

//***************************************************************************************************
//Faz com que a tecla ENTER funcione como TAB
function Enter(form, field, evento) {
	var next=0, found=false;
	var f=form;

	if(evento!=13) return;

	for(var i=0;i<f.length;i++)	{
		if(field.name==f[i].name) {
			next=i+1;
			found=true
			break;
		}
	}

	while(found) {
		if( f[next].disabled==false && f[next].type!='hidden'){
			f[next].focus();
			break;
		} else {
			if(next<f.length-1)
				next=next+1;
			else
				break;
		}
	}
}
//***************************************************************************************************

//***************************************************************************************************
//Limita o númeto de caracteres digitados em um TextField
function restringeCampo(campo, limite) {

	var charNum = limite - campo.value.length;

	if (campo.value.length >= limite) {
		campo.value = campo.value.substring(0, limite);
		document.getElementById("charNum").innerHTML = "Você não pode mais digitar caracteres neste campo";
	} else {
		document.getElementById("charNum").innerHTML = "Você pode digitar " + charNum + " caracteres neste campo";
	}

}
//***************************************************************************************************

function validaData(valor, campo){
	var erro = true;
	hoje = new Date();
	barras = valor.split('/');
	
	if (barras != '') {
		if (barras.length == 3){
			dia = barras[0];
			mes = barras[1];
			ano = barras[2];
	
			// Validação Básica
			if (mes<1 || mes>12) erro = false;
			if (dia<1 || dia>31) erro = false;
			if (ano<0 || ano>9999) erro = false;
			
			if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
				if (dia == 31) erro = false;
			}
	
			if (ano.length != 4) {
				alert("Digite o ano com 4 posições.");
				campo.focus();
				return false;
			}
			
			// Validação do mês de fevereiro (Anos bissextos)
			if (mes == 2){
				var g=parseInt(ano/4);
				if (isNaN(g)) {
					erro = false;
				}
		
				if (dia>29) erro= false;
				if (dia==29 && ((ano/4)!=parseInt(ano/4))) erro = false;
			}
		
			if (!erro) {
				alert("Data inválida!");
			    campo.focus();
			    return false;
			} else {
				if (dia.length==1) dia = '0'+dia;
				if (mes.length==1) mes = '0'+mes;
				
				campo.value = dia + '/' + mes + '/' + ano;
			}		  
		} else {
			alert("Formato de data inválido.\nA data deve ser digitada no formato dd/mm/aaaa, inclusive com as barras.");
			campo.focus();
			return false;
		}
	}
}

//***************************************************************************************************
//Altera a cor dos registros no grid
function RegistroAtivo(cel){
	cel.style.backgroundColor="#DAEFE8";
}

function RegistroNormal(cel){
	cel.style.backgroundColor="#ffffff";
}
//***************************************************************************************************

//***************************************************************************************************
//Alteram a cor do campo texto e da célula (grid)
function CampoFocus(cel, idcel){
	cel.style.backgroundColor="#D1E9FC";
	cel.style.borderColor="#D1E9FC";
	document.getElementById(idcel).style.background='#D1E9FC';
}

function CampoBlur(cel, campo){
	document.getElementById(cel).style.background='#FFFFFF';	
	document.getElementById(campo).style.borderColor='#FFFFFF';	
	document.getElementById(campo).style.background='#FFFFFF';			
}
//***************************************************************************************************

//retorna valor em formato moeda
function moeda(valor){
	valor = valor.toString();		
	if(valor.indexOf(",") != -1) valor = valor.replace(".","").replace(",",".");	
	else valor = parseFloat(valor).toFixed(2);	
	valor = valor.replace(/\D/g,"");//permite digitar apenas números	
	//value = value.replace(/[0-9]{12}/,"inválido");//limita pra máximo 999.999.999,99
	valor = valor.replace(/(\d{1})(\d{8})$/,"$1.$2");//coloca ponto antes dos últimos 8 digitos
	valor = valor.replace(/(\d{1})(\d{5})$/,"$1.$2");//coloca ponto antes dos últimos 5 digitos
	valor = valor.replace(/(\d{1})(\d{1,2})$/,"$1,$2");//coloca virgula antes dos últimos 2 digitos
	return valor;
}
//retorna valoe do formato moeda para formato numérico
function naoMoeda(valor){
	return parseFloat(valor.toString().replace("R$","").replace(".","").replace(",","."));
}

String.prototype.trim = function()
{
    return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.ltrim = function()
{
    return this.replace(/^\s+/, '');
}
String.prototype.rtrim = function()
{
    return this.replace(/\s+$/, '');
}

