var today = new Date();
var year = today.getYear();
defaultStatus = "Copyright © " + year + " - Brazilis"

window.name = "Brazilis";

//Função responsável por dar saudações
function fctSaudacao()
{
	var today = new Date();
	var hrs = today.getHours();
	if (hrs >= 6 && hrs < 12)
	{
		document.write("Bom dia!");
	}
	else if (hrs >=2 && hrs < 18)
	{
		document.write("Boa tarde!");
	}
	else
	{
		document.write("Boa noite!");
	}
}

//Função responsável por gravar um cookie
function gravaCookie(nome, valor)
{
	document.cookie = nome + '=' + valor + '; path=/';
}

//Função responsável por retornar o valor de um cookie
function retornaCookie(nome)
{
	var nome2 = nome + "=";
	var cookieArray = document.cookie.split(';');
	for(var i = 0; i < cookieArray.length; i++)
	{
		var cookie = cookieArray[i];
		while (cookie.charAt(0)==' ') cookie = cookie.substring(1, cookie.length);
		if (cookie.indexOf(nome2) == 0) return cookie.substring(nome2.length, cookie.length);
	}
	return null;
}

//Função responsável por mostrar e ocultar
function mostraoculta(obj)
{
	if (document.getElementById(obj).style.display == '')
	{
		document.getElementById(obj).style.display = 'none';
	}
	else
	{
		document.getElementById(obj).style.display = '';
	}
}

//Função responsável por validar campos numéricos
function validaNum()
{
	if ((event.keyCode < 48) || (event.keyCode > 57))
	{
		return false;
	}
}
	
//Função responsável por deixar as letras maiúsculas
function letrasMaiusculas(campo)
{
	campo.value = campo.value.toUpperCase();
}
	
//Função responsável por abrir janela popup
function popup(url, nome, rolagem, largura, altura, esquerda, topo) 
{
	window.open(url,nome, 'width=' + largura + ', height=' + altura + ', top=' + topo + ', left=' + esquerda + ', scrollbars==' + rolagem + ', status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
}

// Função responsável por formata a data informada pelo usuário
function FormatDate(i, delKey, direction)
{
	if (i.value.length < 10) 
		{
		if (delKey != 9) 
		{
			if(delKey != 8 && delKey != 46 && delKey != 16 &&  !(delKey > 36 && delKey < 41))
			{
				var fieldLen = i.value.length
				if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <= 105)) 
				{
						if (fieldLen == 2 || fieldLen == 5) 
						{
							i.value = i.value + "/";
						}
				} 
				else 
				{
						if (direction == "up") 
						{
							if (i.value.length == 0) 
							{
									i.value = "";
							} 
							else 
							{
									i.value = i.value.substring(0,i.value.length-1);
							}
						}
				}
				i.focus();
				}
		} 
		else 
		{
				if (direction == "down") 
				{
				CheckDate(i);
				}
		}
		}
}

// Função responsável por validar a data informada pelo usuário
function CheckDate(dtaDate) 
{
		if (dtaDate.value == "" )
		{
			return false;
		}
		var err=0;
		dtaValue=dtaDate.value;
		if (dtaValue.length != 8 && dtaValue.length != 10 ) err=1
		mm = dtaValue.substring(3, 5);
		dd = dtaValue.substring(0, 2);
		yy = dtaValue.substring(6, 10);
		var validaNumeros=parseInt(dd+mm+yy);
		if (isNaN(validaNumeros))
	{
		alert(dtaDate.value + ' Data inválida !');
		dtaDate.value = "";
		return false;
	}
		if (mm<1 || mm>12) err = 1
		if (dd<1 || dd>31) err = 1
		if (yy.length == 4)
	{
		if (yy<1900) err = 1
		}
		else
	{
		yy=parseInt(yy,10)
		yy += yy<30?2000:1900
		}
		if (mm==4 || mm==6 || mm==9 || mm==11)
		{
		if (dd==31) err=1
		}
		if (mm==2)
		{
		var dtaYear=parseInt(yy/4);
		if (isNaN(dtaYear)) 
		{
				err=1;
		}
		if (dd>29) err=1
		if (dd==29 && ((yy/4)!=parseInt(yy/4))) err=1
		}
		dtaDate.value = dd + '/' + mm + '/' + yy
	 if (err==1) 
		{
		if (dtaValue.length < 8)
		{
			dtaDate.value = ""
		}
		else
		{
			alert(dtaDate.value + ' Data inválida !');
			dtaDate.value = ""
			return false;
		}
		}
		return true;
}

// Funcao que limpa a string
function ApenasNum(strParm)
{
  strParm = String(strParm);
  var chrPrt = "0";
  var strRet = "";
  var j=0;
  for(var i=0; i < strParm.length; i++)
  {
    chrPrt = strParm.substring(i, i+1);
    if(chrPrt.match(/\d/))
    {
      if(j==0)
      {
        strRet = chrPrt;
        j=1;
      }
      else
      {
        strRet = strRet.concat(chrPrt);
      }
    }
  }
  return strRet;
}

