$(function() {

	$('#interactions_list').on('click', function() {

		$('#isclear').val('clear');
		form.submit();
	});

	// Parte de inicialização da visualização de uma interação (Edição/Visualizar)
	$($('select[name="number_result"]')).on('change', function() {
		let ref = $('input[name="conversation"]').val();
		let limit = $('select[name="number_result"]').val();

		getAllByConversation(ref, limit);
	});

	// Verificar o tipo de interação (Cliente cadastrado ou não)

	$('input[type="submit"]').on('click', function() {

		if($('#client_registered').is(':checked')) {

			initVerificationClientRegistered();

		} else if($('#client_not_reregistered').is(':checked')) {

			initVerificationClientNotRegistered();

		} else {
			utils.showAlerts('.message-add', 'Selecione Cliente ou Prospecção para prosseguir!');
		}
	});

	function initVerificationClientNotRegistered() {

		if($('select[name="client_prospection"]').val() != '') {

			if($('.client_not_reregistered select[name="type_interaction"]').val() != '') {

				verifyNewDate();

			} else {
				utils.showAlerts('.message-add', 'Selecione uma Categoria!');
			}
		} else {
			if($('input[name="client_name"]').val() != '') {

				if($('.client_not_reregistered select[name="type_interaction"]').val() != '') {

					verifyNewDate();

				} else {
					utils.showAlerts('.message-add', 'Selecione uma Categoria!');
				}

			} else {
				utils.showAlerts('.message-add', 'Digite o nome do Cliente!');
			}
		}
	}

	function initVerificationClientRegistered() {
		if($('select[name="client"]').val() != '') {

			if($('.client_registered select[name="type_interaction"]').val() != '') {

				verifyNewDate();

			} else {
				utils.showAlerts('.message-add', 'Selecione uma Categoria!');
			}

		} else {
			utils.showAlerts('.message-add', 'Selecione o Cliente!');
		}
	}

	// Verificar data da próxima interação
	function verifyNewDate() {

		if($('input[name="date_next"]').val() != '') {
			verifyDate($('input[name="date_next"]').val(), '#date_next');

			setTimeout(() => {
				if($('input[name="date_next"]').attr('status') == 'true' ) {

					verifyRequestVinc();

				} else {
					utils.showAlerts('.message-add', 'Data da Próxima Interação Incorreta!');
				}
			}, 1000);

		} else {
			$('.modal-confirme-cancel').show(100);
		}
	}

	// Mostrar modal de confirmação para salvamento sem próxima data de interação.
	$('#confirm_save').on('click', function() {
		$('.modal-confirme-cancel').hide(50);
		verifyRequestVinc();
	});

	$('#cancel_save').on('click', function() {
		$('.modal-confirme-cancel').hide(50);
	});
	// Fim Mostrar modal de confirmação para salvamento sem próxima data de interação.

	function verifyRequestVinc() {
		if($('textarea[name="text_interation"]').val() != '') {
			save();
		} else {
			utils.showAlerts('.message-add', 'Digite algo no campo de texto!');
		}
	}

	$('#confirm_expirate').on('click', function() {
		$('.modal-new-expirate').hide(50);
		save();
	});

	$('#cancel_expirate').on('click', function() {
		$('.modal-new-expirate').hide(50);
	});

	function verifyDate (date, ref) {
		$.ajax({
			url: BASE_URL+'verifyinterationdate',
			type:'POST',
			data: {
				date:date
			},
			dataType:'json',
			success:function(json) {
				if(json == true) {
					$(ref).attr('status', true);
				} else{
					$(ref).attr('status', false);
				}
			}
		});
	}

	// $('input[name="request_search"]').on('keyup', function() {

	// 	if($(this).val() != '') {
	// 		$.ajax({
	// 			url: BASE_URL+'getrequestvinculation',
	// 			type:'POST',
	// 			data: {
	// 				text:$(this).val()
	// 			},
	// 			dataType:'json',
	// 			success:function(json) {
	// 				if(json != '') {
	// 					$('div.searchresultclient').html(json);
	// 					$('div.searchresultclient').show(100);
	// 				}
	// 			}
	// 		});
	// 	} else {
	// 		$('div.searchresultclient').hide(100);
	// 	}
	// });


	// Selecionar tipo de cliente
	$('.interation-area .form-row input[type="radio"]').on('click', function() {
	  $('input[type="radio"]').prop('checked', false);
	  $(this).prop('checked', true);
	});


	$('.interation-area .form-row input[type="radio"]').on('click', function() {

		if($('#client_registered').is(':checked')) {

			$('.client_not_reregistered').css('display', 'none');
			$('.client_registered').css('display', 'flex');

		} else {
			getListProspection();
			$('.client_registered').css('display', 'none');
			$('.client_not_reregistered').css('display', 'flex');
		}
	});

	$(document).on('click', 'div.searchresultclient ul li', function() {
		let clicked = parseInt($(this).attr('data-list'));

		$('input[name="request_ref"]').val(clicked);
		$('input[name="request_search"]').val(clicked);
		$('div.searchresultclient').hide(100);
	});

	// Função de salvar interação
	function save() {
		$('input[type="submit"]').attr('disabled', true);
		$('input[type="submit"]').addClass('loading');

		if($('#client_registered').is(':checked')) {
			var dataInput = {
				type:1,
				client_id:$('select[name="client"]').val(),
				text:$('textarea[name="text_interation"]').val(),
				next_date:$('input[name="date_next"]').val(),
				category:$('.client_registered select[name="type_interaction"]').val()
			}

		} else {			
			var dataInput = {
				type:2,
				client_id:$('select[name="client_prospection"]').val(),
				client_name:$('input[name="client_name"]').val(),
				client_email:$('input[name="client_email"]').val(),
				client_phone:$('input[name="client_phone"]').val(),
				text:$('textarea[name="text_interation"]').val(),
				next_date:$('input[name="date_next"]').val(),
				category:$('.client_not_reregistered select[name="type_interaction"]').val()
			}
		}

		$.ajax({
			url: BASE_URL+'saveinteration',
			type:'POST',
			data: {
				dataInput:dataInput
			},
			dataType:'json',
			success:function(json) {
				if(json == true) {
					setTimeout(function() {
						$(location).attr('href', BASE_URL+'crm');
					}, 500);
				} else {
					utils.showAlerts('.message-add', 'Ocorreu um erro interno, verifique se as informações estão corretas!');
				}
			}
		});
	}

	// Obter lista de clientes de prospecção
	function getListProspection() {
		$.ajax({
			url: BASE_URL+'getprospectionlist',
			type:'POST',
			dataType:'json',
			success:function(json) {
				if(json) {

					$('#client_prospection').html(json);
				}
			}
		});		
	}

	$('select[name="client_prospection"]').on('change', function() {
		var mode = false;

		if($(this).val() != '') {
			mode = true;
		}

		$('input[name="client_name"]').attr('readonly', mode);
		$('input[name="client_email"]').attr('readonly', mode);
		$('input[name="client_phone"]').attr('readonly', mode);
	});

	// Listar as ultimas interações do cliente selecionado (Criação)
	$('select[name="client_prospection"], select[name="client"]').on('change', function() {
		var limit = 2;
		var client = false;
		var type = '';

		if($('#client_registered').is(':checked')) {
			client = $('select[name="client"]').val();
			type = 1;
		} else {
			type = 2;
			client = $('select[name="client_prospection"]').val();
		}

		if(client) {
			getInteractionsByClient(client, type, limit);
		}
	});

	function getInteractionsByClient(client, type, limit) {
		$.ajax({
			url: BASE_URL+'getlastbyclient',
			type:'POST',
			data:{
				client:client,
				type:type,
				limit:limit
			},
			dataType:'json',
			success:function(json) {				

				$('.last-interations .content ul').html(json.list);

				$.each($('select[name="type_interaction"] option'), function() {
					if($(this).val() == json.category) {
						$(this).prop('selected', true);
					}
				});


			}
		});		
	}
	// Fim Listar as ultimas interações do cliente selecionado (Criação)

	// Buscar interações da conversa selecionada (Editando ou visualizando)
	$('input[name="conversation"]').ready(function() {
		let ref = $('input[name="conversation"]').val();
		let limit = $('select[name="number_result"]').val();

		getAllByConversation(ref, limit);
	});

	function getAllByConversation(ref, limit) {
		$.ajax({
			url: BASE_URL+'getlastbyconversation',
			type:'POST',
			data:{
				crm:ref,
				limit:limit
			},
			dataType:'json',
			success:function(json) {				

				$('.last-interations .content ul').html(json);				
			}
		});
	}
	// Fim Buscar interações da conversa selecionada (Editando ou visualizando)	

	// Botão limpar filtro CRM Administrativo
	$('#clear_crm_adm').on('click', function(e) {
		e.preventDefault();

		$.ajax({
			url: BASE_URL+'crmadmclearform',
			type:'POST',
			dataType:'json',
			success:function(json) {

				if(json == true) {
					location.replace(location.pathname);
				}
			}
		});
	});

	// Mudar status de mensagem de aviso para usuário
	$('#set-message-read').on('click', function() {
		let ref = parseInt($('input[name="ref"]').val());
		
		$.ajax({
			url: BASE_URL+'usermessageread',
			type:'POST',
			data:{
				ref:ref
			},
			dataType:'json',
			success:function(json) {

				if(json == true) {
					$('.alert').hide(100);
				}
			}
		});
	});

	// Salvamento de nova interação (edição) dentro de conversa de cliente
	$('#save-in-edit').on('click', function() {
		let date = $('input[name="date_next"]').val();
		let ref = '#date_next';
		verifyDate (date, ref);

		setTimeout(() => {

			if($(ref).attr('status') == 'true') {

				if($('textarea[name="text_interation"]').val() != '') {

					saveInEdit();

				} else {
					utils.showAlerts('.message-add', 'Digite algo no campo de texto!');
				}

			} else {

				$('.modal-confirme-cancel').show(100);
			}

		}, 500);
	});

	$('#confirm_save_edit').on('click', function() {
		$('.modal-confirme-cancel').hide(100);
		
		saveInEdit();
	});


	$('#cancel_save_edit').on('click', function() {
		$('.modal-confirme-cancel').hide(100);
	});


	function saveInEdit() {
		let ref = parseInt($('input[name="conversation"]').val());
		let text = $('textarea[name="text_interation"]').val();
		let next_date = $('input[name="date_next"]').val();

		if(text != '') {
			$('#save-in-edit').attr('disabled', true);
			$('#save-in-edit').addClass('loading');

			$.ajax({
				url: BASE_URL+'saveinterationinedit',
				type:'POST',
				data:{
					ref:ref,
					text:text,
					date:next_date
				},
				dataType:'json',
				success:function(json) {

					if(json == true) {
						setTimeout(function() {
							$(location).attr('href', BASE_URL+'crm');
						}, 500);
					} else {
						utils.showAlerts('.message-add', 'Ocorreu um erro interno, verifique se as informações estão corretas!');
					}
				}
			});
		} else {
			utils.showAlerts('.message-add', 'Digite algo no campo de texto!');
		}
	}

});