//fundo do campo, caso haja erro
var bgerro = "#FFF4F4";
var bgnoerro = "#FFF";
var bdrerro = "2px solid #FF8080";
var bdrnoerro = "1px solid #E6E6E6";

//delay do slideshow
var delay_slideshow = 30;//segundos

//caminho imagens
function pathImagens()
{
	var getimagens = stringSEG($_v("pega_imagens"));	
	return getimagens;
}

//caminho ajax para javascript
function pathAjax()
{
	var getajax = stringSEG($_v("pega_ajax"));
	return getajax;
}

//ativador flash
function ativaActive(fcValor)
{
	var conteudo = document.getElementById(fcValor).innerHTML;
	document.getElementById(fcValor).innerHTML = conteudo;
}

//função para decode e encode de UTF8
UTF8 = {
	encode: function(s){
		for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
			s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]
		);
		return s.join("");
	},
	decode: function(s){
		for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
			((a = s[i][c](0)) & 0x80) &&
			(s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
			o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
		);
		return s.join("");
	}
};

function addSlashes(texto)
{
	//return (texto+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
	//return texto.replace(/(["'\\])/g, "\\$1").replace(/\0/g, "\\0") ;
	//return escape(texto);
	return encodeURIComponent(texto);
}

function $_(a)
{
    return document.getElementById(a);
}

function $_n(a)
{
    return document.getElementsByName(a);
}

function $_v(a)
{
    return $_(a).value;
}

function Trim(str)
{
    var str = str.replace(/^\s\s*/, ''),
        ws = /\s/,
        i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}

function campoOK(campo)
{
	var getcampo = campo.id;
	//document.getElementById(getcampo).style['background'] = bgnoerro;
	document.getElementById(getcampo).style.border = bdrnoerro;
}

function campoNOTOK(campo)
{
	var getcampo = campo.id;
	//document.getElementById(getcampo).style['background'] = bgerro;
	document.getElementById(getcampo).style.border = bdrerro;
	document.getElementById(getcampo).focus();
}

function Mascara(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
	if (texto.substring(0,1) != saida) 
	{
		src.value += texto.substring(0,1);
	}
}

//refer stringSEG(php) 
function stringSEG(s)
{
	s = UTF8.decode(s);
	var e={},i,k,v=[],r='',w=String.fromCharCode;
	var n=[[65,91],[97,123],[48,58],[47,48],[43,44]];
    for(z in n){for(i=n[z][0];i<n[z][1];i++){v.push(w(i));}}
	for(i=0;i<64;i++){e[v[i]]=i;}
	for(i=0;i<s.length;i+=72)
	{
		var b=0,c,x,l=0,o=s.substring(i,i+72);
		for(x=0;x<o.length;x++)
		{
			c=e[o.charAt(x)];b=(b<<6)+c;l+=6;
			while(l>=8){r+=w((b>>>(l-=8))%256);}}
    }
	res = stringUNSEG(r);
	//===>remove caracteres estranhos
	len = res.length;
	var linha;
	for(i = 0; i < len; i++)
	{
		//dados += res.charAt(i) +"=>"+ res.charCodeAt(i) +"<br />";
		if(res.charCodeAt(i) != 0)
		{
			linha += res.charAt(i);
		} 
	}
	//$('#teste').html(dados);
	res = linha.replace('undefined', '');
	//<===remove caracteres estranhos
	
	return res;
}
//refer stringUNSEG(php)
function stringUNSEG(str)
{
	rec = str.split('##');
	res = Trim(rec[1]);
	return res;
}

//##################### VALIDAR CAMPOS #####################
function checkEMAIL(campo)
{
	var exclude, check, checkend;

	//EXPRESSÕES REGULARES PARA CHECAGEM DO E-MAIL
	exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	check=/@[\w\-]+\./;
	checkend=/\.[a-zA-Z]{2,3}$/;

	if((($_v(campo).search(exclude) != -1)||($_v(campo).search(check)) == -1)||($_v(campo).search(checkend) == -1))	
	{
		alert("O E-MAIL deve ser um endereço eletrônico válido.");
		campoNOTOK($_(campo));
		return false;
	}
	
	return true;
}

function checkCPF(campo)
{
	//pega valor do campo
	var getcpf = $_v(campo);
	//expressão para testar o formato do cpf
	var check = /^[0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2}$/;

	//verifica o formato do cpf
	if(!check.test(getcpf))
	{
		alert("Formato de CPF inválido.\nDigite o CPF no formato 000.000.000-00");
		campoNOTOK($_(campo));
		return false;
	}else{
		
		var cpf1= getcpf.replace('.','');
		var cpf2= cpf1.replace('.','');
		var cpf3= cpf2.replace('.','');
		var cpf4= cpf3.replace('-','');
		var CPF= cpf4;
		
		if (CPF == "00000000000" ||
			CPF == "11111111111" || 
			CPF == "22222222222" || 
			CPF == "33333333333" || 
			CPF == "44444444444" || 
			CPF == "55555555555" || 
			CPF == "66666666666" || 
			CPF == "77777777777" || 
			CPF == "88888888888" || 
			CPF == "99999999999")
		{
			alert("CPF inválido.");
			campoNOTOK($_(campo));
	 		return false; 
			
		}
		
		if (CPF.length != "11"){
			alert("Por favor, informe um CPF válido.");
			campoNOTOK($_(campo));
	 		return false; 
		}
		
		x = 0;
		soma = 0;
		dig1 = 0;
		dig2 = 0;
		texto = "";
		numcpf1="";
		numcpf = CPF;
		len = numcpf.length;
		x = len -1;
		
		// var numcpf = "12345678909";
		for (var i=0; i <= len - 3; i++)
		{
			y = numcpf.substring(i,i+1);
			soma = soma + ( y * x);
			x = x - 1;
			texto = texto + y;
		}
		dig1 = 11 - (soma % 11);
		if (dig1 == 10) dig1=0 ;
		if (dig1 == 11) dig1=0 ;
		numcpf1 = numcpf.substring(0,len - 2) + dig1 ;
		x = 11; soma=0;
		for (var i=0; i <= len - 2; i++)
		{
			soma = soma + (numcpf1.substring(i,i+1) * x);
			x = x - 1;
		}
		dig2= 11 - (soma % 11);
		if (dig2 == 10) dig2=0;
		if (dig2 == 11) dig2=0;
		//alert ("Digito Verificador : " + dig1 + "" + dig2);
		if ((dig1 + "" + dig2) == numcpf.substring(len,len-2))
		{
			return true;
		}
		
		alert("CPF inválido.");
		return false;	
	}
}

function checkCNPJ(campo)
{
	var cnpj1= $_v(campo).replace('.','');
	var cnpj2= cnpj1.replace('.','');
	var cnpj3= cnpj2.replace('/','');
	var cnpj4= cnpj3.replace('-','');
	var CNPJ= cnpj4;

	if (CNPJ.length != '14'){
		alert("Por favor, informe um CNPJ válido.");
		campoNOTOK($_(campo));
		return false; 
	}
	
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
	digitos_iguais = 1;
	
      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))
			{
				alert("CNPJ inválido.");
				campoNOTOK($_(campo));
                return 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))
			{
				alert("CNPJ inválido.");
				campoNOTOK($_(campo));
                return false;
			}else{
            	return true;
            }
	}else{
		alert("CNPJ inválido.");
		campoNOTOK($_(campo));
		return false;
	}
}

function checkDATA(campo){

	hoje = new Date();
	diaAtual = hoje.getDate();
	anoAtual = hoje.getFullYear();
	getMes = hoje.getMonth();
	mesAtual = getMes + 1;
	
	//quebra a data passada no campo
	barras = campo.value.split("/");

	if(campo.value.length != 10)
	{
		alert("Informe a DATA completa. \nExemplo: 10/10/2010");
		campo.focus();
		return false;
	}
	else
	{
		dia = barras[0];
		mes = barras[1];
		ano = barras[2];

		//se for passado um segundo argumento como "data_casamento", 
		//indica que é data de casamento e permite datas futuras
		if(arguments[1] == "data_casamento")
		{
			resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano >= 1900));			
		}else{
			resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano <= anoAtual && ano >= 1900));
		}				

		if (!resultado)
		{
			alert("A DATA informada é inválida!");
			campo.focus();
			return false;
		}else{
		
			//se for passado um segundo argumento, 
			//verifica se a data informada é menor que a data do dia atual
			if(arguments[1])
			{
				//se ano informado é menor que ano atual
				if(ano < anoAtual)
				{
					alert("DATA INVÁLIDA. O ano informado é menor que o ano atual.");	
					campo.focus();
					return false;
				}else{
					
					if(mes < mesAtual && ano <= anoAtual)
					{		
						alert("DATA INVÁLIDA. O mês informado é menor que o mês atual.");	
						campo.focus();
						return false;
					}else{
						
						if(arguments[1] == "data_casamento")
						{
							if(dia <= diaAtual && mes <= mesAtual && ano <= anoAtual)
							{
								alert("DATA INVÁLIDA. O dia informado é menor que o dia atual.");	
								campo.focus();
								return false;		
							}
						}else{
							if(dia < diaAtual && mes <= mesAtual)
							{
								alert("DATA INVÁLIDA. O dia informado é menor que o dia atual.");	
								campo.focus();
								return false;		
							}
						}
					}
				}
			}
		}
	}
	return true;
}

function checkHORA(campo)
{
	if(campo.value.length < 5)
	{
		alert("Informe a HORA completa. \nExemplo: 22:30");
		campoNOTOK(campo);
		return false;
	}

	var horario = campo.value.split(":");
	var hora = horario[0];
	var minuto = horario[1];
	
	if(isNaN(hora) || isNaN(minuto))
	{
		alert("A HORA deve conter somente números");
		campoNOTOK(campo);	
		return false;
	}
	
	if(hora > 23 || hora < 00 || hora.length < 2)
	{
		alert("A HORA informada é inválida");
		campoNOTOK(campo);	
		return false;
	}
		
	if(minuto > 59 || minuto < 00 || minuto.length < 2)
	{
		alert("Os MINUTOS informados são inválidos");
		campoNOTOK(campo);	
		return false;
	}
	
	return true;
} 

function checkCEP(campo)
{
	//substitui os espaços vazios no inicio e no fim do cep 
	var getcep = $_(campo).value;
	var cep = getcep.replace(/^\s+|\s+$/g, '');
		
	//verifica tamanho do cep
	if (cep.length != 9) 
	{
		alert("CEP incompleto.\nDigite o CEP no formato 00000-000");
		campoNOTOK($_(campo));
		return false;
	}else{
		
		//expressão para testar o formato do cep
		var check = /^[0-9]{2}[0-9]{3}-[0-9]{3}$/;
			
		if (!check.test(cep)) 
		{
			alert("Formato de CEP inválido.\nDigite o CEP no formato 00000-000");
			campoNOTOK($_(campo));
			return false;
		}
	}
			
	return true;
}

//##################### fim VALIDAR CAMPOS #####################


//função genérica para ajax (com validação de campos) ==> jquery
//  [get_url] arquivo do ajax
//  [get_pars] campo hidden com os campos do form, sendo possível validar com setValidacao(campo=>tipo validação)
//  [alvo_ajax] container p/ o load do ajax; deixar vazio se não quiser load
//  [msg_ajax] mensagem p/ o load do ajax
//  [funcao] função que será executada após retorno do ajax
function runAjax(get_url, get_pars, alvo_ajax, msg_ajax, funcao)
{
	//variávies utilizadas
	var campos, valores, validar, tipo_validacao, campo_final, erro, url, pars, retorno;
	//##################### VALIDAÇÃO DE CAMPOS #####################
	//quebra nome dos campos passados em get_pars
	campos = $_v(get_pars).split(",");
	//contagem de erros caso haja validação
	erro = 0;
	//tipos de validação para substituir nos nomes dos campos
	tipo_validacao = new Array();
	
	//verifica qtos campos foram passados
	for(i=0; campos.length > i ; i++)
	{
		//quebra o nome do campo e o tipo de validação (campo=>tipo validação)
		validar = campos[i].split("=>");
		
		//se tem validação no campo
		if(validar[1] != "")
		{
			//executa função de validação
			if(!setValidacao(validar[0], validar[1], $_(validar[0]).name))
			{
				erro++;
				return false;
			} 
		}
		
		//pega tipos de validação passados para remover abaixo
		//tipo_validacao.push("=>"+validar[1]);
		tipo_validacao.push("=>"+validar[1]);
	}
	
	//##################### fim VALIDAÇÃO DE CAMPOS #####################

	//##################### EXECUTA AJAX #####################
	//se passou em todas as validações
	if(erro == 0)
	{
		//verifica qtos campos foram passados
		for(a=0; campos.length > a ; a++)
		{
			//remove o tipo de validação do nome do campo
			campo_final = campos[a].replace(tipo_validacao[a], "");
			
			//se for o primeiro campo, não adiciona &
			if(a==0)
			{
				valores =  campo_final +"="+ addSlashes($_v(campo_final));
			//concatena os campos com &			
			}else{
				valores += "&"+ campo_final +"="+ addSlashes($_v(campo_final));
			}
		}

		//mostra loading padrão
		if(msg_ajax != "")
		{
			$('#'+alvo_ajax).html('');
			setLoading(alvo_ajax, msg_ajax);
			
		//se não passou msg, mostra loading simples
		}else{
			$('#'+alvo_ajax).html('Executando, aguarde...');			
			aparece(alvo_ajax);
		}

		//arquivo ajax
		url = stringSEG(get_url);
		//campos ajax
		pars = valores;

		//executa ajax(jquery)
		$.ajax({
				   type: "POST",
				   url: url,
				   data: pars,
				   //se executou o ajax
				   success: function(result)
				   {
				   		//se retorno está vazio
				   		if(result == '')
						{
							setMessage(alvo_ajax, "ERRO: retorno do ajax vazio. Verifique o script "+url, "notok", "", "");
						}else{
							
				     		funcao(result,alvo_ajax);
						}
				   },
				   //se ocorreu algum erro
				   error: function(XMLHttpRequest, textStatus)
				   {
				   		var txt_erro, header_erro, msg_erro;
				   		
				   		//retorno de textStatus
				   		switch(textStatus)
						{
							case 'null':
							case 'error':
							case 'abort':
							case 'parsererror':
								txt_erro = "Ocorreu um erro: ";
							break;
							
							case 'timeout':
								txt_erro = "Ocorreu um erro de tempo na execução: ";
							break;
						}
				   		header_erro = "ERRO "+ XMLHttpRequest['status'] +"<br />"+ XMLHttpRequest['responseText'];
						msg_admin = "Por favor informe este erro no e-mail: <strong>suporte@mixvirtual.com.br</strong>";
						msg_erro = txt_erro +"<br />"+ header_erro +"<br />"+ msg_admin;
						
						alert("Ocorreu um erro: "+ XMLHttpRequest['status'] +".\nLeia a descrição do erro, na própria página.");
						setMessage(alvo_ajax, msg_erro, "notok", "", "");
				   }
		 });
	}
	//##################### fim EXECUTA AJAX #####################
}