// Funcao que calcula os digitos
function digitoCPFCNPJ(prNumero)
{
  var numLim;
  var numDois = prNumero.substring( prNumero.length - 2, prNumero.length);
  var novoCPF = prNumero.substring( 0, prNumero.length - 2);
  if(prNumero.length == 11)
  {
    numLim = 11;
  }
  else if(prNumero.length == 14)
  {
    numLim = 9;
  }
  else
  {
    return false;
  }
  var Fator = 1;
  var numSoma = 0;
  for (var i = novoCPF.length-1; i >= 0; i--)
  {
    Fator = Fator + 1;
    if (Fator > numLim)
    {
      Fator = 2;
    }
    numSoma = numSoma + ( Fator * Number( novoCPF.substring( i, i + 1)));
  }
  numSoma = numSoma/11;
  var numResto = Math.round( 11 * ( numSoma - Math.floor( numSoma)));
  if (numResto > 1)
  {
    numResto = 11 - numResto;
  }
  else
  {
    numResto = 0;
  }
 
  var numDigito = String(numResto);
  novoCPF = novoCPF.concat(numResto);

  numSoma = 0;
  Fator = 1;
  for (var i = novoCPF.length - 1; i >= 0; i--)
  {
    Fator = Fator + 1;
    if (Fator > numLim)
    {
      Fator = 2;
    }
    numSoma = numSoma + (Fator * Number( novoCPF.substring( i, i + 1)));
  }
  numSoma = numSoma / 11;
  numResto = numResto = Math.round( 11 * (numSoma - Math.floor( numSoma)));
  if (numResto > 1)
  {
    numResto = 11 - numResto;
  }
  else
  {
    numResto = 0;
  }
  numDigito = numDigito.concat(numResto);
  if (numDigito == numDois)
  {
    return true;
  }
  else
  {
    return false;
  }
}

// Funcao que valida e formata CPF ou CNPJ
function validaCPFCNPJ(objCPFCNPJ)
{
	if(objCPFCNPJ.value != "")
	{
		if(objCPFCNPJ.value == null)
		{
			alert("ATENÇÃO!!!\nPor favor digite o CPF ou CNPJ");
			objCPFCNPJ.focus();
			return false;
		}
		numCPFCNPJ = ApenasNum(objCPFCNPJ.value);
		if(parseFloat(numCPFCNPJ) == 0)
		{
			alert("ATENÇÃO!!!\nO CPF informado é inválido!");
			objCPFCNPJ.value = "";
			objCPFCNPJ.focus();
			return false;		
		}
		if(!digitoCPFCNPJ(numCPFCNPJ))
		{
			alert("ATENÇÃO!!!\nO dígito verificador do CPF ou CNPJ é inválido!");
			objCPFCNPJ.value = "";
			objCPFCNPJ.focus();
			return false;
		}
	}
}

// Funcao Responsavel por verificar se os campos obrigatorios foram preenchidos
function validaCamposObrigatorios(formulario)
{
	elementos = document.getElementsByTagName('*');
	var frmAtual = "";
	for(i=0; i < elementos.length; i++)
	{
		if(typeof(elementos[i].name) != "undefined" && elementos[i].name == formulario)
		{
		  frmAtual = 	elementos[i].name;
		}
		
		// Verifico se o form e o que deve ser validado
		if(frmAtual == formulario)
		{
			// Verifico se o campo e obrigatorio
			if(typeof(elementos[i].getAttribute('obrigatorio')) != "undefined")
			{
				if(elementos[i].getAttribute('obrigatorio') == "true")
				{
					if(elementos[i].type == 'textarea')
					{
						if(typeof(tinyMCE) != "undefined")
						{
							var inst = tinyMCE.getInstanceById(elementos[i].name);
							valor = inst.getHTML();
						} else {
							valor = elementos[i].value;
						}
					} else {
						valor = elementos[i].value;
					}
					if(valor == "")
					{
						alert("Campo Obrigatório, favor verificar.");
						if(elementos[i].type != 'hidden' && elementos[i].style.visibility != 'hidden')
						{
							elementos[i].focus();
						}
						return false;
					}
				}
			}
			// Verifico se o campo deve ser igual a algum outro
			if(typeof(elementos[i].getAttribute('igual')) != "undefined" && elementos[i].getAttribute('igual') != "")
			{
				eleDepende = elementos[i].getAttribute('igual');
				
				// Verifico se o elemento existe
				if(typeof(elementos[eleDepende]) != "undefined")
				{
					// Verifico se os valores sao Diferentes
					if(elementos[i].value != elementos[eleDepende].value)
					{
						alert("O valor da Confirmação deve ser igual, favor verificar.");
						elementos[i].focus();
						return false;
					}
				}
			}
		}
	}
	return true;
}

