
function abrejanela(par1, par2, par3)
{
	window.open(par1, par2, par3);
}

function atualizaOnline()
{
	alert(1);
	var xmlHttp = criaAjaxHttp();
	xmlHttp.onreadystatechange=function()
	{
	if(xmlHttp.readyState==4)
		{
		}
	}
	xmlHttp.open("GET","atualizaonline.php",true);
	xmlHttp.send(null);
}

function Filtrar(Combo, Filtro)
{
	ftexto = Filtro.value.toLowerCase();
	j = Combo.length;

	for (i=0;i<j;i++)
	{
		texto = Combo.options[i].text.toLowerCase();

		if(!(texto.match(ftexto)))
		{
			Combo.options[i] = null;
			i--;
			j--;
		}
	}
}

function limparFiltro(Origem, Destino)
{
	for (i=0;i<Origem.length;i++)
	{
		Destino.options[i] = new Option(Origem.options[i].text,Origem.options[i].value);
	}
}

function limitText(limitField, limitNum)
{
	if (limitField.value.length > limitNum)
	{
		limitField.value = limitField.value.substring(0, limitNum);
	}
}

function abremi(gercodigopara)
{
	window.open("mijanela.php?gercodigopara="+gercodigopara, "mi"+gercodigopara, "scroolbar=no, location=no, titlebar=no, , directories=no, menubar=no, toolbar=no, status=no, width=430, height=330, resizable=no, ");
}

function verificaMi()
{
	var xmlHttp = criaAjaxHttp();
	xmlHttp.onreadystatechange=function()
	{
	if(xmlHttp.readyState==4)
		{
			gercodigopara = xmlHttp.responseText;
			if (gercodigopara != "")
			{
				abremi(gercodigopara);
			}
		}
	}
	hora = new Date();
	engana = hora.getTime();
	xmlHttp.open("GET","miverifica.php?dh="+engana,true);
	xmlHttp.send(null);
}

/**********************************************************************************************/
/**************************************** FUNCOES AJAX ****************************************/
/**********************************************************************************************/

function criaAjaxHttp()
{
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		try
		{
			// Internet Explorer
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");	
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}

function checarValorExiste(valor, tabela, campo)
{
	var xmlHttp = criaAjaxHttp();
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
			{
				ret = xmlHttp.responseText;
				return ret;
			}
	}
	
	hora = new Date();
	engana = hora.getTime();
	xmlHttp.open("GET","ajaxvalorexiste.php?dh="+engana+"&valor="+valor+"&tabela="+tabela+"&campo="+campo,true);
	xmlHttp.send(null);
}

/**********************************************************************************************/
/****************************** FUNCOES DE MANIPULACAO DE IMAGEM ******************************/
/**********************************************************************************************/

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/**********************************************************************************************/
/************************************ FUNCOES DE VALIDACAO ************************************/
/**********************************************************************************************/

function validaCPF(cpfObj, mensagem)
{
	if (typeof mensagem == "undefined") mensagem = true;
	cpf = cpfObj.value;
	cpf = cpf.replace(".", "");
	cpf = cpf.replace(".", "");
	cpf = cpf.replace("-", "");
	valor = true;
	erro = new String;
	if (cpf.length < 11) erro += "O CPF deve conter 11 digitos! \n\n"; 
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) erro += "O CPF é composto apenas por números! \n\n";	
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		  erro += "Número de CPF inválido!"
	}
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++){
		a[i] = cpf.charAt(i);
		if (i < 9) b += (a[i] *  --c);
	}
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	b = 0;
	c = 11;
	for (y=0; y<10; y++) b += (a[y] *  c--); 
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){
		erro +="Número de CPF inválido!";
	}
	if (erro.length > 0){
		if (mensagem)
		{
			alert(erro);
			cpfObj.focus();
		}
		return false;
	}
	return true;
}