//executa ajax, sem validação de campos
function runAjaxSingle(get_url, get_vars, load_ajax, msg_ajax, funcao, seg)
{
	erro = 0;
	
	if(get_url == '')
	{
		alert("URL não informada. Não é possível executar o Ajax.");
		erro++;
		return false;
	}
	
	/*
	if(get_vars == '')
	{
		alert("VARIÁVEIS não informadas. Não é possível executar o Ajax.");
		erro++;
		return false;
	}
	*/
	
	//se não ocorreu erro
	if(erro == 0)
	{
		//se tem load
		if(load_ajax != '')
		{
			if(msg_ajax != '')
			{
				$('#'+load_ajax).html(msg_ajax);
				$('#'+load_ajax).show();
			}
		}
		
		//arquivo ajax
		if(seg == 'true')
		{
			url = stringSEG(get_url);
		}else{
			url = get_url;
		}
		//campos ajax
		pars = get_vars;
			
		//executa ajax(jquery)
		$.ajax({
				   type: "POST",
				   url: url,
				   data: pars,
				   //se executou o ajax
				   success: function(result)
				   {
				   		//se retorno está vazio
				   		if(result == '')
						{
							setMessage(load_ajax, "ERRO: retorno do ajax vazio. Verifique o script "+url, "notok", "alert", "");
						}else{
				     		funcao(result,load_ajax);
						}
				   },
				   //se ocorreu algum erro
				   error: function(XMLHttpRequest, textStatus)
				   {
				   		var txt_erro, header_erro, msg_erro;
				   		
				   		//retorno de textStatus
				   		switch(textStatus)
						{
							case 'null':
							case 'error':
							case 'abort':
							case 'parsererror':
								txt_erro = "Ocorreu um erro: ";
							break;
							
							case 'timeout':
								txt_erro = "Ocorreu um erro de tempo na execução: ";
							break;
						}
				   		header_erro = 'ERRO '+ XMLHttpRequest['status'] +': '+ XMLHttpRequest['statusText'];
						msg_admin = 'Por favor informe este erro no e-mail: <strong>suporte@mixvirtual.com.br</strong>';
						msg_erro = txt_erro +'<br />'+ header_erro +'<br />'+ msg_admin;
						
						alert("Ocorreu um erro: "+ XMLHttpRequest['status'] +" - "+ XMLHttpRequest['statusText'] +".\nLeia a descrição do erro, na própria página.");
						setMessage(load_ajax, msg_erro, "notok", "", "");
				   }
		 });
	}
}

//retorna informações do domínio
function resetDominio()
{
	$_('InfoDominio').innerHTML = '';
	$_('infodom').style.display = 'none';
	$_('load_dom').innerHTML = '';
}
function checkDominio(dom, term, alvo, load, btn_info)
{
	var erro = 0;
	
	resetDominio();
	
	if($_v(dom) == "")
	{
		alert("Por favor, informe o DOMÍNIO");
		campoNOTOK($_(dom));
		erro++;
		return false;
	}
	if($_v(term) == "")
	{
		alert("Por favor, informe a TERMINAÇÃO do domínio");
		campoNOTOK($_(term));
		erro++;
		return false;
	}
	//no errors
	if(erro == '0')
	{
		campoOK($_(dom));
		campoOK($_(term));
		
		//load
		$_(load).innerHTML = "aguarde...";
		//valores e url para o ajax
		url = pathAjax() + "/check_dominio_2.ajax.php";
		pars = "d="+addSlashes($_v(dom)) + "&t="+$_v(term);
		
		//executa ajax(jquery)
		$.ajax({
				   type: "POST",
				   url: url,
				   data: pars,
				   //se executou o ajax
				   success: function(result)
				   {
						r = getRetorno(result);
						if(r[0] == 'ok')
						{
							$_(load).innerHTML = '<img src="'+pathImagens()+'/icon_bad.gif" />Registrado';
							$_(alvo).innerHTML = r[1];
							$_(btn_info).style.display = 'block';
						}
						if(r[0] == 'notok')
						{
							$_(load).innerHTML = '<img src="'+pathImagens()+'/icon_good.gif" />Liberado';
							$_(alvo).innerHTML = r[1];
							$_(btn_info).style.display = 'block';
						}
						if(r == 'erro')
						{
							alert("Não foi possível pesquisar o domínio. Por favor, tente novamente.");
							$_(load).innerHTML = 'Erro na pesquisa';
							return false;
						}
				   },
				   //se ocorreu algum erro
				   error: function(XMLHttpRequest, textStatus)
				   {
				   		var txt_erro, header_erro, msg_erro;
				   		
				   		//retorno de textStatus
				   		switch(textStatus)
						{
							case 'null':
							case 'error':
							case 'abort':
							case 'parsererror':
								txt_erro = "Ocorreu um erro: ";
							break;
							
							case 'timeout':
								txt_erro = "Ocorreu um erro de tempo na execução: ";
							break;
						}
				   		header_erro = 'ERRO '+ XMLHttpRequest['status'] +': '+ XMLHttpRequest['statusText'];
						msg_admin = 'Por favor informe este erro no e-mail: <strong>suporte@mixvirtual.com.br</strong>';
						msg_erro = txt_erro +'<br />'+ header_erro +'<br />'+ msg_admin;
						
						alert("Ocorreu um erro: "+ XMLHttpRequest['status'] +" - "+ XMLHttpRequest['statusText'] +".\nLeia a descrição do erro, na própria página.");
						setMessage($_(load), msg_erro, "notok", "", "");
				   }
		 });
	}
}
function buscaDominio(origem, container, nome_destino, id_destino)
{
	if($_v(origem) != "")
	{
		//mensagem que será mostrada durante o ajax
		$('#'+container).html(" buscando domínios...");

		//valores e url para o ajax
		url = pathAjax() + "/busca_dominio.ajax.php";
		pars = "origem="+$_v(origem) + "&container="+container + "&nome_destino="+nome_destino + "&id_destino="+id_destino;

		$.ajax({
			url: url,
			type: "POST",
			data: pars,
			success: function(retorno){
				$('#'+container).html( UTF8.decode(UTF8.encode(retorno)) );
			},
			error: function(){
				alert('Não foi possível executar a operação. Por favor, tente novamente.');
				$('#'+container).html('Ocorreu um erro!');
				return false;	
			}
		});
	}
}
function buscaServDominio(dominio)
{
	var d = $(dominio).val();
	if( d != '' )
	{
		//load ajax
		$('#load_serv_dom').html("buscando serviço(s) do domínio...");

		//valores e url para o ajax
		url = pathAjax() + "/busca_servico_dominio.ajax.php";
		pars = "d="+d;

		$.ajax({
			url: url,
			type: "POST",
			data: pars,
			success: function(retorno){
				$('#show_serv_dom').show();
				$('#serv_dom').html( retorno );
				$('#load_serv_dom').html('');
			},
			error: function(){
				alert('Não foi possível executar a operação. Por favor, tente novamente.');
				$('#load_serv_dom').html("Ocorreu um erro!");
				return false;	
			}
		});
	}
}
function setServDominio(servico)
{
	var s = $(servico).val();
	if( s != '' )
	{
		//se seleciou serviço já adicinado, reseta os outros
		if($(servico).attr('id') == 'getServicoDom')
		{
			var t = 'getServicoDom';
			$('#getServico option:first').val('nocheck');
			$('#getServico option:first').attr('selected','selected');
		}
		//se selecionou outros serviços
		if($(servico).attr('id') == 'getServico')
		{
			var t = 'getServico';
			$('#getServicoDom option:first').val('nocheck');
			$('#getServicoDom option:first').attr('selected','selected');
		}
					
		//valores e url para o ajax
		url = pathAjax() + "/busca_info_servico_dominio.ajax.php";
		pars = "s="+s + "&t="+t;

		$.ajax({
			url: url,
			type: "POST",
			data: pars,
			success: function(retorno){
				if(retorno == 'erro')
				{
					alert("Não foi possível obter as informações do serviços selecionado.\nPor favor tente novamente.");
					return false;
				}else{
					var bum = retorno.split('@@');
					$('#getDemonstrativo').val(bum[0]);
					$('#getValor').val(bum[1]);
				}
			},
			error: function(){
				alert('Não foi possível executar a operação. Por favor, tente novamente.');
				return false;	
			}
		});
	}
}

//grava url na sessão para redirecionar
//parâmetro redirecionar deve ser convertido com urlencode() do php
function setMustLogin(redirecionar)
{
	if(redirecionar == "")
	{
		alert("URL indefinida para redirecionamento");
		
	}else{
	
	//valores e url para o ajax
	url = pathAjax() + "/redirecionamento.ajax.php";
	pars = "redirecionamento="+addSlashes(redirecionar);
	setAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											if(resultado == "ok")
											{
												//pega caminho de imagens p/ obter server
												get_server = pathImagens();
												//corrige a url direta do server
												server = get_server.replace("/img","/acessar")
												//redireciona para login
												pageRedirect(server);
											}else{
												alert('Não foi possível redirecionar. Por favor, efetue login.');
												//se não redirecionou volta para a página de onde veio
												pageRedirect();
											}
										},
										onFailure: function()
										{ 
											alert('Não foi executar a operação. Por favor, efetue login.');
											return false;
										}
									}
							);
	}
}

//funcao usada para retornar os 
//valores dos radios/checkboxes selecionados na página
//os valores são colocados em um input hidden
// tipo => indica se a verificação é para checkbox ou radio
// id_form => id do formulário para verificar
// id_checkboxes => id do checkbox/radio ou do grupo deles
//o input hidden na página que recebe os selecionados deve ter o 
//nome do checkbox/radio (id_checks) adicionado do sufixo "_selecionados"
function getSelecionado(tipo, id_form, id_checks)
{
	//nome do form para contar campos
    var setform = $_(id_form);
	//nome dos checkboxes
	var setcheck = id_checks.id;
	//array para os selecionados
	var selecionados = new Array();
    //Percorre os elementos do formulário
    for(i=0; setform.length > i; i++)
	{
        if(setform.elements[i].id == setcheck)
		{
			//se for checkbox/checkbox e for selecionado
			if(setform.elements[i].type == tipo && setform.elements[i].checked == true)
			{
				//adiciona selecionados ao array
				selecionados.push(setform.elements[i].value);	
			}
        }   
    }

	//se selecionou checkboxes/radios
	if(selecionados.length > 0)
	{
		//adiciona os valores selecionados ao input text
		$_(setcheck+"_selecionados").value = selecionados;
		return true;
	}else{
		//se não selecionou nenhum, zera input text
		$_(setcheck+"_selecionados").value = '';
	    return false;	
	}
}

