/*
--------------------------------------------------------------------------------
 FUNÇÃO PARA LISTAR AS ESTADOS, CIDADES DE ACORDO COM OS ITENS SELECIONADOS 
 ANTERIORMENTE.
--------------------------------------------------------------------------------
*/
	function fnc_EstadosListar(str_IDCampoPais, int_CodEstadoSelec, str_IDCampoEstado, str_IDCampoCidade) {
		var obj_Select = document.getElementById(str_IDCampoPais);

		if (obj_Select[obj_Select.selectedIndex].value == 1) {
			document.getElementById("TR_Estado").style.display = "block";
			document.getElementById("TR_Cidade").style.display = "block";
			fnc_ExecutarASP("fnc_EstadosListar", "common/asp/inc_listar_estados.asp?CodPais=" + obj_Select[obj_Select.selectedIndex].value + "&CodEstado=" + int_CodEstadoSelec + "&IDCampoEstado=" + str_IDCampoEstado +  "&IDCampoCidade=" + str_IDCampoCidade);
		}
		else {
			document.getElementById("TR_Estado").style.display = "none";
			document.getElementById("TR_Cidade").style.display = "none";

		}
	}

	function fnc_CidadesListar(str_IDCampoEstado, str_IDCampoCidade, int_CodCidadeSel) {
		var obj_Select = document.getElementById(str_IDCampoEstado);
		fnc_ExecutarASP("fnc_CidadesListar", "common/asp/inc_listar_cidades.asp?CodEstado=" + obj_Select[obj_Select.selectedIndex].value + "&CodCidadeSel=" + int_CodCidadeSel + "&IDCampoCidade=" + str_IDCampoCidade);
	}
	
	function fnc_ExecutarASP(str_FuncaoQueChamou, str_ArquivoASP) {
		var obj_TagHead = document.getElementsByTagName("head").item(0);
		var obj_ExisteTagScript = document.getElementById(str_FuncaoQueChamou);
		var obj_TagScript;
		/*-----------------------------------------------------------------------------------------
			Verifica se a função que monta o HTML já está criada. Se já foi criada, apaga ela, e
			recria de acordo com os parametros do ASP */
		if (obj_ExisteTagScript) {
			obj_TagHead.removeChild(obj_ExisteTagScript);
		}
		/*--------------------------------------------------------------------------------------*/
		obj_TagScript = document.createElement("script");
		obj_TagScript.src = str_ArquivoASP;
		obj_TagScript.type = "text/javascript";
		obj_TagScript.id = str_FuncaoQueChamou;
		obj_TagHead.appendChild(obj_TagScript);
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO PARA VERIFICAR CAMPOS DE FORMULÁRIOS PREENCHIDOS
--------------------------------------------------------------------------------
*/

	function fnc_CadastrarAssinante() {
		var objFormulario = document.getElementById("CadastrarAssinante");
		var str_Mensagem = "Por favor, marque uma ou mais opções no campo";
		
		var bln_Perfil = fnc_CheckRadioPreenchido("Perfil", "Perfil", str_Mensagem);
		if (bln_Perfil) { return; }

		objFormulario.submit();
	}

	function fnc_Cadastrar() {
		var objFormulario = document.getElementById("Cadastrese");
		var strMensagem = "Por favor, preencha o campo";
		var str_MensagemFinal = "";
		
		var bln_Nome = fnc_InputPreenchido("NomeForm", "Nome", strMensagem, str_MensagemFinal);
		if (bln_Nome) { return; }

		var bln_Email = fnc_InputEmail("EmailForm", "Email", strMensagem, str_MensagemFinal);
		if (bln_Email) { return; }
		
		objFormulario.submit()
	}

	function fnc_RedirecionarSite() {
		var objFormulario = document.getElementById("AcessoRapido");
		var str_LinkUnidade = document.getElementById("SitesSaziForm").value;

		if (str_LinkUnidade != "") {
			objFormulario.action = str_LinkUnidade
			objFormulario.submit();
		}
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO PARA VERIFICAR CAMPOS DE FORMULÁRIOS PREENCHIDOS
--------------------------------------------------------------------------------
*/

	function fnc_MaximoValor(lng_ValorMaximo, str_IDCampo, str_Mensagem) {
		var lng_ValorDigitado = document.getElementById(str_IDCampo).value;
		if ( (lng_ValorDigitado > lng_ValorMaximo) || (Trim(lng_ValorDigitado) == "") ) {
			alert(str_Mensagem + " " + lng_ValorMaximo);
			document.getElementById(str_IDCampo).focus();
			return(true);
		}
	}

	function fnc_InputEmail(str_IDCampoInput, str_NomeCampo, strMensagem, str_MensagemFinal) {
		var str_DadoInput = document.getElementById(str_IDCampoInput).value; 
		if (Trim(str_DadoInput) == "") {
			alert(strMensagem + " " + str_NomeCampo);
			document.getElementById(str_IDCampoInput).focus();
			return(true);
		}
		
		if (fnc_ValidaEmail(str_DadoInput) == false) {
			alert("Por favor, preencha um e-mail válido.");
			document.getElementById(str_IDCampoInput).focus();
			return(true);			
		}
	}
	
	function fnc_CPF_CNPJValido(str_IDCampoInput, str_NomeCampo, str_Mensagem, str_MensagemFinal) {
		var str_DadoInput = document.getElementById(str_IDCampoInput).value; 
		if ( (fnc_IsCPF_CNPJ(str_DadoInput) == false) || (Trim(str_DadoInput) == "") ) {
			alert(str_Mensagem + " " + str_NomeCampo + " " + str_MensagemFinal);
			document.getElementById(str_IDCampoInput).focus();
			return(true);			
		}
	}

	function fnc_CheckRadioPreenchido(str_NameForm, str_NomeCampo, str_Mensagem) {
		var obj_Input = document.getElementsByTagName("input");
		var int_IndiceArr = 0;
		var bln_CheckboxSelecionado = false;

		for (int_IndiceArr = 0; int_IndiceArr < obj_Input.length; int_IndiceArr++) {		
			if (obj_Input[int_IndiceArr].name == str_NameForm) {
				if (obj_Input[int_IndiceArr].checked == true) {
					bln_CheckboxSelecionado = true;
				}
			}
		}
		
		if (bln_CheckboxSelecionado == false) {
			alert(str_Mensagem + " " + str_NomeCampo + ".");
			return(true);
		}
		else {
			return(false);
		}
	}

	function fnc_InputPreenchido(str_IDCampoInput, str_NomeCampo, strMensagem, str_MensagemFinal) {
		var str_DadoInput = document.getElementById(str_IDCampoInput).value; 
		if (Trim(str_DadoInput) == "") {
			alert(strMensagem + " " + str_NomeCampo + " " + str_MensagemFinal);
			document.getElementById(str_IDCampoInput).focus();
			return(true);
		}
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO PARA PERMITIR APENAS NÚMEROS
--------------------------------------------------------------------------------
*/
	function fnc_PermiteApenasNumeros(NameCampo, Evento) {
		var str_CaracterASCII = '';
		var str_CharPermitido = '0123456789';
		//-----------------------------------------------------------------------------
		// Recebe o codigo ASCII da tecla pressionada
		var int_CodASCII = (window.Event) ? Evento.which : Evento.keyCode;
		//-----------------------------------------------------------------------------
		// Se é igual a 13 (cod ASCII da tecla ENTER) não faz nada
		if (int_CodASCII == 13) return true;
		str_CaracterASCII = String.fromCharCode(int_CodASCII);
		//-----------------------------------------------------------------------------
		// Esta expressão retorna -1 quando for pressionada uma tecla que não for número
		if (str_CharPermitido.indexOf(str_CaracterASCII) == -1) return false;
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO PARA RETIRAR OS ESPAÇOS EM BRANCO NO INCIO E NO FIM DA STRING
--------------------------------------------------------------------------------
*/
	function LTrim(String) {
		var i = 0;
		var j = String.length - 1;
	
		if (String == null) return (false);
		for (i = 0; i < String.length; i++)	{
			if (String.substr(i, 1) != ' ' && String.substr(i, 1) != '\t') break;
		}
		if (i <= j) return (String.substr(i, (j+1)-i)); else return ('');
	}
	
	function RTrim(String) {
		var i = 0;
		var j = String.length - 1;
	
		if (String == null) return (false);
		for(j = String.length - 1; j >= 0; j--) {
			if (String.substr(j, 1) != ' ' && String.substr(j, 1) != '\t') break;
		}
		if (i <= j) return (String.substr(i, (j+1)-i)); else return ('');
	}

	function Trim(String) {
		if (String == null) return (false);
		return RTrim(LTrim(String));
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO QUE VERIFICA SE O CPF OU CNPJ É VALIDO
--------------------------------------------------------------------------------
*/
	cst_NUM_DIGITOS_CPF  = 11;
	cst_NUM_DIGITOS_CNPJ = 14;
	cst_NUM_DGT_CNPJ_BASE = 8;

	String.prototype.lpad = function(pSize, pCharPad) {
		var str = this;
		var dif = pSize - str.length;
		var ch = String(pCharPad).charAt(0);
		for (; dif > 0; dif--) str = ch + str;
		return (str);
	}

	String.prototype.trim = function() {
		return this.replace(/^\s*/, "").replace(/\s*$/, "");
	}

 	/*--------------------------------------------------------------------------
		Faz a desformatação do padrão de CPF ou CNPJ
	--------------------------------------------------------------------------*/
	function fnc_DesformataNumero(str_Numero) {
		return String(str_Numero).replace(/\D/g, "").replace(/^0+/, "");
	}

 	/*--------------------------------------------------------------------------
		Formata a string conforme o padrão de CPF ou CNPJ
	--------------------------------------------------------------------------*/
	function fnc_Formatar_CPF_CNPJ(str_CPF_CNPJ, bln_UsarSeparador, bln_IsCNPJ) {
		if (bln_IsCNPJ == null) bln_IsCNPJ = false;
		if (bln_UsarSeparador == null) bln_UsarSeparador = true;
		var int_MaxDigitos = bln_IsCNPJ ? cst_NUM_DIGITOS_CNPJ : cst_NUM_DIGITOS_CPF;
		var str_Numero = fnc_DesformataNumero(str_CPF_CNPJ);
	
		str_Numero = str_Numero.lpad(int_MaxDigitos, '0');
		if (!bln_UsarSeparador) return str_Numero;
	
		if (str_CPF_CNPJ)
		{
			reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
			str_Numero = str_Numero.replace(reCnpj, "$1.$2.$3/$4-$5");
		}
		else
		{
			reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
			str_Numero = str_Numero.replace(reCpf, "$1.$2.$3-$4");
		}
		return str_Numero;
	}


 	/*--------------------------------------------------------------------------
		Faz o calculo para verificação da validade do CPF
	--------------------------------------------------------------------------*/
	function fnc_CalculaDigito(str_Base, bln_IsCNPJ) {
		if (bln_IsCNPJ == null) bln_IsCNPJ = false;
		var str_BaseCalculada = fnc_Formatar_CPF_CNPJ(str_Base, false, bln_IsCNPJ);
		var int_CicloPeso	= bln_IsCNPJ ? cst_NUM_DGT_CNPJ_BASE : cst_NUM_DIGITOS_CPF;
		var int_MaxDigitos	= bln_IsCNPJ ? cst_NUM_DIGITOS_CNPJ  : cst_NUM_DIGITOS_CPF;
		str_BaseCalculada = str_BaseCalculada.substring(2, int_MaxDigitos);
		var result = "";
		var i, j, k, soma, dv;
	
		for (j = 1; j <= 2; j++) {
			k = 2;
			soma = 0;
			for (i = str_BaseCalculada.length-1; i >= 0; i--) {
				soma += (str_BaseCalculada.charAt(i) - '0') * k;
				k = (k-1) % int_CicloPeso + 2;
			}
			dv = 11 - soma % 11;
			if (dv > 9) dv = 0;
			str_BaseCalculada += dv;
			result += dv
		}
		return result;
	} 


 	/*--------------------------------------------------------------------------
		Verifica se o CPF é válido
	--------------------------------------------------------------------------*/
	function fnc_ValidarCPF(str_CPF) {
		var str_Numero = fnc_Formatar_CPF_CNPJ(str_CPF, false, false);
		var str_Base = str_Numero.substring(0, str_Numero.length - 2);
		var str_Digitos = fnc_CalculaDigito(str_Base, false);
		var algUnico, i;
	
		if (str_Numero != str_Base + str_Digitos) return false;

		algUnico = true;
		for (i = 1; i < cst_NUM_DIGITOS_CPF; i++) {
			algUnico = algUnico && (str_Numero.charAt(i - 1) == str_Numero.charAt(i));
		}
		return (!algUnico);
	}

	/*--------------------------------------------------------------------------
		Verifica se o CNPJ é válido
	--------------------------------------------------------------------------*/
	function fnc_ValidarCNPJ(pCnpj) {
		var numero = fnc_Formatar_CPF_CNPJ(pCnpj, false, true);
		var base = numero.substring(0, cst_NUM_DGT_CNPJ_BASE);
		var ordem = numero.substring(cst_NUM_DGT_CNPJ_BASE, 12);
		var digitos = fnc_CalculaDigito(base + ordem, true);
		var algUnico;
	
		// Valida dígitos verificadores
		if (numero != base + ordem + digitos) return false;
	
		algUnico = numero.charAt(0) != '0';
		for (i = 1; i < cst_NUM_DGT_CNPJ_BASE; i++) {
			algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
		}
		if (algUnico) return false;
	
		if (ordem == "0000") return false;
		return (base == "00000000" || parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
	}

	/*--------------------------------------------------------------------------
		Recebe o valor e verifica o tamnho da string para ver se é tratado como
		CPF ou CNPJ 
	--------------------------------------------------------------------------*/
	function fnc_IsCPF_CNPJ(str_ValueForm) {
		var str_Numero = str_ValueForm.replace(/\D/g, "");
		if (str_Numero.length > cst_NUM_DIGITOS_CPF) {
			return fnc_ValidarCNPJ(str_ValueForm)
		}
		else {
			return fnc_ValidarCPF(str_ValueForm);
		}
	}

/*
--------------------------------------------------------------------------------
 FUNÇÃO QUE VERIFICA SE O EMAIL É VÁLIDO
--------------------------------------------------------------------------------
*/

	function fnc_ValidaEmail(strEmail) {
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]?&'%~#´`"
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
		var matchArray=strEmail.match(emailPat)
		if (matchArray==null) {
			return false
			}
		var user=matchArray[1]
		var domain=matchArray[2]
		
		if (user.match(userPat)==null) {
			return false
			}
		
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					return false
					}
				}
				return true
			}
		
		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			return false
			}
		
		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if ( (domArr[domArr.length-1].length < 2) || (domArr[domArr.length-1].length > 3) ) {
			return false
			}
		
		if (len < 2) {
			return false
			}
		return true;
		}

	function fnc_PesquisarRepresentante() {
		var objFormulario = document.getElementById("ConsultarRepresentantes");
		objFormulario.submit();
	}

	function links(i){
	
		var strMouseOver=new String (document.links[i].getAttribute('onmouseover'));
		
		if(strMouseOver.indexOf('window.status')==-1){
			var old = (document.links[i].onmouseover) ? document.links[i].onmouseover : function () {};
			
			if(document.links[i].childNodes[0].nodeType==3){
				
				var tamanho = document.links[i].childNodes[0].nodeValue;
				
				if(tamanho.length>60){
					document.links[i].onmouseover = function () {old();window.status='Mais Informações';return true;};
				}
				
				else{
					document.links[i].onmouseover = function () {old(); window.status=document.links[i-1].childNodes[0].nodeValue;return true;};
				}
			}
			
			else{
				
				var texto=false;
				
				for(j=0;j<document.links[i].childNodes.length;j++){
					
					if(document.links[i].childNodes[j].nodeType==3){
						var filho;
						((j>=1) ? filho=j : filho=j-1);
						document.links[i].onmouseover = function () {old(); window.status=document.links[i-1].childNodes[filho].nodeValue;return true;};
						texto=true;
					}
					
				}
	
				if(!texto){
					document.links[i].onmouseover = function () {old();window.status='';return true;};
				}
					
			}
		}
		document.links[i].onmouseout = function(){window.status='';return true;};
		i++;
		if(i<document.links.length){
			links(i);
		}
	}

	function fnc_AbrePopUp(str_NomeArquivo, str_NomeJanela, bln_Scrollbar, lng_Largura, lng_Altura, lng_Top, lng_Left) {
		if ( (!lng_Altura) || (lng_Altura == 0) ) {
			lng_Altura = 465;
		}
		if ( (!lng_Largura) || (lng_Largura == 0) ) {
			lng_Largura = 450;
		}
		if ( (!lng_Top) || (lng_Top == 0) ) {
			lng_Top = screen.availHeight/2 - lng_Altura/2;
		}
		if ( (!lng_Left) || (lng_Left == 0) ) {
			lng_Left = screen.availWidth/2 - lng_Largura/2;
		}
		if ( (!bln_Scrollbar) || (bln_Scrollbar == 0) ) {
			bln_Scrollbar = 'no';
		}
		window.open(str_NomeArquivo, str_NomeJanela, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=' + bln_Scrollbar + ', resizable=no, width=' + lng_Largura + ', height=' + lng_Altura +', top=' + lng_Top + ', left=' + lng_Left);
	}

	function AcessoRapido() {
		var objFormulario = document.getElementById("AcessoRapido");
		var str_LinkSelecionado = document.getElementById("LinkSelecionado").value;

		if (str_LinkSelecionado == -1) {
			alert("Selecione uma sessão do site.")
			document.getElementById("LinkSelecionado").selected = true;
			return;
		}
	
		objFormulario.action = str_LinkSelecionado
		objFormulario.submit()
	}
	
	function Estado(intOption) {
		var objFormulario = document.getElementById("ConsultarRepresentantes");
		var texto = "";
		objSelectEstado = document.getElementById("EstadoForm");
		var strEstados = new Array("Acre","Alagoas","Amapá","Amazonas","Bahia","Ceará","Distrito Federal","Espírito Santo","Goiás","Maranhão","Mato Grosso","Mato Grosso do Sul","Minas Gerais","Pará","Paraíba","Paraná","Pernambuco","Piauí","Rio de Janeiro","Rio Grande do Norte","Rio Grande do Sul","Rondônia","Roraima","Santa Catarina","São Paulo","Sergipe","Tocantins");
		var strSiglas = new Array("AC","AL","AP","AM","BA","CE","DF","ES","GO","MA","MT","MS","MG","PA","PB","PR","PE","PI","RJ","RN","RS","RO","RR","SC","SP","SE","TO");

		for(i=0;i<strSiglas.length;i++){
			if(intOption.toLowerCase() == strSiglas[i].toLowerCase()){
				texto = strEstados[i].toLowerCase();
			}
		}
	
		for(i=0;i<objSelectEstado.length;i++){
			if (objSelectEstado.options[i].text.toLowerCase() == texto){
				document.getElementById('EstadoForm').options[i].selected = true;	
				break;
			}
			else {
				document.getElementById('EstadoForm').options[0].selected = true;
			}			
		}
		
		if (document.getElementById('EstadoForm').options[0].selected == true) {
			alert("Este estado não possui representante.");
		}
		else {
			objFormulario.submit();
		}
	}