function checarCPF(obj, tabela, campo)
{
	if (validaCPF(obj, false))
	{
		id = obj.id;
		document.getElementById(id +"preenche").src = "imagens/icopreencheok.png";
		abrirlayer();
		
		var xmlHttp = criaAjaxHttp();
		xmlHttp.onreadystatechange=function()
		{
		if(xmlHttp.readyState==4)
			{
				ret = xmlHttp.responseText;
				if (ret == obj.value)
				{
					document.getElementById('aguardedivtexto').innerHTML = "Atenção: o CPF digitado já está cadastrado na base de dados.<br><br><a href='javascript:fecharlayer();document.getElementById(\""+ id +"\").value=\"\";document.getElementById(\""+ id +"preenche\").src = \"imagens/icopreenchenao.png\";document.getElementById(\""+ id +"\").focus();'>Fechar</a>";
				}
				else
				{
					fecharlayer();
					obj.focus();
				}
			}
		}
		hora = new Date();
		engana = hora.getTime();
		xmlHttp.open("GET","ajaxvalorexiste.php?dh="+engana+"&valor="+obj.value+"&tabela="+tabela+"&campo="+campo,true);
		xmlHttp.send(null);/**/
	}
	else
	{
		document.getElementById(id +"preenche").src = "imagens/icopreenchenao.png";
		document.body.style.overflow='';
	}
	return true;
}