//função parecida com a acima, sendo que nesta é usado um campo adicional
//por exemplo: no caso das opções houver um item Outro/Outros, pega o valor 
//desse input text e joga no campo de validação
// tipo => indica se a verificação é para checkbox ou radio
// id_form => id do formulário para verificar
// id_checkboxes => id do checkbox/radio ou do grupo deles
//o input hidden na página que recebe os selecionados deve ter o 
//nome do checkbox/radio (id_checks) adicionado do sufixo "_selecionados"
//valor_comparacao => é o item que quando selecionado, deve mostrar o input text
//para o usuário digitar outra opção
function getSelecionadoeInput(tipo, id_form, id_checks, valor_comparacao)
{
	//nome do form para contar campos
    var setform = $_(id_form);
	//nome dos checkboxes
	var setcheck = id_checks.id;
	//array para os selecionados
	var selecionado = new Array();
    //Percorre os elementos do formulário
    for(i=0; setform.length > i; i++)
	{
        //verifica se é o nome dos checkboxes/radios 
        if(setform.elements[i].id == setcheck)
		{
			//se for checkbox/checkbox e for selecionado
			if(setform.elements[i].type == tipo && setform.elements[i].checked == true)
			{
				//adiciona selecionados ao array
				selecionado.push(setform.elements[i].value);	
			}
        }   
    }

	//se selecionou checkboxes/radios
	if(selecionado.length > 0)
	{
		if(selecionado == valor_comparacao)
		{
			$_(setcheck+"_container").style.display = "block";
			//zera o valor no campo para validação 
			$_(setcheck+"_selecionados").value = "";
			$_(setcheck+"_adicional").value = "";
			
			if($_(setcheck+"_adicional").value == "")
			{
				alert("Por favor, informe o campo " + $_(setcheck+"_adicional").name);
				campoNOTOK($_(setcheck+"_adicional"));
				return false;	
			}
						
		}else{
			$_(setcheck+"_container").style.display = "none";
			//adiciona os valores selecionados ao input text
			$_(setcheck+"_selecionados").value = selecionado;
			return true;
		}
	}else{
		if($_v(id_checks+"_adicional") != "")
		{
			//se preencheu o campo adiciona o valor no campo para validação
			$_(id_checks+"_selecionados").value = $_(id_checks+"_adicional").value;
		    return true;
		}else{
			alert("Por favor, informe o campo " + $_(id_checks+"_adicional").name);
			$_(id_checks+"_selecionados").value = "";
			campoNOTOK($_(id_checks+"_adicional"));
			return false;	
		}
	}
}

//esta função é acionada nos selects de estado para buscar as cidades referentes
//origem: nome do campo de estados que está chamando esta função e passando o valor (código) para busca
//container: será o id do elemento (div, span, li, etc) onde será gerado o select de cidades
//destino: será o nome do select de cidades que será gerado
//id_destino: id da cidade caso queira pré-selecionar no select
function buscaCidade(origem, container, nome_destino, id_destino)
{
	if($_v(origem) != "")
	{
		//mensagem que será mostrada durante o ajax para buscar as cidades
		$('#'+container).html(" buscando cidades...");

		//valores e url para o ajax		
		url = pathAjax() + "/busca_cidade.ajax.php";
		pars = "origem="+$_v(origem) + "&container="+container + "&nome_destino="+nome_destino + "&id_destino="+id_destino;

		$.ajax({
			url: url,
			type: "POST",
			data: pars,
			success: function(retorno){
				$('#'+container).html( UTF8.decode(UTF8.encode(retorno)) );
			},
			error: function(){
				alert('Não foi possível executar a operação. Por favor, tente novamente.');
				$('#'+container).html('Ocorreu um erro!');
				return false;	
			}
		});
	}
}

function checkCEP_DB(campo)
{
	cep = $_(campo).value;

	if(cep.length != 9)
	{
		alert("Formato de CEP inválido.\nDigite o CEP no formato 00000-000");
		campoNOTOK( $_(campo) );
		return false;
	}else{
	
	//mensagem que será mostrada durante o ajax
	$_("botao_form").style.display = "none";
	$_("loading_cep").innerHTML = " Pesquisando CEP, aguarde...";
	$_("loading_cep").className = "check";	
	
	//valores e url para o ajax
	url = pathAjax() + "/verifica_cep.ajax.php";
	pars = "cep="+cep;

	$.ajax({
		url: url,
		type: "POST",
		data: pars,
		success: function(retorno)
		{
			$_("loading_cep").innerHTML = "";
			campoOK( $_(campo) );

			if(retorno == "notok")
			{
				$_("getCEP").value = "";
				$_("loading_cep").innerHTML = " CEP não encontrado. Informe um CEP válido.";
				$_("loading_cep").className = "erro";
				$_("botao_form").style.display = "block";
				campoNOTOK( $_(campo) );
				return false;	
			}else{
				cep = retorno.split("##");
				$_("getEndereco").value = cep[0];
				$_("getBairro").value = cep[1];
				$_("getEstado").value = cep[3];
				buscaCidade("getEstado", "mostra_cidades", "getCidade", cep[2]);
				$_("botao_form").style.display = "block";
				//$_("getCidade").value = cep[2];	
				return true;
			}
		},
		error: function()
		{
			alert('Não foi possível executar a consulta do CEP. Por favor, tente novamente.');
			$('#'+container).html('Ocorreu um erro!');
			return false;	
		}
	});
	
	/*	
	newAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											$_("loading_cep").innerHTML = "";
											campoOK( $_(campo) );

											if(resultado == "notok")
											{
												$_("getCEP").value = "";
												$_("loading_cep").innerHTML = " CEP não encontrado. Informe um CEP válido.";
												$_("loading_cep").className = "erro";
												$_("botao_form").style.display = "block";
												campoNOTOK( $_(campo) );
												return false;	
											}else{
												cep = resultado.split("##");
												$_("getEndereco").value = cep[0];
												$_("getBairro").value = cep[1];
												$_("getEstado").value = cep[3];
												buscaCidade("getEstado", "mostra_cidades", "getCidade", cep[2]);
												$_("botao_form").style.display = "block";
												$_("getCidade").value = cep[2];	
												return true;
											}
										},
										onFailure: function()
										{ 
											alert('Não foi possível executar a consulta do CEP. Por favor, tente novamente.');
											return false
										}
									}
							);
	*/
	}
}

function checkLogradouro_DB(campo_endereco, campo_cidade)
{
	logradouro = $_(campo_endereco).value;
	cidade = $_(campo_cidade).value;
	
	if(logradouro == "")
	{
		alert("Por favor, informe o logradouro.");
		campoNOTOK($_(campo_endereco));
		return false;
	}
	
	if(cidade == "")
	{
		alert("Por favor, informe a cidade.");
		campoNOTOK($_(campo_cidade));
		return false;
	}
	
	//mensagem que será mostrada durante o ajax
	//$_("botao_form").style.display = "none";
	$_("loading_logradouro").innerHTML = "buscando...";
	
	//valores e url para o ajax
	url = "../source/ajax/verifica_logradouro.ajax.php";
	pars = "endereco="+logradouro + "&cidade="+cidade;

	newAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											$_("loading_logradouro").innerHTML = resultado;
											if(resultado == "notok")
											{
												//$_("loading_cep").innerHTML = " CEP não encontrado. Informe um CEP válido.";
												//$_("loading_cep").className = "erro";
												//$_("botao_form").style.display = "block";
												campoNOTOK(campo);
												return false;	
											}else{
												campoOK(campo);
												$_("loading_cep").innerHTML = "";
												cep = resultado.split("##");
												$_('getEndereco').value = cep[0];
												$_('getBairro').value = cep[1];
												$_('getEstado').value = cep[3];
												buscaCidade('getEstado', 'mostra_cidades', 'getCidade', cep[2]);
												$_("botao_form").style.display = "block";
												$_('getCidade').value = cep[2];	
												return true;
											}
										},
										onFailure: function()
										{ 
											alert('Não foi possível executar a consulta do CEP. Por favor, tente novamente.');
											return false
										}
									}
							);
}

//busca cep genérico
//campo = nome do campo de cep
//sufixo_campo = sufixo utilizado para identificar os e-lementos do endereço
function checkCEP_DB_generico(campo, sufixo_elemento)
{
	cep = campo.value;
	
	if(cep.length != 9)
	{
		alert("Formato de CEP inválido.\nDigite o CEP no formato 00000-000");
		campoNOTOK(campo);
		return false;
	}else{
	
	//mensagem que será mostrada durante o ajax
	$_("botao_form").style.display = "none";
	$_("loading_cep_"+sufixo_elemento).innerHTML = " Verificando CEP, aguarde...";
	$_("loading_cep_"+sufixo_elemento).className = "check";	
	
	//valores e url para o ajax
	url = "../source/ajax/verifica_cep.ajax.php";
	pars = "cep="+cep;

	newAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											if(resultado == "notok")
											{
												$_("loading_cep_"+sufixo_elemento).innerHTML = " CEP não encontrado. Informe um CEP válido.";
												$_("loading_cep_"+sufixo_elemento).className = "erro";
												$_("botao_form").style.display = "block";
												campoNOTOK($_(campo));
												return false;	
											}else{
												campoOK($_(campo));
												$_("loading_cep_"+sufixo_elemento).innerHTML = "";
												cep = resultado.split("##");
												$_('getEndereco_'+sufixo_elemento).value = cep[0];
												$_('getBairro_'+sufixo_elemento).value = cep[1];
												$_('getEstado_'+sufixo_elemento).value = cep[3];
												buscaCidade('getEstado_'+sufixo_elemento, 'mostra_cidades_'+sufixo_elemento, 'getCidade_'+sufixo_elemento, cep[2]);
												$_("botao_form").style.display = "block";
												$_('getCidade_'+sufixo_elemento).value = cep[2];	
												return true;
											}
										},
										onFailure: function()
										{ 
											alert('Não foi possível executar a consulta do CEP. Por favor, tente novamente.');
											return false
										}
									}
							);
	}
}

function checkCPF_DB(campo)
{
	//mensagem que será mostrada durante o ajax
	$_("loading_cpf").innerHTML = " Verificando CPF, aguarde...";
	$_("loading_cpf").className = "check";	
	
	//valores e url para o ajax
	url = "../source/ajax/verifica_cpf.ajax.php";
	pars = "cpf="+$_v(campo);
		
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												if(resultado == "ok")
												{
													$_("loading_cpf").innerHTML = " OK";
													$_("loading_cpf").className = "ok";
													return true;	
												}else{
													alert('O CPF informado já está cadastrado.');
													$_("loading_cpf").innerHTML = " CPF já cadastrado";
													$_("loading_cpf").className = "erro";
													campoNOTOK(campo);
													return false;	
												}
											},
											onFailure: function()
											{ 
												alert('Não foi possível executar a consulta. Por favor, tente novamente.');
												$_("loading_cpf").innerHTML = " Não foi possível executar a consulta. Por favor, tente novamente.";
												$_("loading_cpf").className = "erro";
												return false
											}
										}
								);
}

//verifica e-mail no banco 
function checkEMAIL_DB(campo)
{
	//mensagem que será mostrada durante o ajax
	$_("loading_email").innerHTML = " Verificando E-MAIL, aguarde...";
	$_("loading_email").className = "check";	
	
	//valores e url para o ajax
	url = "../source/ajax/verifica_email.ajax.php";
	pars = "email="+$_v(campo);
		
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												alert(resultado);
												//executa(resultado, funcao);
												//setAction(resultado);
												//funcao(resultado);
												
											},
											onFailure: function()
											{ 
												//alert('Não foi possível executar a consulta. Por favor, tente novamente.');
												$_("loading_email").innerHTML = " Não foi possível executar a consulta. Por favor, tente novamente.";
												$_("loading_email").className = "erro";
												return false
											}
										}
								);
}

