var statusCalificacion = false;
var conCallBack = [];
var cronometro = null;
var TiempoTot = 0;

function addZero(val) {
	if (parseInt(val) < 10) {
		val = '0'.concat(val);
	}
	return val;
}

function conviertePM(val) {
	val = parseInt(val) + 12;
	return val.toString();
}

function lanzaCalificacion(id) {
	if (idAnterior !== id) {
		idAnterior = id;
		presionaEstados = -1;
	}

	presionaEstados++;
	if (!statusCalificacion && presionaEstados <= 2) {
		statusCalificacion = true;

		$.ajax({
			url: '/' + RUTA_MAESTRA + '/index.php/homeAgente/getDispoSelect',
			type: 'POST',
			data: {},
			dataType: 'text',
			success: function (result) {
				if (!bln_hangup_block) {
					$('#calif').show();
				}
				var resp = JSON.parse(result);
				if (resp.Estado == 'ok') {
					conCallBack = [];
					$('#codigosCalif').html('');
					if (resp.Horario === '24hours') {
						$('#cbTime').removeAttr('min');
						$('#cbTime').removeAttr('max');
					} else {
						var arregloasd = resp.Horario.split('-');
						arregloasd = arregloasd.map((val) => {
							val =
								val.indexOf('pm') != -1
									? conviertePM(val.replace('pm', ''))
									: val.replace('am', '');
							return val;
						});
						$('#cbTime').attr(
							'min',
							`${addZero(arregloasd[0])}:00:00`
						);
						$('#cbTime').attr(
							'max',
							`${addZero(arregloasd[1])}:00:00`
						);
					}
					for (var i = 0; i < resp.Registros.length; i++) {
						if (resp.Registros[i].status == id) {
							$('#codigosCalif').append(
								"<a href='#'style='padding:3px;' class='  letraSize col-sm-3  bg-success text-white text-center list-group-item list-group-item-secondary text-wrap' onclick='enviaCalificacion(\"" +
									resp.Registros[i].status +
									'",1)\'>' +
									resp.Registros[i].status +
									'-' +
									resp.Registros[i].status_name +
									'</a>'
							);
						} else {
							$('#codigosCalif').append(
								"<a href='#' style='padding:3px;' class=' letraSize col-sm-3 botonCalificar text-center list-group-item-action text-wrap' onclick='enviaCalificacion(\"" +
									resp.Registros[i].status +
									'",0)\'>' +
									resp.Registros[i].status +
									'-' +
									resp.Registros[i].status_name +
									'</a>'
							);
						}

						if (resp.Registros[i].scheduled_callback == 'Y') {
							conCallBack.push(resp.Registros[i].status);
						}
					}
					if (id == null) {
						// document.getElementById("my_iframe").contentWindow.dialedcall_send_hangup('', '', '', '', 'YES');
						TiempoTot = TiempoDispo;
						disminuyeTiempo(TiempoDispo);
						cronometro = setInterval(function () {
							if (TiempoTot == 0) {
								enviaCalificacion('NOCAL', 1);
								clearInterval(cronometro);
								setTimeout(() => (cronometro = null), 5000);
							} else {
								disminuyeTiempo(TiempoTot);
								TiempoTot--;
							}
						}, 1000);
					}
				} else {
					$('#ListaAlert').html(i18n.gettext(resp.Descripcion));
					crearTooltip();
				}
				if (conCallBack.indexOf(id) == -1) {
					$('#callback').hide();
				}
			},
			error: function (error) {
				console.log(error);
				statusCalificacion = false;
			},
		});
	}
	return false;
}

function disminuyeTiempo(tiempo) {
	$('#TiempoCal').html(
		i18n.gettext('Tiempo restante') + ': <b>' + tiempo + '</b>'
	);
}

function ocultaCalificacion() {
	$('#calif').hide();
	statusCalificacion = false;
	$('#botonCalificar').attr('disabled', false);
	$('#cbComments').val('');
	$('#cbTipo').val('USERONLY');
	$('#cbDate').val('');
	$('#cbTime').val('');
}

function buscaCB(id) {
	if (conCallBack.indexOf(id) != -1) {
		$('#callback').show();
		let dt = new Date();
		let dt_date = ('0' + dt.getDate()).slice(-2);
		let dt_month = ('0' + (dt.getMonth() + 1)).slice(-2);
		let dt_hours = ('0' + dt.getHours()).slice(-2);
		let dt_minutes = ('0' + dt.getMinutes()).slice(-2);
		let dt_years = dt.getFullYear();
		$('#cbDate').val(`${dt_years}-${dt_month}-${dt_date}`);
		$('#cbTime').val(`${dt_hours}:${dt_minutes}`);
	} else {
		$('#callback').hide();
	}
}

function dameFecha() {
	return $('#cbDate').val() + ' ' + $('#cbTime').val();
}

function comentaLead(comentario, lead_id) {
	$.ajax({
		url: '/' + RUTA_MAESTRA + '/index.php/homeAgente/commentLead',
		type: 'POST',
		data: { comment: comentario, lead_id: lead_id },
		dataType: 'text',
		success: function (result) {
			console.log('Todo bien');
		},
		error: function (err) {
			console.log(err);
		},
	});
}