//Funcao que valida a data
function valida_data(campo) {
	if(campo.value != "")
	{
		var date = campo.value;
		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}");
		//vetor que contem o dia o mes e o ano
		array_data = date.split("/");
		erro = false;
		//Valido se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
		//se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
		if ( date.search(ExpReg) == -1 )
			erro = true;
		//Valido os meses que nao tem 31 dias com execao de fevereiro
		else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
			erro = true;
		//Valido o mes de fevereiro
		else if ( array_data[1] == 2 ) {
			//Valido ano que nao e bissexto
			if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
				erro = true;
			//Valido ano bissexto
			if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
				erro = true;
		}
		if ( erro ) {
			alert("Data Inválida");
			campo.value = "";
			campo.focus();
		}
	}
}

// Formato a Data
function formataData(campo, e)
{
	if(somenteNumeros(e))
	{
		if(campo.value.length == 2)
		{
			if(campo.value.substring(2,3) != "/" && returnKeyChar(e) != "/")
			{
					campo.value += "/";
			}
		}
		if(campo.value.length == 5)
		{
			if(campo.value.substring(5,6) != "/" && returnKeyChar(e) != "/")
			{
					campo.value += "/";
			}
		}
	} else {
	  return false;	
	}
	return true;
}

// Funcao sem numeros
function somenteNumeros(e)
{
  var keynum = returnKeyCode(e);
  var keychar = returnKeyChar(e);
  var numcheck = /\d/;
	
	icValido = true;
	if(typeof(keynum) != "undefined" && !numcheck.test(keychar) && keynum != 8)
	{
	  icValido = false;
	}
  return icValido;
}

function somenteNumeros1Virgula(e, campo)
{
	// Incializo as variaveis
	icValido = false;
	valor = campo.value;
	
	// Inicio valido a quantidade de virgulas
	qtVirgulas = returnQtCaracteres(valor, ",");
	
	if(qtVirgulas > 1)
	{
		alert("Valor Incorreto, o valor deve estar no formato 9999,99");
		campo.value = "";
	}
	else
	{
		// Fim valido a quantidade de virgulas
		keychar = returnKeyChar(e);
	
		if(keychar == "," && qtVirgulas == 0)
		{
			icValido = true;
		}
		else
		{
				icValido = somenteNumeros(e);
		}
	}

	return icValido;
}

// Funcao e retorna o codigo da tecla pressionada
function returnKeyCode(e)
{
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	}
	return keynum;
}

// Funcao que retorna o caracter digitado
function returnKeyChar(e)
{
	keynum = returnKeyCode(e);
	keychar = String.fromCharCode(keynum);	
	return keychar;
}

// Funcao que valida o valor
function validaValor(campo)
{
	  // Verifico se o campo nao esta vazio
		if(campo.value.length == 0)
		{
			campo.value = "0,00";
		}
		else
		{
			qtVirgulas = returnQtCaracteres(campo.value, ",");
			valor = campo.value;
			
			// Verifico se possui mais de uma virgulas
			if(qtVirgulas > 1)
			{
				alert("Valor Incorreto, o valor deve estar no formato 9999,99");
				campo.focus();
				return false;
			}
			
			// Verifico se nao possui virgula
			if(valor.indexOf(",") == -1)
			{
				campo.value += ",00"	;
			} else {
				casasDecimais = valor.substring(valor.indexOf(",")+1);
				if(casasDecimais.length == 0)
				{
					campo.value += "00";				
				} else if(casasDecimais.length == 1)
				{
					campo.value += "0";
				} else if(casasDecimais.length != 2) {
					alert("Valor Incorreto, informe apenas 2 casas decimais.");
					campo.value = "0,00";
					campo.focus();
					return false;
				}
			}
			
			valor = campo.value;
			valor = valor.replace(",","");
			var numcheck = /\d/;
			while(valor.length > 0)
			{
				caracter = valor.substring(0,1);
				valor = valor.substring(1);
				if(!numcheck.test(caracter))
				{
					alert("Valor Incorreto, o valor deve estar no formato 9999,99");
					campo.value = "";
					campo.focus();
					return false;
				}
			}
		}
		return true;
}

// Funcao que retonra a quantidade de caracteres
function returnQtCaracteres(valor, caracter)
{
	qtCaracter = 0;
	while(valor.indexOf(caracter) != -1)
	{
		qtCaracter++;
		valor = valor.replace(caracter, "");
	}
	return qtCaracter;
}

function validaPesquisa()
{
	if(formPesquisa.cmpPesquisa.value.length <= 2)
	{
		alert("Atenção, informe uma palavra com menos 2 caracteres antes de realizar a pesquisa.\nObrigado.")
		return false;
	}
	return true;
}