function setValidacao(campo, tipo_validacao, rotulo)
{
	switch (tipo_validacao)
	{
		//validação de campo texto
		case "text":
			//se passar nocheck no campo, significa que não é pra validar
			if ($_v(campo) == "nocheck")
			{
				return true;
			}else{
				
				if($_v(campo) == "")
				{
					alert("Por favor, informe o campo " + rotulo);
					campoNOTOK($_(campo));
					return false;
				}else{
					campoOK($_(campo));
					return true;
				}
			}
		break;
		
		//validação de campo select
		case "select":
			//se passar nocheck no campo, significa que não é pra validar
			if($_v(campo) == "nocheck")
			{
				return true;
			}else{
				
				if ($_v(campo) == "")
				{
					alert("Por favor, selecione a opção no campo " + rotulo);
					campoNOTOK($_(campo));
					return false;
				}else{
					campoOK($_(campo));
					return true;
				}
			}
		break;
		
		//validação de campo radio/checkbox único
		case "radio":
		case "checkbox":
			if($_(campo).checked == false)
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}else{
				campoOK($_(campo));
				return true;
			}
		break;
		
		//validação de campo radio/checkbox qdo houver mais de um
		case "radio_varios":
		case "checkbox_varios":
		//retira o sufixo do nome do campo para fazer tab corretamente
		var trim_campo = campo.replace("_selecionados", "");
		
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(trim_campo));
				return false;
			}else{
				campoOK($_(trim_campo));
				return true;
			}
		break;
		
		//validação de campo texto
		case "pass":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				if($_v(campo).length < 4)
				{
					alert(rotulo + " muito pequena. Deve ter no mínimo 4 caracteres.");	
					campoNOTOK($_(campo));
					return false;
				}else{
					campoOK($_(campo));
					return true;
				}
			}
		break;
		
		//validação de campo e-mail
		case "email":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				if(!checkEMAIL(campo))
				{
					return false;
				}else{
					campoOK($_(campo));
					return true;	
				}
			}
		break;
		
		//validação de campo texto
		case "user":
			//se passar nocheck no campo, significa que não é pra validar
			if ($_v(campo) == "nocheck")
			{
				return true;
			}else{
				
				if($_v(campo) == "")
				{
					alert("Por favor, informe o campo " + rotulo);
					campoNOTOK($_(campo));
					return false;
				}
				if($_v(campo) != "")
				{
					if($_v(campo).length < 8)
					{
						alert("Informe um usuário com 8 caracteres");
						campoNOTOK($_(campo));
						return false;
					}else{
						campoOK($_(campo));
						return true;	
					}
				}
			}
		break;
		
		//validação de campo cpf
		case "cpf":
			//se passar nocheck no campo, significa que não é pra validar
			if ($_v(campo) == "nocheck") 
			{
				return true;
			}else{
				
				if($_v(campo) == "")
				{
					alert("Por favor, informe o campo " + rotulo);	
					campoNOTOK($_(campo));
					return false;
				}
				
				if($_v(campo) != "")
				{
					if(!checkCPF(campo))
					{
						return false;
					}else{
						campoOK($_(campo));
						return true;	
					}
				}
			}
		break;
		
		//validação de campo cnpj
		case "cnpj":
			//se passar nocheck no campo, significa que não é pra validar
			if ($_v(campo) == "nocheck")
			{
				return true;
			}else{
				
				if($_v(campo) == "")
				{
					alert("Por favor, informe o campo " + rotulo);	
					campoNOTOK($_(campo));
					return false;
				}
				
				if($_v(campo) != "")
				{
					if(!checkCNPJ(campo))
					{
						return false;
					}else{
						campoOK($_(campo));
						return true;	
					}
				}
			}
		break;
		
		//validação de campo data aceitando apenas presente ou futuras
		case "data_futura":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				//o parâmetro true indica que a data deve ser presente ou futura
				if(!checkDATA($_(campo), true))
				{
					return false;
				}else{
					campoOK($_(campo));
					return true;	
				}
			}
		break;
		
		//validação de campo data aceitando apenas presente ou futuras
		case "data_casamento":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				//o parâmetro true indica que a data deve ser presente ou futura
				if(!checkDATA($_(campo), 'data_casamento'))
				{
					return false;
				}else{
					campoOK($_(campo));
					return true;	
				}
			}
		break;
		
		//validação de campo data aceitando antigas, presente e futuras
		case "data":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				if(!checkDATA($_(campo)))
				{
					return false;
				}else{
					campoOK($_(campo));
					return true;	
				}
			}
		break;
		
		//validação de campo hora
		case "hora":
			if($_v(campo) == "")
			{
				alert("Por favor, informe o campo " + rotulo);	
				campoNOTOK($_(campo));
				return false;
			}
			
			if($_v(campo) != "")
			{
				if(!checkHORA($_(campo)))
				{
					return false;
				}else{
					campoOK($_(campo));
					return true;	
				}
			}
		break;
		
		//validação de campo cep
		case "cep":
			//se passar nocheck no campo, significa que não é pra validar
			if ($_v(campo) == "nocheck")
			{
				return true;
			}else{
				
				if ($_v(campo) == "")
				{
					alert("Por favor, informe o campo " + rotulo);
					campoNOTOK($_(campo));
					return false;
				}
				
				if ($_v(campo) != "")
				{
					if (!checkCEP(campo))
					{
						return false;
					}
					else {
						campoOK($_(campo));
						return true;
					}
				}
			}
		break;
	}
	
	return true;
}

//mostra loading
function setLoading(alvo, msg)
{
	if(msg != "")
	{
		$_(alvo).innerHTML = '<div class="show_loading"><div class="msg">'+ msg +' <span>Aguarde...</span></div></div>';
		//Effect.Appear($_(alvo));
		aparece(alvo);
	}
}

//mostra mensagens
function setMessage(alvo, msg, tipo, alerta, ancora)
{
	//pega caminha das imagens
	var img = pathImagens();
	//se passou a mensagem, executa
	if(msg != "")
	{
		//reseta load
		$('#'+alvo).html('');
		
		//se passou 'alerta', mostra o alert javascript com msg
		if(alerta != "")
		{
			alert(msg);
		}
		
		//mostra mensagem de resultado ok
		if(tipo == "ok")
		{
			$('#'+alvo).html('<a name="ancora"></a><div class="show_message_ok"> <div class="close"><a href="javascript:;" onclick="javascript: closeMessage(\''+ alvo +'\');" title="fechar este aviso"><img src="'+ img +'/icon_close.png"/></a></div> <div class="msg">'+ msg +'</div> </div>');
			
			//se passou 'ancora', redireciona para âncora da página
			if(ancora != "")
			{
				window.location = "#ancora";
			}
			

		//senão mostra mensagem de resultado notok
		}else{
			$('#'+alvo).html('<a name="ancora"></a><div class="show_message_notok"> <div class="close"><a href="javascript:;" onclick="javascript: closeMessage(\''+ alvo +'\');" title="fechar este aviso"><img src="'+ img +'/icon_close.png"/></a></div> <div class="msg">'+ msg +'</div> </div>');
			//se passou 'ancora', redireciona para âncora da página
			if(ancora != "")
			{
				window.location = "#ancora";
			}
		}
		/*
		$('#'+alvo).attr('display','block');
		$('#'+alvo).delay(10000).fadeOut(1000);
		*/
		closeMessage(alvo,10000);
		
		
		// se tem redirect
		if(arguments[5] != undefined && arguments[5] != '')
		{
			pageRedirect(arguments[5]);
		}
	}
}

//mostra mensagens
function closeMessage(x)
{
	
	//se informou delay
	if(arguments[1] != '' && arguments[1] != undefined)
	{
		$('#'+x).delay(arguments[1]).fadeOut(1000);
	}else{
		$('#'+x).html('');
	}
}

//quebra o retorno do ajax setAjax() executado
function getRetorno(retorno)
{
	//verifica o resultado
	if(retorno != "" || retorno != "undefined")
	{
		//verifica se a variavel é simples ou concatenada
		
		//se tem separador é variável concatenada
		if(retorno.search("=>") > 0)
		{
			//quebra a string em objeto=>resposta
			var quebra = retorno.split("=>");
			var objeto = quebra[0];
			var resposta = quebra[1];
			//terceiro valor, opcional qdo for necessário
			var opcional = quebra[2];
			//retorna o valor do ajax
			return quebra;
			
		//se não tem separador é variável simples
		}else{
			return retorno;
		}
	}
}

//busca info do cliente (portfólio)
function getPortfolio(id_folio)
{
	if (id_folio == "") 
	{
		alert("Portfólio não informado. Não foi possível atualizar informações.");
		return false;
		
	}else{

		runAjaxSingle('ajax/portfolio.ajax.php', 'portfolio='+id_folio, 'load_portfolio', "<img src=\""+ pathImagens() +"/loading_lite.gif\" /> <div>carregando informações, aguarde...</div>", returnGetPortfolio, false);
	}
}

function validaBuscaServico()
{
	if($_v('getServico') == "")
	{
		alert("Por favor, informe o Serviço para realizar a busca.");
		campoNOTOK($_('getServico'));
		return false;
	}
	
	$_('formBuscaServico').submit();
	return true;
}

function validaBuscaProduto()
{
	if($_v('getCategoria') == "" && $_v('getProduto') == "")
	{
		alert("Por favor, selecione a CATEGORIA ou informe o PRODUTO para realizar a busca.");
		campoNOTOK($_('getCategoria'));
		return false;
	}else{
		
		//se selecionou categoria e preencheu produto
		if($_v('getCategoria') != "" && $_v('getProduto') != "")
		{
			window.location = "?categoria=" + $_v('getCategoria') + "&produto=" + $_v('getProduto') + "#top";
			return true;
		}
		
		//se selecionou apenas a categoria
		if($_v('getCategoria') != "")
		{
			window.location = "?categoria=" + $_v('getCategoria') + "#top";
			return true;
		}
		
		//se preencheu apenas o produto
		if($_v('getProduto') != "")
		{
			window.location = "?produto=" + $_v('getProduto') + "#top";
			return true;
		}
	}
}

//busca produtos administrativo
function validaBuscaProd()
{
	if($_v("getBuscaMarca") == "" && $_v("getBuscaCategoria") == "" && $_v("getBuscaNome") == "")
	{
		alert("Por favor, selecione a MARCA, a CATEGORIA ou informe o PRODUTO para realizar a busca.");
		campoNOTOK($_("getBuscaMarca"));
		return false;
	}else{
		
		//se selecionou marca, categoria e preencheu nome produto
		if($_v("getBuscaMarca") != "" && $_v("getBuscaCategoria") != "" && $_v("getBuscaNome") != "")
		{
			window.location = "?product&marca=" + $_v("getBuscaMarca") + "&categoria=" + $_v("getBuscaCategoria") + "&nome=" + $_v("getBuscaNome") + "#top";
			return true;
		}
		
		//se selecionou categoria e marca
		if($_v("getBuscaMarca") != "" && $_v("getBuscaCategoria") != "")
		{
			window.location = "?product&marca=" + $_v("getBuscaMarca") + "&categoria=" + $_v("getBuscaCategoria") + "#top";
			return true;
		}
		
		//se selecionou apenas a marca
		if($_v("getBuscaMarca") != "" && $_v("getBuscaCategoria") == "")
		{
			window.location = "?product&marca=" + $_v("getBuscaMarca") + "#top";
			return true;
		}
		
		//se selecionou apenas a categoria
		if($_v("getBuscaCategoria") != "" && $_v("getBuscaMarca") == "")
		{
			window.location = "?product&categoria=" + $_v("getBuscaCategoria") + "#top";
			return true;
		}
		
		//se preencheu apenas o produto
		if($_v("getBuscaNome") != "")
		{
			window.location = "?product&nome=" + $_v("getBuscaNome") + "#top";
			return true;
		}
	}
}

//ao clicar em visualizar fotos do produto, 
//adiciona id do produto ao campo informado
//obs. 1 => evento hs.Expander.prototype.onBeforeClose do highslide, na página de produtos
//obs. 2 => o js getIDProd() fica no mesmo link que abre o highslide
function getIDProd(id_produto, tipo_acao)
{
	//campo que recebe id do produto
	$_("getIDProduto").value = id_produto;
	
	//campo que recebe o tipo de ação para o produto
	//foto ou arquivo (será utilizado para o 
	//onBeforeClose diferenciar se deve atualizar thumbs ou arquivos) 
	$_("getAcaoProduto").value = tipo_acao;
}
//deleta foto do produto
function delFotoProd(id_foto, id_produto)
{
	if (id_produto == "") 
	{
		alert("Produto não informado. Não é possível excluir a foto.");
		return false;
		
	}
	else if (id_foto == "") 
	{
		setMessage("show_pics_"+id_produto, "Foto não informada. Não é possível excluir.", "notok", "", "");
		return false;
		
	}else{
		
		//mostra mensagem para confirmar 
		var deleta = confirm("A foto será REMOVIDA! Deseja continuar?")
		
		//confirma exclusão
		if (deleta == true) 
		{
			//mensagem que será mostrada durante o ajax
			setLoading("show_pics_"+id_produto, "REMOVENDO FOTO");
	
			//valores e url para o ajax		
			url = "ajax/editar_foto_produto.ajax.php";
			pars = "getFoto="+id_foto + "&getAcao=excluir";
			
			setAjax = new Ajax.Request(url, {
												method: 'post',
												parameters: pars,
												onComplete: function(originalRequest)
												{
													resultado = originalRequest.responseText;
													//se deletou a foto do produto
													if(resultado == "delok")
													{
														setMessage("show_pics_"+id_produto, "Imagem removida com sucesso!", "ok", "alert", "");
														getThumbProd();
													}
													//se não encontrou o produto
													if(resultado == "delerro")
													{
														setMessage("show_pics_"+id_produto, "Produto não encontrado. Não foi possível atualizar as imagens.", "notok", "alert", "");
													}
													//se não deletou a foto do produto
													if(resultado == "delnotok")
													{
														setMessage("show_pics_"+id_produto, "Não foi possível remover a imagem. Por favor, tente novamente.", "notok", "alert", "");
													}
												},
												onFailure: function()
												{ 
													setMessage("show_pics_"+id_produto, "Não foi possível executar a operação.", "notok", "alert", "");
												}
											}
									);
		}
	}
}

//busca thumbs de fotos dos produtos, esta função atualiza os thumbs
function getThumbProd()
{
	id_produto = $_v("getIDProduto");
	
	if (id_produto == "") 
	{
		setMessage("show_pics_"+id_produto, "Produto não informado. Não foi possível atualizar os thumbs.", "notok", "", "");
		return false;
		
	}else{
		//loading do ajax
		$_("show_pics_"+id_produto).innerHTML = " <img src=\""+ pathImagens() +"/loading_lite.gif\" /> atualizando imagens, aguarde...";

		//valores e url para o ajax		
		url = "ajax/atualizar_thumb_produto.ajax.php";
		pars = "produto="+id_produto;
		
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												//adiciona html dos thumbs
												$_("show_pics_"+id_produto).innerHTML = resultado;
												//zera id do produto no campo
												$_("getIDProduto").value = "";
												//zera ação do produto no campo
												$_("getAcaoProduto").value = "";
											},
											onFailure: function()
											{ 
												setMessage("show_pics_"+id_produto, "Não foi possível executar a operação.", "notok", "alert", "");
											}
										}
								);
	}
}

