/**
 	Este Software, em parte ou em seu todo, é livre para uso e modificação exclusivamente
	para uso com o equipamento EASYS@T Kryptus.
	Este software é provido sem nenhuma forma de garantia implícita ou explícita e a Kryptus
	não se responsabiliza por possíveis danos diretos ou indiretos causados pelo mesmo.
	A violação dessa licença sujeita o usuário a indenização de quaisquer perdas e danos
	diretos e indiretos que venham a ser causados à Kryptus.

	Todos os direitos reservados - Kryptus Segurança da Informação S/A
*/



/**
 * Registro de um listener para o evento KryptusEASYSATReply, o qual irá receber
 * a resposta do comando enviado pelo evento KryptusEASYSATRequest.
 * A resposta estará contida em event.detail e estará no formato JSON.
 */

// array para guardar as respostas do SAT;
var v_dados_cancela;

window.addEventListener('KryptusEASYSATReply', function(event) {
	var st_resp = JSON.stringify(event.detail);

	// alert(st_resp);
	// faz a criptografia da venda
	v_xmlcancela = JSON.stringify(v_dados_cancela);
	v_resposta   = st_resp;

	/*
	console.log(st_resp);
	 var redirect = "?venda=" + v_xmlcancela + "&resp=" + st_rep;
	// enviar os objetos via ajax para servidor e redirecionar
	*/
	$.ajax({
	      url:  "erpc_nfccode_cancela_finaliza.php",
				type: "POST", //send it through get method
				data: {
					    cancela: v_xmlcancela,
					    resp: st_resp
					  },
	      success:function(data) {
					 var str = data;

					 var retdata  = str.split(';');
					 var iddocsai = retdata[2];
					 var redirect = "erpc_faturar_pedidos_list.php";

					 // se retornou 0, vai para lista
					 if(retdata[0]=="1"){
						 // var iddoccrip = Base64.encode(JSON.stringify(iddocsai));
						 var iddoccrip = window.btoa(iddocsai);
						 redirect = "erpc_nfccode_cancela_imprimir.php?id=" + iddoccrip;
					 }
					 window.location = redirect;
	      }
	 });


	/*// document.getElementById("resposta").innerText = JSON.stringify(event.detail);
	localStorage.setItem('EASYSATRequest',p_EasySatReply);*/
});

/*
Edival 26/01/2017 15:49
Função para retornar o array com as respostas do SATECF
*/
function getSatReply(){

	return p_EasySatReply;
}


/**
 * Funções para o evento de click dos botões.
 */
function buttonConsultarSAT() {
	fireKryptusEASYSATRequest({comando:"ConsultarSAT", numeroSessao: 1234});
}

function buttonConsultarStatusOperacional() {
	fireKryptusEASYSATRequest({comando:"ConsultarStatusOperacional", numeroSessao: 1234, codigoDeAtivacao: "99999999"});
}

function buttonExtrairLogs() {
	fireKryptusEASYSATRequest({comando:"ExtrairLogs", numeroSessao: "062495", codigoDeAtivacao: "99999999"});
}

/* Edival 19/01/2017 15:22 para enviar os dados de Venda para AC */
function buttonEnviarDadosVenda(){
	fireKryptusEASYSATRequest2({comando:"EnviarDadosVenda", numeroSessao: 1234, codigoDeAtivacao: "99999999", dadosVenda: "teste de envio de dados!"});
}

function buttonCancelarUltimaVenda(){
	fireKryptusEASYSATRequest({comando:"CancelarUltimaVenda ", numeroSessao: 1234, codigoDeAtivacao: "99999999", chave: "0", dadosCancelamento: "teste de envio de dados!"});
}


function buttonRespostaSat(){
	if(p_EasySatReply.length>0){
		for (var key in p_EasySatReply){
		     var value = p_EasySatReply[key];
		    console.log(value);
		  }
	}
}

function fireKryptusEASYSATRequest(comando) {

	var ret = window.dispatchEvent(new window.CustomEvent('KryptusEASYSATRequest', {detail: comando}));

	return ret;
}

/*  _nr_sessao, _cd_ativa, _ds_venda Edival 19/01/2017 15:22 para enviar os dados de Venda para AC */
function satCancelarUltimaVenda(p_sat_dados){

  var p_nr_sessao = p_sat_dados.numeroSessao;
  var p_cd_ativa  = p_sat_dados.codigoDeAtivacao;
	var p_ds_chave  = p_sat_dados.chave;
  var p_ds_cancela= p_sat_dados.dadosCancelamento;

	v_dados_cancela = p_sat_dados;

	p_tmp = JSON.stringify(p_ds_cancela); // limpa a string do xml para EasySat

	// fireKryptusEASYSATRequest({comando:"EnviarDadosVenda", numeroSessao: p_nr_sessao, codigoDeAtivacao: "99999999", dadosVenda: "teste de envio de dados!"});
  b = fireKryptusEASYSATRequest({comando:"CancelarUltimaVenda", numeroSessao: p_nr_sessao, codigoDeAtivacao: p_cd_ativa, chave: p_ds_chave, dadosCancelamento: p_ds_cancela});

	// console.log(JSON.stringify(b));
  // b = JSON.stringify(a.detail);

}