function validaCNPJ(c, mensagem)
{
	if (typeof mensagem == "undefined") mensagem = true;
	
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais, cnpj = c.value.replace(/\D+/g, '');
	digitos_iguais = 1;
	if (cnpj.length != 14) 
	{
		msg = 'CNPJ inválido';
		ret = false;
	}
	else
	{
		for (i = 0; i < cnpj.length - 1; i++)
		if (cnpj.charAt(i) != cnpj.charAt(i + 1))
		{
			digitos_iguais = 0;
			break;
		}
	
		if (!digitos_iguais)
		{
			tamanho = cnpj.length - 2
			numeros = cnpj.substring(0,tamanho);
			digitos = cnpj.substring(tamanho);
			soma = 0;
			pos = tamanho - 7;
			
			for (i = tamanho; i >= 1; i--)
			{
				soma += numeros.charAt(tamanho - i) * pos--;
				if (pos < 2)
					pos = 9;
			}
			
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
			
			if (resultado != digitos.charAt(0))
			{
				 msg = 'CNPJ inválido';
				 ret = false;
			}
		
			tamanho = tamanho + 1;
			numeros = cnpj.substring(0,tamanho);
			soma = 0;
			pos = tamanho - 7;
	
			for (i = tamanho; i >= 1; i--)
			{
				soma += numeros.charAt(tamanho - i) * pos--;
				if (pos < 2)
					pos = 9;
			}
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
			
			if (resultado != digitos.charAt(1))
			{
				msg =  'CNPJ inválido';
				ret = false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			msg = 'CNPJ inválido';
			ret = false;
		}
	}

	if (mensagem)
	{
		alert(msg);
		c.focus();
	}
	return ret;
} 

function checarCNPJ(obj, tabela, campo)
{
	if (validaCNPJ(obj, false))
	{
		id = obj.id;
		document.getElementById(id +"preenche").src = "imagens/icopreencheok.png";
		abrirlayer();
		
		var xmlHttp = criaAjaxHttp();
		xmlHttp.onreadystatechange=function()
		{
		if(xmlHttp.readyState==4)
			{
				ret = xmlHttp.responseText;
				if (ret == obj.value)
				{
					document.getElementById('aguardedivtexto').innerHTML = "Atenção: o CNPJ digitado já está cadastrado na base de dados.<br><br><a href='javascript:fecharlayer();document.getElementById(\""+ id +"\").value=\"\";document.getElementById(\""+ id +"preenche\").src = \"imagens/icopreenchenao.png\";document.getElementById(\""+ id +"\").focus();'>Fechar</a>";
				}
				else
				{
					fecharlayer();
					obj.focus();
				}
			}
		}
		hora = new Date();
		engana = hora.getTime();
		xmlHttp.open("GET","ajaxvalorexiste.php?dh="+engana+"&valor="+obj.value+"&tabela="+tabela+"&campo="+campo,true);
		xmlHttp.send(null);/**/
	}
	else
	{
		document.getElementById(id +"preenche").src = "imagens/icopreenchenao.png";
		document.body.style.overflow='';
	}
	return true;
}

function validaData(data, mensagem)
{
	if (typeof mensagem == "undefined") mensagem = true;
	Valor = data.value;
	
	if (Valor.length == 0)
	{
		ret = true;
	}
	else if (Valor.length != 10)
	{
		msg = "Tamanho de data inválido. Informe dd/mm/aaaa.";
		ret = false;
	}
	else
	{
		if(Valor.match("-"))
		{
			Valor = Valor.split("-");
			Valor = Valor[2] + "/" + Valor[1] + "/" + Valor[0];
		}

		Valor = Valor.split("/");
		
		if (Valor.length != 3)
		{
			msg = "Data em formato inválido inválido. Informe dd/mm/aaaa.";
			ret = false;
		}
		else
		{
			if (Valor[2].length != 4)
			{
				msg = "O ano deve ter 4 dígitos.";
				ret = false;
			}
			else
			{
				if ((parseFloat(Valor[1]) < 1) || (parseFloat(Valor[1])>12))
				{
					msg = "O mês deve ser um número entre 1 e 12.";
					ret = false;
				}
				else
				{
					Valor[0] = parseFloat(Valor[0]);
					Valor[1] = parseFloat(Valor[1]);
		
					switch(Valor[1])
					{
						case 1:
							n = 31;
						break;
						
						case 2:
							ano = parseInt(Valor[2]);
							if (ano % 4)
							{
								n = 28;
							}
							else
							{
								//Divisível por 4
								if (ano % 100)
								{
									//Divisível apenas por 4
									n = 29;
								}
								else
								{
									//Divisível por 100 e por 4
									n = 28;
								}
							}
						break;
						
						case 3:
							n = 31;
						break;
						
						case 4:
							n = 30;
						break;
						
						case 5:
							n = 31;
						break;
						
						case 6:
							n = 30
						break;
						
						case 7:
							n = 31;
						break;
						
						case 8:
							n = 31;
						break;
						
						case 9:
							n = 30;
						break;
						
						case 10:
							n = 31;
						break;
						
						case 11:
							n = 30;
						break;
						
						case 12:
							n = 31;
						break;
					} // switch
					
					if ((Valor[0] < 0) || (Valor[0] > n))
					{
						msg = "Para o mês/ano digitado, o dia deve estar entre 1 e " + n + ".";
						ret = false
					}
					else
					{
						return true;
					}
				}
			}
		}
	}

	if (mensagem)
	{
		if (msg.length) {
			alert(msg);
		}
		data.value = "";
		data.focus();
	}
	return(ret);
}

function validaHora(hora, mensagem) {
	if (typeof mensagem == "undefined") mensagem = true;
	var msg = "";

	if ((hora.value.length != 5) && (hora.value.length != 8)) {
		msg = "Tamanho da hora inválida.";
		ret = false;
	}
	else {
		parts = hora.value.split(":");
		
		for (i = 0; i < parts.length; i++) {
			parts[i] = parseFloat(parts[i]);
		}

		if (parts[0] > 23) {
			msg = "A hora deve ser um número entre 00 e 23";
			ret = false;
		}
		else if (parts[1] > 59) {
			msg = "Os minutos devem ser um número entre 00 e 59";
			ret = false;
		}
		else if (parts.length == 3) {
			if (parts[2] > 59) {
				msg = "Os segundos devem ser um número entre 00 e 59";
				ret = false;
			}
		}
		else {
			var msg = "";
			ret = true;
		}
	}

	if ((mensagem) && (msg.length > 0))
	{
		alert(msg);
		hora.focus();
	}
	return(ret);
}

function validaTelefone(telefone, mensagem)
{
	if (typeof mensagem == "undefined") mensagem = true;

	if (telefone.value.length != 14)
	{
		msg = "Tamanho do telefone inválido. Preencha com 14 dígitos.";
		ret = false;
	}
	else
	{
		return true;
	}

	if (mensagem)
	{
		alert(msg);
		telefone.focus();
	}
	return(ret);
}

function validaEmail(email, mensagem)
{
	if (typeof mensagem == "undefined") mensagem = true;
	
	Valor = email.value;
	ponto = Valor.indexOf(".");
	arroba = Valor.indexOf("@");
	espaco = Valor.indexOf(" ");
	
	if ((ponto == -1) || (arroba == -1))
	{
		msg = "Formato de e-mail inválido";
		ret = false;
	}
	else if (espaco != -1)
	{
		msg = "O e-mail não pode conter espaços. Verifique.";
		ret = false;
	}
	else
	{
		return true;
	}
	
	if (mensagem)
	{
		alert(msg);
		email.focus();
	}
	return(ret);
}