//busca lista de arquivos do produto
function getFileProd()
{
	id_produto = $_v("getIDProduto");
	
	if(id_produto == "") 
	{
		setMessage("list_files_"+id_produto, "Produto não informado. Não foi possível listar os arquivos.", "notok", "", "");
		return false;
		
	}else{
		//loading do ajax
		$_("list_files_"+id_produto).innerHTML = " <img src=\""+ pathImagens() +"/loading_lite.gif\" /> atualizando arquivos, aguarde...";

		//valores e url para o ajax		
		url = "ajax/atualizar_file_produto.ajax.php";
		pars = "produto="+id_produto;
		
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												//adiciona html dos arquivos
												$_("list_files_"+id_produto).innerHTML = resultado;
												//zera id do produto no campo
												//$_("getIDProduto").value = "";
												//zera ação do produto no campo
												//$_("getAcaoProduto").value = "";
											},
											onFailure: function()
											{ 
												setMessage("list_files_"+id_produto, "Não foi possível executar a operação.", "notok", "alert", "");
											}
										}
								);
	}
}
//deleta arquivo do produto
function delFileProd(id_arquivo, id_produto)
{
	if (id_produto == "") 
	{
		alert("Produto não informado. Não é possível excluir o arquivo.");
		return false;
		
	}
	else if (id_arquivo == "") 
	{
		setMessage("list_files_"+id_produto, "Arquivo não informado. Não é possível excluir.", "notok", "", "");
		return false;
		
	}else{
		
		//mostra mensagem para confirmar 
		var deleta = confirm("O arquivo será REMOVIDO! Deseja continuar?")
		
		//confirma exclusão
		if (deleta == true) 
		{
			//mensagem que será mostrada durante o ajax
			setLoading("list_files_"+id_produto, "REMOVENDO ARQUIVO");
	
			//valores e url para o ajax		
			url = "ajax/editar_arquivo_produto.ajax.php";
			pars = "getArquivo="+id_arquivo + "&getAcao=excluir";
			
			setAjax = new Ajax.Request(url, {
												method: 'post',
												parameters: pars,
												onComplete: function(originalRequest)
												{
													resultado = originalRequest.responseText;
													//se deletou o arquivo do produto
													if(resultado == "delok")
													{
														setMessage("list_files_"+id_produto, "Arquivo removido com sucesso!", "ok", "alert", "");
														getFileProd();
													}
													//se não encontrou o produto
													if(resultado == "erro")
													{
														setMessage("list_files_"+id_produto, "Produto não encontrado. Não foi possível atualizar os arquivos.", "notok", "alert", "");
													}
													//se não deletou o arquivo do produto
													if(resultado == "delnotok")
													{
														setMessage("list_files_"+id_produto, "Não foi possível remover o arquivo. Por favor, tente novamente.", "notok", "alert", "");
													}
												},
												onFailure: function()
												{ 
													setMessage("list_files_"+id_produto, "Não foi possível executar a operação.", "notok", "alert", "");
												}
											}
									);
		}
	}
}

//mostra produtos do pedido, p/ solicitar troca/devolução minhaconta
function showProdutoPedido(id_container, total_pedidos)
{
	for(i=1; total_pedidos >= i; i++)
	{
		$_("pedido_"+i).style.display = 'none';
		if(id_container == i)
		{
			$_("pedido_"+id_container).style.display = 'block';			
		}
	} 
}

//ao clicar em visualizar fotos da galeria, 
//adiciona id da galeria ao campo informado
//obs. 1 => evento hs.Expander.prototype.onBeforeClose do highslide, na página de galerias
//obs. 2 => o js getIDGaleria() fica no mesmo link que abre o highslide
function getIDGaleria(id_galeria)
{
	//campo que recebe id da galeria
	$_("getIDGaleria").value = id_galeria;
}
//busca thumbs de fotos das galerias, esta função atualiza os thumbs
function getThumbGaleria()
{
	id_galeria = $_v("getIDGaleria");
	
	if (id_galeria == "") 
	{
		setMessage("show_pics_"+id_galeria, "Galeria não informada. Não foi possível atualizar os thumbs.", "notok", "", "");
		return false;
		
	}else{
		//loading do ajax
		$_("show_pics_"+id_galeria).style.display = "block";
		$_("show_pics_"+id_galeria).innerHTML = " <img src=\""+ pathImagens() +"/loading_lite.gif\" /> atualizando imagens, aguarde...";

		//valores e url para o ajax		
		url = "ajax/atualizar_thumb_galeria.ajax.php";
		pars = "galeria="+id_galeria;
		
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												//adiciona html dos thumbs
												$_("show_pics_"+id_galeria).innerHTML = resultado;
												//zera id da galeria no campo
												$_("getIDGaleria").value = "";
											},
											onFailure: function()
											{ 
												setMessage("show_pics_"+id_galeria, "Não foi possível executar a operação.", "notok", "alert", "");
											}
										}
								);
	}
}

//deleta foto da galeria
function delFotoGaleria(id_foto, id_galeria)
{
	if (id_galeria == "") 
	{
		alert("Galeria não informada. Não é possível excluir a foto.");
		return false;
		
	}
	else if (id_foto == "") 
	{
		setMessage("show_pics_"+id_galeria, "Foto não informada. Não é possível excluir.", "notok", "", "");
		return false;
		
	}else{
		
		//mostra mensagem para confirmar 
		var deleta = confirm("A foto será REMOVIDA! Deseja continuar?")
		
		//confirma exclusão
		if (deleta == true) 
		{
			//mensagem que será mostrada durante o ajax
			setLoading("show_pics_"+id_galeria, "REMOVENDO FOTO");
	
			//valores e url para o ajax		
			url = "ajax/editar_foto_galeria.ajax.php";
			pars = "getFoto="+id_foto + "&getAcao=excluir";
			
			setAjax = new Ajax.Request(url, {
												method: 'post',
												parameters: pars,
												onComplete: function(originalRequest)
												{
													resultado = originalRequest.responseText;
													//se deletou a foto da galeria
													if(resultado == "delok")
													{
														setMessage("show_pics_"+id_galeria, "Imagem removida com sucesso!", "ok", "alert", "");
														getThumbGaleria();
													}
													//se não encontrou a galeria
													if(resultado == "delerro")
													{
														setMessage("show_pics_"+id_galeria, "Galeria não encontrada. Não foi possível atualizar as imagens.", "notok", "alert", "");
													}
													//se não deletou a foto da galeria
													if(resultado == "delnotok")
													{
														setMessage("show_pics_"+id_galeria, "Não foi possível remover a foto da galeria. Por favor, tente novamente.", "notok", "alert", "");
													}
												},
												onFailure: function()
												{ 
													setMessage("show_pics_"+id_galeria, "Não foi possível executar a operação.", "notok", "alert", "");
												}
											}
									);
		}
	}
}

//deleta endereco de entrega
function delEndereco(id_endereco)
{
	if (id_endereco == "") 
	{
		alert("Endereço não informado. Não é possível excluir.");
		return false;
		
	}else{
		
		//mostra mensagem para confirmar 
		var deleta = confirm("Este endereço será REMOVIDO! Deseja continuar?")
		
		//confirma exclusão
		if (deleta == true) 
		{
			//mensagem que será mostrada durante o ajax
			setLoading("loading_del_"+id_endereco, "REMOVENDO ENDEREÇO");
	
			//valores e url para o ajax		
			url = "ajax/remove_endereco.ajax.php";
			pars = "endereco="+id_endereco;
			
			setAjax = new Ajax.Request(url, {
												method: 'post',
												parameters: pars,
												onComplete: function(originalRequest)
												{
													resultado = originalRequest.responseText;
													//se deletou o endereco
													if(resultado == "ok")
													{
														setMessage("loading_del_"+id_endereco, "Endereço removido com sucesso!", "ok", "alert", "");
														pageRedirect();
													}
													//se não encontrou o endereço
													if(resultado == "erro")
													{
														setMessage("loading_del_"+id_endereco, "Endereço não encontrado. Não foi possível remover.", "notok", "alert", "");
													}
													//se tem pedidos no endereço
													if(resultado == "erroped")
													{
														setMessage("loading_del_"+id_endereco, "Existem PEDIDOS cadastrados para este endereço. Não é possível removê-lo.", "notok", "alert", "");
													}
													//se não deletou o endereço
													if(resultado == "notok")
													{
														setMessage("show_pics_"+id_endereco, "Não foi possível remover o endereço. Por favor, tente novamente.", "notok", "alert", "");
													}
												},
												onFailure: function()
												{ 
													setMessage("loading_del_"+id_endereco, "Não foi possível executar a operação.", "notok", "alert", "");
												}
											}
									);
		}
	}
}

//busca de pedidos administrativo
function validaBuscaPedido()
{
	if($_v('getStatus') == "" && $_v('getCodigo') == "")
	{
		alert("Por favor, selecione o STATUS ou informe o CÓDIGO para buscar o pedido.");
		campoNOTOK($_('getStatus'));
		return false;
		
	}else{
		
		//se selecionou o status do pedido
		if($_v('getStatus') != "" && $_v('getCodigo') == "")
		{
			window.location = "?view&status=" + $_v('getStatus');
			return true;
		}
		
		//se informou o código identificador do pedido
		if($_v('getCodigo') != "")
		{
			window.location = "?view&codigo=" + $_v('getCodigo');
			return true;
		}
	}
}

//busca de clientes administrativo
function validaBuscaCliente()
{
	if($_v('getTipo') == "" && $_v('getNome') == "")
	{
		alert("Por favor, selecione o TIPO ou informe o NOME para buscar o cliente.");
		campoNOTOK($_('getTipo'));
		return false;
	}else{
		
		//se informou o nome do cliente/empresa
		if($_v('getNome') != "")
		{
			window.location = "?client&nome=" + $_v('getNome');
			return true;
		}else{
			//se selecionou o tipo de cliente
			if($_v('getTipo') != "")
			{
				window.location = "?client&tipo=" + $_v('getTipo');
				return true;
			}			
		}
	}
}