function revisaListas(numero, calificacion, campana, vendor_lead_code) {
	$.ajax({
		url: '/' + RUTA_MAESTRA + '/index.php/homeAgente/checkBlackList',
		type: 'POST',
		data: {
			numero: numero,
			calificacion: calificacion,
			campana: campana,
			vendor_lead_code: vendor_lead_code,
		},
		dataType: 'text',
		success: function (result) {
			console.log('Todo bien');
		},
		error: function (err) {
			console.log(err);
		},
	});
}

function enviaCalificacion(id, cant) {
	if (cant == 0) {
		statusCalificacion = false;
		lanzaCalificacion(id);
		$('#cbDate').val('');
		$('#cbTime').val('');
		$('#cbComments').val('');
		$('#cbTipo').val('USERONLY');
		buscaCB(id);
	} else {
		$('#btncuelga').attr('disabled', true);
		if (!bln_hangup_block) {
			bln_hangup_block = true;
			let pausaBoton = false;
			if (_FORZAR_PAUSA) {
				// PAUSA AUTOMATICA
				pausaBoton = true;

				document
					.getElementById('my_iframe')
					.contentWindow.document.getElementById(
						'DispoSelectStop'
					).checked = true;

				setTimeout(() => {
					statusPausa = true;
					bloquearPlay = false;

					$('#botonPausaCalificar').attr('disabled', false);

					// PAUSA AUTOMATICA CODIGO
					if ($('#PausaCal').prop('checked')) {
						$('#codPausa').show();
						
						$('#PausaCal').prop('checked', false);

						pideRazonPausa();
						// setTimeout(() => {
						// 	enviaPausa(_FORZAR_PAUSA_CODIGO, 1, -1, '0', undefined, true);
						// }, 100);
					} else {
						enviaPausa(_FORZAR_PAUSA_CODIGO, 1, -1, '0', undefined, true);
					}
				}, 2000);
			} else if ($('#PausaCal').prop('checked')) {
				pausaBoton = true;

				$('#PausaCal').prop('checked', false);
				document
					.getElementById('my_iframe')
					.contentWindow.document.getElementById(
						'DispoSelectStop'
					).checked = true;

				setTimeout(() => {
					$('#codPausa').show();
					statusPausa = true;
					bloquearPlay = false;

					$('#botonPausaCalificar').attr('disabled', false);
					pideRazonPausa();
				}, 1000);
			}
			document
				.getElementById('my_iframe')
				.contentWindow.DispoSelectContent_create(id, 'ADD', 'YES');
			document
				.getElementById('my_iframe')
				.contentWindow.DispoSelect_submit('', '', 'YES');
			let comentario = $('#comentario').val();
			$('#comentario').val('');
			comentaLead(comentario, ultimoLeadId);
			revisaListas(dialvoxCRM, id, campanaActual, ultimoVendor);
			var conCall = 0;
			if ($('#cbDate').val() !== '') {
				let cbDate = $('#cbDate').val().split('-');
				let cbTime = $('#cbTime').val().split(':');
				let cbComments = $('#cbComments').val();
				let cbTipo = $('#cbTipo').val() === 'ANYONE' ? true : false;
				let cbPhoneNumber = $('#pantalla').val();
				scheduler.fn_schedule(
					cbDate[0],
					cbDate[1],
					cbDate[2],
					cbTime[0],
					cbTime[1],
					cbComments,
					cbPhoneNumber,
					cbTipo
				);
				$('#cbDate').val('');
				$('#cbTime').val('');
				$('#cbComments').val('');
				$('#cbTipo').val('USERONLY');
			}
			$('#pantalla').val('');
			if (conCallBack.indexOf(id) != -1) conCall = 1;
			$('#botonCalificar').attr('disabled', true);
			if (!scheduler.bln_anyone) {
				scheduler.fn_checkCallback();
				scheduler.bln_anyone = false;
			}
			TiempoTot = 0;
			clearInterval(cronometro);

			ocultaCalificacion();
			if (!pausaBoton && Manual === 'INBOUND_MAN') {
				const myIframe =
					document.getElementById('my_iframe').contentWindow;

				// ! # Caso Noroeste, 2 de junio: Las llamadas a veces se quedan en live_call,
				// !							  para resolverlo, se cuelga y vuelve a calificar.
				// ! Pruebas en cliente: 6 de junio
				if (
					myIframe.document.images['livecall'].src ===
					myIframe.image_livecall_ON.src
				) {
					console.log('Ejecutar colgado especial');
					// ? TEST: Colgar, calificar nocal
					myIframe.dialedcall_send_hangup('', '', '', '', 'YES');
				}

				myIframe.AutoDial_ReSume_PauSe(
					'VDADready',
					'',
					'',
					'',
					'',
					'',
					'',
					'YES'
				);
			}
			setTimeout(() => {
				cronometro = null;
				presionaEstados = -1;
				idAnterior = null;
			}, 5000);
		}
	}
	return false;
}

function regresaAlDefault() {
	$('#calificacionSelect').val('NULO');
	$('#cbComments').val('');
	$('#cbDate').val('');
	$('#cbTime').val('');
}