//ações para cliente (bloquear, liberar, excluir)
function acaoCliente(id_cliente, acao)
{
	var erro = 0;

	//se não passou o id do cliente
	if(id_cliente == "")
	{
		alert("ID do cliente não informado. Não é possível executar a ação.");
		erro++;
		return false;
	}
	
	//se não passou a ação
	if(acao == "")
	{
		alert("Ação não informada.");
		erro++;
		return false;
	}
	
	//se passou nas validações	
	if(erro == 0)
	{
		if(acao == "EXCLUIR")
		{
			//mostra mensagem para excluir 
			var executa = confirm("Deseja "+ acao +" este cliente?\nTodas as informações e pedidos deste cliente, serão removidos.")
			
		}else{
			//mostra mensagem para confirmar 
			var executa = confirm("Deseja "+ acao +" este cliente?")
		}
		
		//confirma mudança do status
		if(executa == true)
		{
			//oculta botão do form
			$_("btn_acoes_"+id_cliente).style.display = "none";
			
			//mensagem que será mostrada durante o ajax
			setLoading("loading_ajax_"+id_cliente, "EXECUTANDO AÇÃO");
	
			//se for bloqueio pega motivo
			if(acao == "BLOQUEAR")
			{
				motivo = $_v("getMotivo_"+id_cliente);
				
				//se não informou o motivo do bloqueio
				if(motivo == "")
				{
					setMessage("loading_ajax_"+id_cliente, "Por favor, informe o MOTIVO para o bloqueio.", "notok", "alert", "");
					//mostra botão do form
					$_("btn_acoes_"+id_cliente).style.display = "block";
					return false;
				}
				pars = "cliente="+id_cliente + "&motivo="+ motivo + "&acao="+acao;
				
			}else{
				pars = "cliente="+id_cliente + "&acao="+acao;
			}
			
			//valores e url para o ajax		
			url = "ajax/acao_cliente.ajax.php";
			
			setAjax = new Ajax.Request(url, {
												method: 'post',
												parameters: pars,
												onComplete: function(originalRequest)
												{
													resultado = originalRequest.responseText;
													if(resultado == "ok")
													{
														alert("Ação executada com sucesso!");
														pageRedirect();
													}
													
													if(resultado == "notok")
													{
														setMessage("loading_ajax_"+id_cliente, "O cliente informado não foi encontrado. Por favor tente novamente", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
													
													if(resultado == "errodel")
													{
														setMessage("loading_ajax_"+id_cliente, "Não foi possível EXCLUIR o cliente. Por favor tente novamente.", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
													
													if(resultado == "erroblock")
													{
														setMessage("loading_ajax_"+id_cliente, "Não foi possível BLOQUEAR o cliente. Por favor tente novamente.", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
													
													if(resultado == "errounblock")
													{
														setMessage("loading_ajax_"+id_cliente, "Não foi possível LIBERAR o cliente. Por favor tente novamente.", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
													
													if(resultado == "errofatura")
													{
														setMessage("loading_ajax_"+id_cliente, "Existem faturas ativas para este cliente. É necessário dar baixa antes de excluí-lo.", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
													
													if(resultado == "erropedido")
													{
														setMessage("loading_ajax_"+id_cliente, "Não foi possível excluir os PEDIDOS deste cliente. Por favor, tente novamente.", "notok", "alert", "");
														//mostra botão do form
														$_("btn_acoes_"+id_cliente).style.display = "block";
													}
												},
												onFailure: function()
												{ 
													setMessage("loading_ajax_"+id_cliente, "Não foi possível executar a operação. Por favor, tente novamente.", "notok", "alert", "");
													//mostra botão do form
													$_("btn_acoes_"+id_cliente).style.display = "block";
												}
											}
									);
		}
	}
}

//remove item do pedido 
function delItemP(load,info)
{
	//cancela pedido
	if(arguments[0] == 'del')
	{
		pars = "item=del";
		setLoading('load_pedido', 'Cancelando pedido');
	
	//remove item do pedido
	}else{
		
		if(info == "")
		{
			alert("Item não informado. Não é possível remover.");
			return false;
		}else{
			//mensagem que será mostrada durante o ajax
			img = pathImagens()+"/loading_lite.gif";
			$_('del_'+load).innerHTML = '<img src="'+ img +'"/> aguarde...';
			pars = "item="+info;
		}
			
	}
	
	//url para o ajax
	url = stringSEG($_v('uri'));
	
	$.ajax({
		url: url,
		type: "POST",
		data: pars,
		success: function(resultado)
		{
			if(resultado == 'erro')
			{
				alert('Nenhum item no pedido.\nNão é possível remover.');
			}
			if(resultado == 'del')
			{
				alert('Pedido cancelado com sucesso.');
				pageRedirect();
			}
			if(resultado == 'ok')
			{
				pageRedirect();
			}
		},
		error: function()
		{
			alert("Não foi possível executar a operação. Por favor, tente novamente.");
			return false
		}
	});
	
	/*	
	//url para o ajax
	url = stringSEG($_v('uri'));
	setAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											if(resultado == 'erro')
											{
												alert('Nenhum item no pedido.\nNão é possível remover.');
											}
											if(resultado == 'del')
											{
												alert('Pedido cancelado com sucesso.');
												pageRedirect();
											}
											if(resultado == 'ok')
											{
												pageRedirect();
											}
											
										},
										onFailure: function()
										{ 
											alert("Não foi possível executar a operação. Por favor, tente novamente.");
											return false
										}
									}
							);
	*/
}

//adiciona um novo desconto p/ produtos 
function addDesconto()
{
	if($_v("getAddDesconto") == "")
	{
		alert("Por favor informe o VALOR ou PERCENTUAL para o desconto");
		campoNOTOK($_("getAddDesconto"))
		return false;
	}
	
	//mensagem que será mostrada durante o ajax
	loading = pathImagens()+"/loading_lite.gif";
	$_("loading_add_desconto").innerHTML = '<img src="'+ loading +'"/> adicionando...';

	//oculta o botão de adicionar
	$_("btn_add_desconto").style.display = 'none';
	
	//valores e url para o ajax
	url = pathAjax() + "/adiciona_desconto.ajax.php";
	pars = "desconto="+$_v("getAddDesconto");
		
	setAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											
											//se desconto é texto
											if(resultado == "texto")
											{
												alert("O valor do desconto deve ser VALOR ou PERCENTUAL.\nNão pode ser texto.");
												//mostra o botão de adicionar
												$_("btn_add_desconto").style.display = 'block';
												//zera loading
												$_("loading_add_desconto").innerHTML = "";
												return false	
											}
											//se valor informado é muito grande
											else if(resultado == "tam")
											{
												alert("O valor do desconto informado tem muitos caracteres.\nDeve ter VALOR (máx. 6) ou PERCENTUAL(máx. 3)");
												//mostra o botão de adicionar
												$_("btn_add_desconto").style.display = 'block';
												//zera loading
												$_("loading_add_desconto").innerHTML = "";
												return false	
											}
											//se valor informado já existe
											else if(resultado == "jaexiste")
											{
												alert("O valor do desconto informado já existe.");
												//mostra o botão de adicionar
												$_("btn_add_desconto").style.display = 'block';
												//zera loading
												$_("loading_add_desconto").innerHTML = "";
												return false	
											}
											//se não inseriu o desconto
											else if(resultado == "notok")
											{
												alert("Não foi possível adicionar o desconto. Por favor tente novamente.");
												//mostra o botão de adicionar
												$_("btn_add_desconto").style.display = 'block';
												//zera loading
												$_("loading_add_desconto").innerHTML = "";
												return false
													
											}else{
												
												//se inseriu o desconto
												//pega resultado
												quebra = resultado.split("##");
											
												alert("Desconto adicionado com sucesso!");
												//mostra o botão de adicionar
												$_("btn_add_desconto").style.display = 'block';
												//zera loading
												$_("loading_add_desconto").innerHTML = "";
												//zera desconto
												$_("getAddDesconto").value = "";
												//adiciona o novo select
												$_("select_descontos").innerHTML = quebra[1];
											}
										},
										onFailure: function()
										{ 
											alert("Não foi possível executar a operação. Por favor, tente novamente.");
											//mostra o botão de adicionar
											$_("btn_add_desconto").style.display = 'block';
											//zera loading
											$_("loading_add_desconto").innerHTML = "";
											return false
										}
									}
							);
}

//verifica se bloqueador de popup está ativo
function getBloqueador()
{
    var janela = window.open("#","janelaBloq", "width=10, height=10, top=0, left=0, scrollbars=no, status=no, resizable=no, directories=no, location=no, menubar=no, titlebar=no, toolbar=no");
    if (janela == null)
    {
		return true;
    } 
	else
    {
        janela.close();
        return false;
    }
}

//fecha pedido 
function fechaPedido()
{
	//verifica se bloqueador de popup está ativo
	if(getBloqueador())
	{
		setMessage("loading_ajax", "Por favor, desative o BLOQUEADOR DE POPUP de seu navegador, para continuar.", "notok", "alert", "");
		return false;
	
	//se bloqueador está desativado	
	}else{
		
	//oculta botões ações
	$_("info_acoes_carrinho").style.display = 'none';
	$_("acoes_carrinho").style.display = 'none';
	
	//mensagem que será mostrada durante o ajax
	setLoading("loading_ajax", "ENVIANDO PEDIDO");
		
	//valores e url para o ajax
	url = "ajax/produtos_pagamento.ajax.php";
	pars = "identificador="+$_v("getCodigoIdentificador") + "&observacao="+$_v("getObservacao");
		
	setAjax = new Ajax.Request(url, {
										method: 'post',
										parameters: pars,
										onComplete: function(originalRequest)
										{
											resultado = originalRequest.responseText;
											
											//se deu algum erro ao salvar pedido
											if(resultado == "erro")
											{
												setMessage("loading_ajax", "Ocorreu um erro ao enviar seu pedido. Por favor tente novamente", "notok", "alert", "");
												return false	
											}
											//se não salvou o pedido
											else if(resultado == "notok")
											{
												setMessage("loading_ajax", "Não foi possível enviar seu pedido. Por favor tente novamente", "notok", "alert", "");
											
											//se salvou pedido	
											}else{
												
												setMessage("loading_ajax", "Seu pedido foi recebido com sucesso!", "ok", "", "");
												
												//adiciona o id do pedido criado, no form do pagseguro
												$_("ref_transacao").value = resultado;

												//adiciona botão finalizar
												$_("acoe_pagseguro").innerHTML = '<a href="?pedidos" class="btn_green_big" />ver status do pedido</a>';
													
												//mostra ações
												$_("acoes_carrinho").style.display = 'block';
													
												//se adicionou id do pedido
												if($_v("ref_transacao") != "")
												{
													//envia pagseguro
													$_("enviarpagseguro").submit();
													
												}
											}
											
										},
										onFailure: function()
										{ 
											setMessage("loading_ajax", "Não foi possível executar a operação. Por favor, tente novamente.", "notok", "alert", "");
											return false
										}
									}
							);
	}
}

// cancela pedido 
function cancelaPedido()
{
	//mostra mensagem para confirmar o cancelamento do pedido 
	var cancela = confirm("Este pedido será CANCELADO! Deseja continuar?")
	
	//confirma cancelamento do pedido
	if (cancela == true)
	{
		//mensagem que será mostrada durante o ajax
		setLoading("loading_ajax", "CANCELANDO PEDIDO");
			
		//valores e url para o ajax
		url = "../source/ajax/cancela_pedido.ajax.php";
		pars = "acao=cancelar";
			
		setAjax = new Ajax.Request(url, {
											method: 'post',
											parameters: pars,
											onComplete: function(originalRequest)
											{
												resultado = originalRequest.responseText;
												if(resultado == "ok")
												{
													pageRedirect("?carrinho");
												}else{
													alert("Não foi possível CANCELAR o pedido");				
												}
												
											},
											onFailure: function()
											{ 
												setMessage("loading_ajax", "Não foi possível executar a operação. Por favor, tente novamente.", "notok", "alert", "");
												return false
											}
										}
								);
	}
}

// valida o local de entrega e valor do 
// frete no fechamento do pedido 
function validaEntrega()
{
	if($_v("getFrete") == "")
	{
		alert("Por favor, selecione o ENDEREÇO DE ENTREGA para calcular o frete.");
		return false;
	}
}

// verifica o tipo de cadastro (pf ou pj) e mostra os campos cpf ou cnpj
function checkTipo(campo)
{
	//se é tipo pf, passa nocheck para cnpj (não validar)
    if (campo.value == "pf")
	{
		$_("getCPF").value = '';//zera o campo (nocheck)
        $_("show_info_pf").style.display = 'block';
		$_("show_info_pj").style.display = 'none';
		$_("getEmpresa").value = "nocheck";//passa nocheck no campo, para não validar
		$_("getCNPJ").value = "nocheck";//passa nocheck no campo, para não validar
    }
	
	//se é tipo pj, passa nocheck para cpf (não validar)
	if (campo.value == "pj")
	{
		$_("getCNPJ").value = '';//zera o campo (nocheck)
		$_("getEmpresa").value = '';//zera o campo (nocheck)
		$_("show_info_pj").style.display = 'block';
		$_("show_info_pf").style.display = 'none';
		$_("getCPF").value = "nocheck";//passa nocheck no campo, para não validar
	}
}

// verifica se funcionário atende ou não no suporte MSN
function checkAtende(campo)
{
	//se atende
    if(campo.value == "1")
	{
		$_("getCodigoMSN").value = '';//zera o campo (nocheck)
        $_("add_codigo_msn").style.display = 'block';
    }
	
	//se não atende
	if(campo.value == "0")
	{
        $_("add_codigo_msn").style.display = 'none';
		$_("getCodigoMSN").value = 'nocheck';//zera o campo (nocheck)
	}
}

// alterna boxes acessar
function actionAcessar(elem)
{
	if(elem == 'access')
	{
		$_('c_add').style.display = 'none';
		aparece('c_access');
	}
	if(elem == 'add')
	{
		$_('c_access').style.display = 'none';
		aparece('c_add');
	}
}
// alterna boxes (minhaconta)
function actionConta(elem)
{
	if(elem == 'cad')
	{
		$_('c_show_endereco').style.display = 'none';
		$_('c_show_pic').style.display = 'none';
		$_('c_show_dep').style.display = 'none';
		aparece('c_show_cadastro');
		$('#tab_secao').val('cad');
	}
	if(elem == 'end')
	{
		$_('c_show_cadastro').style.display = 'none';
		$_('c_show_pic').style.display = 'none';
		$_('c_show_dep').style.display = 'none';
		aparece('c_show_endereco');
		$('#tab_secao').val('end');
	}
	if(elem == 'pic')
	{
		$_('c_show_cadastro').style.display = 'none';
		$_('c_show_endereco').style.display = 'none';
		$_('c_show_dep').style.display = 'none';
		aparece('c_show_pic');
		$('#tab_secao').val('pic');
	}
	if(elem == 'dep')
	{
		$_('c_show_cadastro').style.display = 'none';
		$_('c_show_endereco').style.display = 'none';
		$_('c_show_pic').style.display = 'none';
		aparece('c_show_dep');
		$('#tab_secao').val('dep');
	}
	if(elem == 'fin')
	{
		$_('c_show_conta').style.display = 'none';
		$_('c_show_fatura_h').style.display = 'none';
		aparece('c_show_fatura');
		$('#tab_secao').val('fin');
	}
	if(elem == 'pag')
	{
		$_('c_show_fatura').style.display = 'none';
		$_('c_show_fatura_h').style.display = 'none';
		aparece('c_show_conta');
		$('#tab_secao').val('pag');
	}
	if(elem == 'fin_h')
	{
		$_('c_show_conta').style.display = 'none';
		$_('c_show_fatura').style.display = 'none';
		aparece('c_show_fatura_h');
		$('#tab_secao').val('fin_h');
	}
	if(elem == 'ss')
	{
		$('#tab_secao').val('ss');
	}
	if(elem == 'spO')
	{
		$_('c_show_close').style.display = 'none';
		aparece('c_show_open');
		$('#tab_secao').val('spO');
	}
	if(elem == 'spC')
	{
		$_('c_show_open').style.display = 'none';
		aparece('c_show_close');
		$('#tab_secao').val('spC');
	}
}

// imprimir tela
function cPrint()
{
	window.focus();
	window.print();
	return false;
}

//##################### FUNÇÕES passadas para o ajax genérico setAjax() #####################
//deve ser passado para setAjax, somente o NOME das function definidas aqui

//return genérico p/ utilizar em 
//várias funções que tem este mesmo retorno
function returnGenerico(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("loading_ajax", "Informações salvas com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
	
	if(resultado == "notok")
	{
		setMessage("loading_ajax", "Nenhuma informação alterada.", "notok", "alert", "");
	}
	
	if(resultado == "erro")
	{
		setMessage("loading_ajax", "Não foi possível salvar as informações. Por favor tente novamente.", "ok", "alert", "");
	}
}

function returnGetPortfolio(retorno)
{
	if(retorno == 'notok')
	{
		$("#load_portfolio").html('<div class="erro">As informações do projeto não foram encontradas. Por favor, tente novamente</div>');
	}else{
		//retorna info portfolio
		$("#show_portfolio").html(retorno);
		//oculta loading
		$("#load_portfolio").html('');
		$("#load_portfolio").hide();
		
		$('.tip').tooltip({
			track: true,
			showURL: false,
			delay: 1
		});
	}
}
			
function returnCadastro(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "errouser")
	{
		alert("O USUÁRIO informado, já está cadastrado.\nPor favor, escolha/digite outro usuário.")
		//mensagem de resultado do ajax
		$_("msg_usuario").innerHTML = " USUÁRIO já cadastrado";
		$_("msg_usuario").className = "erro";
		setMessage("load_add", "O USUÁRIO informado, já está cadastrado. Por favor, escolha/digite outro usuário.", "notok", "", "");
	}
	if(resultado == "erros")
	{
		alert("O DOCUMENTO(cpf/cnpj) e E-mail informados, já estão cadastrados.")
		//mensagem de resultado do ajax
		$_("msg_doc").innerHTML = " DOCUMENTO já cadastrado";
		$_("msg_doc").className = "erro";
		$_("msg_email").innerHTML = " E-MAIL já cadastrado";
		$_("msg_email").className = "erro";
		setMessage("load_add", "O DOCUMENTO(cpf/cnpj) e E-mail informados, já estão cadastrados.", "notok", "", "");
	}
	if(resultado == "errodoc")
	{
		alert("O DOCUMENTO(cpf/cnpj) informado, já está cadastrado.")
		//mensagem de resultado do ajax
		$_("msg_doc").innerHTML = " DOCUMENTO já cadastrado";
		$_("msg_doc").className = "erro";
		$_("msg_email").innerHTML = "";
		setMessage("load_add", "O DOCUMENTO(cpf/cnpj) informado, já está cadastrado.", "notok", "", "");
	}
	
	if(resultado == "erroemail")
	{
		alert("O E-MAIL informado, já está cadastrado.")
		//mensagem de resultado do ajax
		$_("msg_email").innerHTML = " E-MAIL já cadastrado";
		$_("msg_email").className = "erro";
		$_("msg_doc").innerHTML = "";
		setMessage("load_add", "O E-MAIL informado, já está cadastrado.", "notok", "", "");
	}
	if(resultado == "notok")
	{
		setMessage("load_add", "Não foi possível criar sua conta. Por favor tente novamente.", "ok", "alert", "");
	}
	if(resultado == "ok")
	{
		$_("msg_doc").innerHTML = "";
		$_("msg_email").innerHTML = "";	
		setMessage("load_add", "Sua CONTA foi criada com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
	
	if(resultado == "edit_email")
	{
		setMessage("load_add", "O E-MAIL informado já está cadastrado. Por favor informe outro e-mail.", "notok", "alert", "");
		$_("msg_email").innerHTML = "Erro: E-mail já cadastrado";
		$_("msg_email").className = "erro";
		$_("msg_senha").innerHTML = "";
	}
	if(resultado == "edit_senha")
	{
		setMessage("load_add", "A SENHA informada é muito pequena. Deve ter no mínimo 4 e no máximo 8 caracteres.", "notok", "alert", "");
		$_("msg_senha").innerHTML = "Erro: Senha muito pequena";
		$_("msg_senha").className = "erro";
		$_("msg_email").innerHTML = "";
	}
	if(resultado == "edit_erro")
	{
		setMessage("load_add", "Cadastro não encontrado. Não foi possível atualizar.", "notok", "alert", "");
	}
	if(resultado == "edit_notok")
	{
		setMessage("load_add", "Nenhuma informação alterada. Por favor tente novamente.", "notok", "alert", "");
	}
	if(resultado == "edit_ok")
	{
		$_("msg_senha").innerHTML = "";
		$_("msg_email").innerHTML = "";	
		setMessage("load_add", "Seu CADASTRO foi atualizado com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
}
function returnImgCadastro(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_img", "Opções de imagem salvas com sucesso!", "ok", "alert", "");
		redir = pageAtual()+'&v=pic';
		pageRedirect(redir);
	}
	if(resultado == "notok")
	{
		setMessage("load_img", "Não foi possível atualizar as opções de imagem. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "erro")
	{
		setMessage("load_img", "Cadastro não encontrado. Não é possível atualizar.", "notok", "alert", "");
	}
}
function returnPlanCadastro(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_plano", "Plano alterado com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("load_plano", "Não foi possível alterar o plano. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "erro")
	{
		setMessage("load_plano", "Plano não encontrado. Não é possível alterar.", "notok", "alert", "");
	}
	if(resultado == "plano")
	{
		setMessage("load_plano", "O plano selecionado é igual ao plano atual. Por favor, selecione outro plano.", "notok", "alert", "");
	}
	if(resultado == "fatura")
	{
		setMessage("load_plano", "Existe fatura pendente para este domínio. Não é possível alterar o plano. Acesse a opção \"Financeiro\".", "notok", "alert", "");
	}
}
function returnTicket(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_ticket", "Ticket criado e enviado com sucesso! Aguarde sua resposta em breve.", "ok", "alert", "");
		pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("load_ticket", "Não foi possível salvar o ticket. Por favor, tente novamente.", "notok", "alert", "");
	}
}
function returnDepoimento(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_dep", "Depoimento salvo com sucesso!", "ok", "alert", "");
		redir = pageAtual()+'&v=dep';
		pageRedirect(redir);
	}
	if(resultado == "notok")
	{
		setMessage("load_dep", "Não foi possível salvar o depoimento. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "erro")
	{
		setMessage("load_dep", "Cadastro não encontrado. Não é possível salvar o depoimento.", "notok", "alert", "");
	}
}

// contratação de serviços
function returnContratar(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado[0] == "errohost")
	{
		setMessage("load_pedido", "Já existe plano de hospedagem para o domínio informado ("+ resultado[1] +"). Você pode alterar o plano acessando a opção \"Minha Conta -> Serviços\".", "notok", "alert", "");		
	}
	if(resultado[0] == "errodom")
	{
		setMessage("load_pedido", "O domínio informado ("+ resultado[1] +"), já está cadastrado para outro cliente. Por favor, informe outro domínio.", "notok", "alert", "");		
	}
	if(resultado[0] == "erroadd")
	{
		setMessage("load_pedido", "Já foi adicionado plano de hospedagem para o domínio informado ("+ resultado[1] +"). Você pode remover o plano e adicionar outro, em seu pedido.", "notok", "alert", "");
		pageRedirect('../pedido');		
	}
	if(resultado == "minhaconta")
	{
		alert("Pedido enviado com sucesso!\nPor favor, acesse seu e-mail e verifique as informações.");
		pageRedirect('../'+resultado+'?s=2');
	}
	if(resultado == "pedido")
	{
		alert("O item foi adicionado ao pedido com sucesso!\nVocê será redirecionado(a) para seu pedido.");
		pageRedirect('../'+resultado);
	}
	if(resultado == "acessar")
	{
		alert("Seu pedido foi salvo com sucesso!\nAgora você irá acessar sua conta para continuar.");
		pageRedirect('../'+resultado);
	}
	if(resultado == "erro")
	{
		setMessage("load_contratar", "Não foi possível salvar as informações de seu pedido. Por favor, tente novamente.", "notok", "alert", "");
	}
}

function returnOpiniao(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("loading_opiniao", "Sua opinião foi salva com sucesso! Agradecemos sua classificação.", "ok", 'alert', '');
		pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("loading_opiniao", "Não foi possível enviar/salvar as informações. Por favor, tente novamente.", "notok", 'alert', '');
	}
	if(resultado == "erro")
	{
		setMessage("loading_opiniao", "Você já enviou sua opinião. Agradecemos suas informações.", "notok", 'alert', '');
	}
}
function returnContato(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("loading_contato", "Sua mensagem foi enviada com sucesso!", "ok", "alert", '');
		pageRedirect("../atendimento");
	}else{
		setMessage("loading_contato", "Não foi possível enviar sua mensagem.", "notok", "alert", '');
	}
}

function returnEndereco(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_endereco", "O ENDEREÇO foi adicionado com sucesso!", "ok", "alert", "");
		redir = pageAtual()+'&v=end';
		pageRedirect(redir);
	}
	if(resultado == "notok")
	{
		setMessage("load_endereco", "Não foi possível ADICIONAR o endereço. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "edit_ok")
	{
		setMessage("load_endereco", "O ENDEREÇO foi alterado com sucesso!", "ok", "alert", "");
		redir = pageAtual()+'&v=end';
		pageRedirect(redir);
	}
	if(resultado == "edit_notok")
	{
		setMessage("load_endereco", "Não foi possível ALTERAR o endereço. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "edit_erro")
	{
		setMessage("load_endereco", "ENDEREÇO não encontrado. Não foi possível alterar.", "notok", "alert", "");
	}
}

function returnAddFatura(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_fatura", "Fatura adicionada com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("load_fatura", "Não foi possível salvar a fatura. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "erro")
	{
		setMessage("load_fatura", "Cliente/Usuário não encontrado. Não é possível inserir.", "notok", "alert", "");
	}
}

function returnEditFatura(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_fatura", "Fatura alterada com sucesso!", "ok", "alert", "");
		pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("load_fatura", "Não foi possível alterar a fatura. Por favor, tente novamente.", "notok", "alert", "");
	}
	if(resultado == "erro")
	{
		setMessage("load_fatura", "Fatura não encontrada. Não é possível alterar.", "notok", "alert", "");
	}
}

function returnSendFatura(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		setMessage("load_send", "Fatura enviada com sucesso!", "ok", "alert", "");
		//pageRedirect();
	}
	if(resultado == "notok")
	{
		setMessage("load_send", "Fatura não encontrada. Não é possível enviar.", "notok", "alert", "");
	}
}

//login usuário
function returnAcessar(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	//e-mail não cadastrado
	if(resultado == "erroemail")
	{
		alert("O e-mail informado não está cadastrado.");
		setMessage("load_access", "O e-mail informado não está cadastrado.", "notok", '', '');
	}
	//senha não confere
	else if(resultado == "errosenha")
	{
		alert("Senha incorreta. Por favor, tente novamente.");
		setMessage("load_access", "Senha incorreta. Por favor, tente novamente.", "notok", '', '');
	}
	//login inativo
	else if(resultado == "errostatus") 
	{
		alert("O e-mail informado encontra-se inativo.\nPor favor, entre em contato com nosso suporte.");
		setMessage("load_access", "O e-mail informado encontra-se inativo. <br/> Por favor, entre em contato com nosso suporte.", "notok", '', '');
	}
	//login bloqueado
	else if(resultado == "errobloqueio") 
	{
		alert("O e-mail informado encontra-se bloqueado.\nPor favor, entre em contato com nosso suporte.");
		setMessage("load_access", "O e-mail informado encontra-se bloqueado. <br/> Por favor, entre em contato com nosso suporte.", "notok", '', '');
	
	}else {
		
		//SE LOGIN ESTÁ OK, VERIFICA TIPO DE USUÁRIO	
		switch (resultado[0]) 
		{
			case "usuario":
				//se não exite o usuário cadastrado
				if(resultado[1] == "notok") 
				{
					alert("Usuário não cadastrado para sua conta.\nPor favor, entre em contato com nosso suporte.");
					setMessage("load_access", "Usuário não cadastrado para sua conta.<br/> Por favor, entre em contato com nosso suporte.", "notok", '', '');
				}
				//se logou
				else if(resultado[1] == "ok") 
				{
					pageRedirect( "../minhaconta" );
				}
				//se logou e tem redirecionamento
				else
				{
					pageRedirect( resultado[1] );
				}
			break;
			
			case "admin":
				//se logou
				if(resultado[1] == "ok") 
				{
					pageRedirect();
				}
				//se logou e tem redirecionamento
				else
				{
					pageRedirect( resultado[1] );
				}
			break;
		}
	}
}

function returnLembrar(retorno)
{
	//pega resultado do setAjax()
	//para acessar os valores, navegue pelos índices do array gerado em getRetorno()
	//exemplo: resultado[0], resultado[1] e resultado[2]
    var resultado = getRetorno(retorno);

	if(resultado == "ok")
	{
		//criou e salvou a nova senha
		setMessage("load_lembrar", "Sua senha foi enviada com sucesso! Por favor, verifique seu e-mail.", "ok", "alert", "");
		redir = pageAtual();
		pageRedirect(redir);
	}
	//e-mail não cadastrado
	if(resultado == "erroemail")
	{
		setMessage("load_lembrar", "O e-mail informado não está cadastrado.", "notok", 'alert', '');
	}
	//login bloqueado
	if(resultado == "errobloqueio")
	{
		setMessage("load_lembrar", "O e-mail informado encontra-se bloqueado. Por favor, entre em contato com nosso suporte.", "notok", 'alert', '');
	}
	//login inativo
	if(resultado == "errostatus")
	{
		setMessage("load_lembrar", "O e-mail informado encontra-se inativo. Por favor, entre em contato com nosso suporte.", "notok", 'alert', '');
	}
	//não salvou a nova senha no banco
	if(resultado == "notok") 
	{
		setMessage("load_lembrar", "Não foi possível gerar sua nova senha. Por favor, tente novamente.", "notok", 'alert', '');
	}
	/////////////// APAGAR A VISUALIZAÇÃO DA SENHA DEPOIS (segurança)
	//salvou a senha mas não enviou e-mail
	if(resultado[0] == "erroenvio") 
	{
		setMessage("load_lembrar", "Sua nova senha foi gerada mas ocorreu um erro ao tentar enviá-la. Sua nova senha é: "+resultado[1], "notok", 'alert', '');
	}
}

function rolagem(alvo)
{
	Effect.ScrollTo($_(alvo), { duration:'0.2', offset:-20 });
}
function desaparece(elem)
{
	//Effect.Fade($_(elem));
	$('#'+elem).fadeOut();
}
function aparece(elem)
{
	//Effect.Appear($_(elem));
	$('#'+elem).fadeIn();
}
function mostra(elemento)
{
	$_(elemento).style.display = "block";
	return false;
}

function desmostra(elemento)
{
	$_(elemento).style.display = "none";
	return false;
}

function alterna(elemento)
{
	if($_(elemento).style.display == "none")
	{
		$_(elemento).style.display = "block";
		return false;
	}else{
		$_(elemento).style.display = "none";
		return false;
	}
}

//função alternativa para executar função como argumento em setAjax()
function executa(str, func)
{
	//chama a função e o argumento dela
   func(str)           
}

//##################### fim FUNÇÕES passadas para setAjax() #####################


//pega a página atual do browser
function pageAtual()
{
	var pagina = parent.location.href;
	return pagina;
}
//redirect p/ mesma página (refresh)
function pageRedirect()
{
	//se informou url, redireciona para o endereço especificado 
	if(arguments[0])
	{
		window.parent.location.href = arguments[0];
		
	//senão volta para a mesma página
	}else{
		window.parent.location.href = self.location;
	}
}

// ######################### TESTAR SCRIPTS #########################

//limpa todos os caracteres especiais do campo solicitado  
function filtraCampo(campo)
{  
	var s = "";  
	var cp = "";  
	vr = campo.value;  
	tam = vr.length;  
		for (i = 0; i < tam ; i++)
		{    
			if(vr.substring(i,i + 1) != "/" && vr.substring(i,i + 1) != "-" && vr.substring(i,i + 1) != "."  && vr.substring(i,i + 1) != "," )
			{  
				s = s + vr.substring(i,i + 1);
			}  
		}  
	campo.value = s;  
	return cp = campo.value  
}
//remove caracteres especiais
function filtraCharCampo(campo)
{
    // Torna o valor em array //
    var c = campo.value.split('');
    var reg = /([a-z0-9\-])/gi;
    var v = '';
    for (i = 0; i < c.length; i++)
	{
        bo = c[i].match(reg);
        if(bo) v += c[i];
    }
    campo.value = v;
}

//onkeypress="return formataInteiro(event)"
function formataInteiro(e)
{
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	if(keynum == undefined || keynum == 8) return true;
	keychar = String.fromCharCode(keynum);
	numcheck = /[0-9]/;
	return numcheck.test(keychar);
}

// Formata o campo CEP
//onkeyup="formataCEP(this)"
function formataCEP(campo){
	campo.value = filtraCampo(campo);
	vr = campo.value;
	tam = vr.length;

	if( tam <= 3 )
		campo.value = vr;
	if( tam > 3 ) 
		campo.value = vr.substr(0, tam-3 ) + '-' + vr.substr(tam-3, tam);
}
//onkeypress="return limpaTeclasCEP(event)"
function limpaTeclasCEP(e)
{
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	if(keynum == undefined || keynum == 8) return true;

	keychar = String.fromCharCode(keynum);
	numcheck = /[0-9-]/;
	return numcheck.test(keychar);
}

// Formata o campo valor
//onkeyup="formataValor(this)"
function formataValor(campo) {
	campo.value = filtraCampo(campo);
	vr = campo.value;
	tam = vr.length;

	if( tam <= 2 ){ 
 		campo.value = vr ; }
 	if( (tam > 2) && (tam <= 5) ){
 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if( (tam >= 6) && (tam <= 8) ){
 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if( (tam >= 9) && (tam <= 11) ){
 		campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if( (tam >= 12) && (tam <= 14) ){
 		campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if( (tam >= 15) && (tam <= 18) ){
 		campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
 		
}
//onkeypress="return limpaTeclasValor(event)"
function limpaTeclasValor(e)
{
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event){
		keynum = e.keyCode;
	}else if(e.which){
		keynum = e.which;
	}
	if(keynum == undefined || keynum == 8) return true;
	
	keychar = String.fromCharCode(keynum);
	numcheck = /[0-9\,\.]/;
	return numcheck.test(keychar);
}

//remove frame da página
function removeFrame()
{
	if(top.location != self.location)
	{
		top.location = self.location
	} 
}

function setAba(numero_aba, qtd_frames)
{
	for(i=1; i <= qtd_frames; i++)
	{
		if(i == numero_aba)
		{
			$('#aba'+i).attr('class','aba_over');
			$('#frame'+numero_aba).fadeIn();
			//$('frame'+numero_aba).setOpacity(0);
			//$('#frame'+numero_aba).attr('display','block');

		}else{
			$('#aba'+i).attr('class','aba_desover');
			$('#frame'+i).hide();
		}
	}
}

function setButton(numero_btn, qtd_frames)
{
	for(i=1; i <= qtd_frames; i++)
	{
		if(i == numero_btn)
		{
			$_("btn"+i).className = 'btn'+ i +'_click';
			$_("frame"+i).style.display = "block";
		}else{
			$_("btn"+i).className = 'btn'+i;
			$_("frame"+i).style.display = "none";
		}
	}
}

function setNav(numero_btn, qtd_btn)
{
	for(i=1; i <= qtd_btn; i++)
	{
		if(i == numero_btn)
		{
			$_("btn"+i).className = 'click';
		}else{
			$_("btn"+i).className = 'over';
		}
	}
}

/* FUNÇÕES PARA O SLIDESHOW(BG) */
function focusThumb(img)
{
	//borda no thumb
	var thumb = img;
	$_(thumb).className = "borda_on";//borda no thumb clicado
	
	//campo com bgs
	var pics = $_v("getbg").split(",");
	//busca a posição da foto, nos bgs informados
	for (i=0; pics.length > i; i++)
	{
		//se encontrou bg, atual, incrementa p/ próxima
		if(pics[i] != img)
		{
			//borda no thumb
			thumb_off = pics[i];
			$_(thumb_off).className = "borda_off";//borda no thumb clicado
		}
	}
}
function changeBG(img)
{
	$_("timer").value = delay_slideshow;
	
	//imagem inicial, qdo pausado
	$_("startshow").value = img;
	//ativa/desativa slideshow
	var acao = $_v("ctrl");
	statusSlideshow(acao, img);
	
	//campo com bgs
	var pics = $_v("getbg").split(",");
	//busca a posição da foto, nos bgs informados
	for (i=0; pics.length > i; i++)
	{
		//se encontrou bg, atual, incrementa p/ próxima
		if(img == pics[i])
		{
			img_atual = i+1; 
			$_("qtdshow").value = img_atual;//atualiza qtd vistas
			$_(img).className = "borda_on";//borda no thumb clicado
		}
		
		//se não é bg atual, desmarca todas
		if(pics[i] != img)
		{
			//borda no thumb
			thumb_off = pics[i];
			$_(thumb_off).className = "borda_off";//borda no thumb clicado
		}
	}

	//mostra load
	$_("load_background").style.display = 'block';
	//oculta bg
	$_("background").style.display = 'none';
	
	//carrega imagem
    carregar = new Image();
    carregar.src = pathImagens() + "/bg/bg" + img +".jpg";
    setTimeout( "verificaCarregamento()", 100 );
}
function verificaCarregamento()
{
	//se carregou o bg
    if(carregar.complete)
    {
		//mostra bg
		$_("background").innerHTML = "<img src=\"" + carregar.src + "\" />";
		$_("background").style.display = 'block';

		//oculta o load
		desaparece('load_background');
		
    }
    else
    {
		//verifica se já carergou o bg
        setTimeout( "verificaCarregamento()", 100 );
    }
}

//ativa/desativa slideshow 
function statusSlideshow(status)
{
	var s = status;
	if(s == "stop")
	{
		var img = $_v("startshow");
	}else{
		var img = '';
	}
	
	//valores e url para o ajax
	url = pathAjax() + "/status_slideshow.ajax.php";
	pars = "status="+s + "&imagem="+img;
	$.post(url, { status:s, imagem:img },function(data)
	{
		$_("ctrl").value = data;
	});
}

//troca bg (slideshow)
function slideShow()
{
	//se deve exibir bg (slideshow)
	if($_v("ctrl") == "play")
	{
		pics = $_v("getbg").split(",");
		qtd = $_v("qtdbg");//total de fotos
		qtd_show = $_v("qtdshow");//qtd fotos mostradas 
		
		//se zerou o timer, mostra próximo bg
		if($_v("timer") == '0')
		{
			//se já mostrou todos bg
			if(qtd_show == qtd)
			{
				foto_atual = pics[0];
				//volta p/ primeiro bg
				changeBG(foto_atual);
			}else{
				foto_atual = pics[qtd_show];//carrega foto do array
				//qtd_show++;//incrementa qtd vistas
				//$_("qtdshow").value = qtd_show;//atualiza qtd vistas 
				
				//mostra bg atual
				changeBG(foto_atual);
			}
		}
		
		var c = $_v("timer");
	
		delay = c-1;
		setTimeout("slideShow()",1000);	
		$_("timer").value = delay;
	}
	
	if($_v("ctrl") == "stop")
	{
		//mostra bg atual
		img_atual = $_v("startshow");
		changeBG(img_atual);
	}
}
//controles bg (slideshow)
function ctrlSlideshow(acao)
{
	switch(acao)
	{
		case 'play':
			if( $_v("ctrl") != "play" )
			{
				$_("timer").value = delay_slideshow;
				$_("ctrl").value = acao;
				slideShow();
			}
		break;
		
		case 'stop':
			$_("timer").value = delay_slideshow;
			$_("ctrl").value = acao;
			statusSlideshow(acao);
		break;
	}
}
/* fim FUNÇÕES PARA O SLIDESHOW(BG) */


/* FUNÇÕES PARA O GOOGLE MAPS */
    var map;
    var gdir;
    var geocoder = null;
    var addressMarker;

    function initialize(get_endereco) 
	{
		var endereco = "Avenida Paraná, 291, Goiânia, GO";
		if(GBrowserIsCompatible())
		{ 
			map = new GMap2(document.getElementById("map_canvas"));
			map.addControl(new GSmallMapControl());
			map.addControl( new GMapTypeControl() );
	        gdir = new GDirections(map, document.getElementById("directions"));
	        GEvent.addListener(gdir, "load", onGDirectionsLoad);
			geocoder = new GClientGeocoder();
	        GEvent.addListener(gdir, "error", handleErrors);
      	}
	  	showAddress(endereco);
    }

    function setDirections(fromAddress, toAddress) 
	{
		$('directions').style.display = '';
		gdir.load("from: " + fromAddress + " to: " + toAddress);
    }

    function handleErrors()
	{
	   if(gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("Endereço Inválido. Por favor verique a ortografia e tente novamente." + gdir.getStatus().code);
	   else if(gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
	   
	   else if(gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);

	//   else if(gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if(gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if(gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("A direção informada não pode ser encontrada.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("Ocorreu um erro");
	}

	function onGDirectionsLoad(){}
    function showAddress(address)
	{
		logo_stock = '<img src="' + pathImagens() + '/logo_stocktotal.gif" width="120" /><br />';
	      if(geocoder)
		  {
	        geocoder.getLatLng(
	          address,
	          function(point)
			  {
	            if(!point)
				{
	              alert(address + " não encontrado");
	            } else {
	              map.setCenter(point, 15);
	              var marker = new GMarker(point);
	              map.addOverlay(marker);
	             marker.openInfoWindowHtml(logo_stock + address);
	            }
	         }
	        );
	      }
    }
	
/* fim FUNCÇÕES PARA O GOOGLE MAPS */
