<?php include "scripts" . DIRECTORY_SEPARATOR . "defaults.php"; ?>
<?php include "scripts" . DIRECTORY_SEPARATOR . "tableComponent.php"; ?>
<script>

	window.MAXIMO_PERMITIDO = <?php if (defined("MAXIMO_INTENSIDAD_CAMPANA")) {
		echo MAXIMO_INTENSIDAD_CAMPANA;
	} else {
		echo '16';
	}?>;

	const MAXIMO_INTENSIDAD_DEFAULT = window.MAXIMO_PERMITIDO;

	<?php if (NEED_WA && $_SESSION['allow_waCli']) { ?>
		let idCampanaWAW = "";
	<?php } ?>
	var flagInfo = false;
	var flagInfo2 = false;
	var pagina = 1;
	var flagBanderaShida = true;

	function decide() {
		if ($("#idCampana").val() == -1) {
			app.nuevaCampana();
		} else {
			app.editarCampana();
		}
	}

	function abreModal() {
		document.getElementById("tituloModal").innerHTML = i18n.gettext("Crear la campaña");
		let self = app;
		self.default_xfer = "---NONE---";
		self.RECORDLlamada = "ALLCALLS"
		cargaListasNegras();

		app.obtenerDIDs()
		app.editandoCampana = false

		$('.datepicker').css('z-index', 10000);
		flagInfo = true, flagInfo2 = true, flagInfo3 = true;
		$("#formuModal").modal("open");
		$("#idCampana").val(-1);
		$("#CrearCampa").html('Crear<i class="material-icons right">send</i>');
		$("#activa").val("Y");
		app.campanaMetodo = "MANUAL";
		analiza();
		$("#metodo_marcado").html("<option value='MANUAL' id='MANUAL' selected='selected'>" + traducirFrase("SALIENTE - MANUAL") + "</option><option value='RATIO' id='RATIO'>" + traducirFrase("PROGRESIVO") + "</option><option value='ADAPT_AVERAGE' id='ADAPT_AVERAGE'>" + traducirFrase("PREDICTIVO PROMEDIO") + "</option><option value='ADAPT_HARD_LIMIT' id='ADAPT_HARD_LIMIT'>" + traducirFrase("PREDICTIVO ESTRICTO") + "</option><option value='ADAPT_TAPERED' id='ADAPT_TAPERED'>" + traducirFrase("PREDICTIVO CONICO") + "</option><option value='INBOUND_MAN' id='INBOUND_MAN'>" + traducirFrase("ENTRADA - MANUAL") + "</option><option value='INBOUND_MAN_AUTOPAUSA' id='INBOUND_MAN_AUTOPAUSA'>" + traducirFrase("ENTRADA - ASISTIDO") + "</option><option value='BLASTER' id='BLASTER'>" + traducirFrase("BLASTER") + "</option>");
		$("#orden_lista").val("DOWN");
		$("#tamaño_auto").val("N");
		$("#tiempoDispo").val(30);
		app.cargaCarrier();
		app.cargaAudios()
		document.getElementById('pestanas').checked = false;
		$("#nombre_campana").val("");
		$("#descripcion_campana").val("");
		$("#web_form").val("");
		$("#web_form_address_two").val("");
		$("#intensidad_marcado").val("");
		$("#intensidad_llamadas").val("");
		$("#objetivo_intensidad").val("");
		$("#maximo_intensidad").val("");
		$("#intensidad").val("");
		$("#orden_lista_aleatoria").val("");
		$("#tamaño_cola").val("");
		document.getElementById('allow_beep').checked = false;
		$("#time_beep").val(60);
		$("#time_repeat").val(30);
		$("#DEAD").val("0");
		app.intensidad_marcado = 0;
		app.percentage = 10;
		app.objetivo = 0;

		app.intensidad = 0;

		app.maximoInt = MAXIMO_INTENSIDAD_DEFAULT;
		app.cola = 50;
		app.gaugeVal = 2;
		document.getElementById("CrearCampa").innerHTML = i18n.gettext("Crear") + "<i class='material-icons right'>send</i>";
	}

	function cambiaPagina2(pag, id) {
		app.paginaEstatus = pag;
		app.obtenEstatus(id);
	}

	function cambiaPagina(pag) {
		if (flagBanderaShida) {
			document.getElementById("barrita").style.display = "initial";
			flagBanderaShida = false;
		}
		app.pagina = pag;
		pagina = pag;
		$.ajax({
			url: "<?= MODULOS; ?>campanas/getCampaigns",
			type: "POST",
			data: {
				pagina: pagina,
				texto: $("#texto").val()
			},
			dataType: "text",
			success: function(response) {
				$("#botonCrear").show();
				document.getElementById("barrita").style.display = "none";
				var res = JSON.parse(response);
				if (res.Estado == 'ok') {
					app.dataTable = res;
					flagInfo3 = false;
					$("#paginacion").html("");
					var Anterior = res.Cuenta;
					res.Cuenta /= 10;
					res.Cuenta = Math.floor(res.Cuenta);
					if (Anterior % 10 != 0) {
						res.Cuenta++;
					}
					if (pagina == 1) {
						$("#paginacion").append(
							"<li class='disabled'><a href='#!'><i class='material-icons'>chevron_left</i></a></li>");
					} else {
						$("#paginacion").append("<li class='waves-effect'><a href='javascript:cambiaPagina(" + (pagina - 1) +
							")'><i class='material-icons'>chevron_left</i></a></li>");
					}
					for (var i = 0; i < res.Cuenta; i++) {
						if (pagina == (i + 1)) {
							$("#paginacion").append("<li class='active blue lighten-2 '><a href='javascript:cambiaPagina(" + (i + 1) +
								")'>" + (i + 1) + "</a></li>");
						} else {
							$("#paginacion").append("<li class='waves-effect'><a href='javascript:cambiaPagina(" + (i + 1) + ")'>" + (i +
								1) + "</a></li>");
						}
					}
					if (pagina == res.Cuenta || res.Cuenta == 0) {
						$("#paginacion").append(
							"<li class='disabled'><a href='#!'><i class='material-icons'>chevron_right</i></a></li>");
					} else {
						$("#paginacion").append("<li class='waves-effect'><a href='javascript:cambiaPagina(" + (pagina + 1) +
							")'><i class='material-icons'>chevron_right</i></a></li>");
					}
					setTimeout(() => {
						$('.tooltipped').tooltip();
					}, 1000);
				} else {
					M.toast({
						'html': resp.Descripcion
					});
				}
			}
		});
	}
	<?php if (NEED_WA && $_SESSION['allow_waCli']) { ?>

		function borrarWA() {
			var today = new Date();
			var dd = today.getDate();
			var mm = today.getMonth() + 1; //January is 0!
			var yyyy = today.getFullYear();
			if (dd < 10) {
				dd = '0' + dd;
			}
			if (mm < 10) {
				mm = '0' + mm;
			}
			var hour = today.getHours(); // This method gets the hour
			var min = today.getMinutes();
			var today = yyyy + '-' + mm + '-' + dd;
			$('#pickDate').val(today + " - " + today);
			$('.datepicker').css('z-index', 10000);
			$('#wa_horaI').val(hour + ':' + min);
			$('#wa_horaF').val(hour + ':' + min);
			$("#idcampana_wa").val("");
			$("#wa_nombreCamp").val("");
			$("#wa_grupoTelefonos").val("");
			$("#wa_listaNegra").val("");
			$("#idmensaje_wa").val("");
		}

		function enviarCRM() {
			let file = document.getElementById("archivoCRM").files[0];
			if (file) {
				let reader = new FileReader();
				reader.readAsText(file, "UTF-8");
				reader.onload = function(evt) {
					let fileContent = evt.target.result
					let flag = true;
					while (fileContent.indexOf("\r") != -1)
						fileContent = fileContent.replace("\r", "")

					let regs = fileContent.split('\n')
					if (regs[regs.length - 1] === "")
						regs.pop();
					let fields = []
					regs.shift().replace('\r', '').split(',').map(value => {
						if (value.toLowerCase() === "telefono")
							fields.push(value.toLowerCase())
						else
							fields.push(value)
					})
					let CRM = [];
					for (let reg of regs) {
						let values = reg.split(',')
						if (values.length != fields.length) {
							flag = false;
							break;
						}

						let data = {}

						values.map((value, index) => {
							data[fields[index]] = value
						})

						CRM.push(data)
					}
					if (flag) {
						let error = false
						let keys = Object.keys(CRM[0])
						let regex = /telefono/
						for (key of keys) {
							if (regex.test(key)) {
								error = false
								break;
							} else error = true
						}
						if (error) {
							M.toast({
								html: traducirFrase("Telefono es un campo obligatorio")
							});
						} else {
							$.ajax({
								url: "<?= MODULOS; ?>/Campanas/uploadCRMToWhatsApp",
								type: "POST",
								data: {
									campos: CRM,
									campana: idCampanaWAW
								},
								dataType: "text",
								success: function(response) {
									console.log(response)
									var res = JSON.parse(response);
									if (res.Estado == 'ok') {
										app.actionCRM = -1;
										$("#formuCRM").modal("close")
										M.toast({
											html: traducirFrase("Datos cargados correctamente")
										});
									} else {
										M.toast({
											html: res.Descripcion
										});
									}
								},
								error: function(data) {
									console.log(data);
								}
							});
						}
					} else {
						M.toast({
							html: traducirFrase("Error en el numero de registros y campos")
						});
					}

				}
				reader.onerror = function(evt) {
					console.log('error')
				}
			}


		}

		function buscarCRM() {
			$.ajax({
				url: "<?= MODULOS; ?>/Campanas/getCRMFromWhatsApp",
				type: "POST",
				data: {
					telefono: $("#telefonoConsultarCRM").val(),
					campana: idCampanaWAW
				},
				dataType: "text",
				success: function(response) {
					console.log(response)
					var res = JSON.parse(response);
					if (res.Estado == 'ok') {
						$("#formuCRM").modal("close")
						$("#CRMHERE").html("");
						app.actionCRM = -1;
						let iterat = Object.entries(res.Registros.datos);
						iterat.forEach(val => {
							$("#CRMHERE").append(`<tr><td>${val[0]}</td><td>${val[1]}</td></tr>`)
						})
						$("#formShow").modal("open")
					} else {
						M.toast({
							html: res.Descripcion
						});
					}
				},
				error: function(data) {
					console.log(data);
				}
			});
		}

		function borrarCRM() {
			$.ajax({
				url: "<?= MODULOS; ?>/Campanas/deleteCRMFromWhatsApp",
				type: "POST",
				data: {
					telefono: $("#telefonoEliminarCRM").val(),
					campana: idCampanaWAW
				},
				dataType: "text",
				success: function(response) {
					console.log(response)
					var res = JSON.parse(response);
					if (res.Estado == 'ok') {
						app.actionCRM = -1;
						$("#formuCRM").modal("close")
						M.toast({
							html: traducirFrase("Datos eliminados correctamente")
						});
					} else {
						M.toast({
							html: res.Descripcion
						});
					}
				},
				error: function(data) {
					console.log(data);
				}
			});
		}
	<?php } ?>

	var app = new Vue({
		el: '#main',
		data: {
			statusCampaignShow: false,
			ls: localStorage.getItem('background'),
			pagina: 1,
			dataTable: {},
			value: true,
			componenteActivo: 'campaigntable',
			dataBuffer: {},
			dataForm: [],
			gaugeVal: 2,
			percentage: '10',
			intensidad: 0,
			objetivo: 0,
			cola: 50,
			banderaMan: true,
			banderaAuto: false,
			maximoInt: MAXIMO_INTENSIDAD_DEFAULT,
			inboundsCampaign: [],
			default_xfer: "",
			RECORDLlamada: "",
			Estatus: [{
				status: "",
				status_name: "",
				selectable: "N",
				human_answered: "N",
				category: "10",
				sale: "N",
				dnc: "N",
				customer_contact: "N",
				not_interested: "N",
				unworkable: "N",
				scheduled_callback: "N",
				completed: "N"

			}],
			paginaEstatus: 1,
			campaActu: '',
			categorias: [],
			carriers: [],
			i18n: i18n,
			// Variables para lista default
			editandoCampana: false,
			listaDefault: '',
			selectListas: [],
			// Variables para cargar mensajes mediante CSV
			csv: [],
			botones: [],
			mensaje: "",
			fileRead: false,
			generatedMessages: [],
			// Fin
			// Variables para CRM
			actionCRM: -1,
			// Fin
			// INGROUPS
			ingroupsModal: false,
			ingroupsRegs: [],
			campaignIngroups: [],
			ingroupsPage: 1,
			ingroupsCount: 1,
			campaignIngroupsId: "",
			// INGROUPS
			//POLLS
			pollsModal: false,
			polls: [],
			id_campana: '',
			id_poll: '',
			associatedPolls: [],
			assocPoll: '',
			headerAssoc: [{
				label: traducirFrase("Nombre"),
				key: 'nombre'
			}, ],
			optionsAssoc: [{
				action: 'delete',
				tooltip: traducirFrase("Quitar Encuesta"),
				icon: 'delete',
			}, ],
			poll: '',
			loadingPolls: false,
			// POLLS
			targets: {
				assoc: false
			},
			one: {
				id_poll: '',
				nombre: '',
			},
			// XFERS
			xfersModal: false,
			xfersRegs: [],
			campaignXfers: [],
			xfersPage: 1,
			xfersCount: 1,
			xfersModal: false,
			campaignXfersId: "",
			// XFERS
			campanaMetodo: '',
			audios: [],
			texto: "",
			// Rango campanas
			datesModal: false,
			datesValues: [],
			datesCampaign: "",
			// Rango campanas
			// Cosas para la seleccion de DID ===============
			selectDids: [],
			campaignCID: '0000000000',
			// ==============================================
			// Funciones para frames extra en agente ========
			framesParametros: [{
					value: "phone_number",
					label: traducirFrase("Telefono")
				},
				{
					value: "user",
					label: traducirFrase("Agente")
				},
				{
					value: "dialvox_call_type",
					label: traducirFrase("Tipo de Llamada")
				},
				{
					value: "call_id",
					label: traducirFrase("Id de Llamada")
				},
				{
					value: "lead_id",
					label: traducirFrase("Id de Registro (Lead Id)")
				},
				{
					value: "lead_id_timestamp",
					label: traducirFrase("Id de Registro Extendido (Lead Id + )")
				},
				{
					value: "lead_id_time",
					label: traducirFrase("Tiempo (HH:MM)")
				},
				{
					value: "lead_id_date",
					label: traducirFrase("Fecha (YYYY-mm-dd)")
				},
				{
					value: "source_id",
					label: traducirFrase("Id Externo")
				},
				{
					value: "list_id",
					label: traducirFrase("Id de Lista")
				},
				{
					value: "vendor_lead_code",
					label: traducirFrase("Clave (Vendor Lead Code)")
				},
				{
					value: "ingroup_id",
					label: traducirFrase("Grupo de entrada")
				},
				{
					value: "first_name",
					label: traducirFrase("Nombre")
				},
				{
					value: "last_name",
					label: traducirFrase("Apellidos")
				},
				{
					value: "email",
					label: traducirFrase("Correo electrónico")
				},
				{
					value: "address1",
					label: traducirFrase("Dirección")
				},
				{
					value: "postal_code",
					label: traducirFrase("Código postal")
				},
			],
			framesModal: false,
			frames: [],
			framesCampana: "",
			// ==============================================
			// Cosas para la lista por defecto
			list_id_campaign: "",
			// ==============================================
			// Closes Issue #497 {
			camposCRM: [],
			// } Closes Issue #497
			// Closes Issue #596 {
			usuariosModal: false,
			usuariosXCampanas: [],
			usuariosIdCampana: '',
			// }
			autopausaCodigo: '',
			autopausaTono: '',
			autopausaMetodo: '',
			autopausaVolumen: 50,
			autopausaTiempo: 10,
			estadosPausaAutopausa: [],
			autopausaCampana: '',
			autopausaActiva: false,
			autopausaAudio: new Audio(),

			maximoPermitido: window.MAXIMO_PERMITIDO,

			tiempoSeleccionPausa: 15,
		},
		watch: {
			campanaMetodo: (val) => {
				analiza()
				let blending = document.getElementById("allow_blending")
				if (blending.checked && (val == 'MANUAL' || val == 'BLASTER')) {
					blending.checked = false
				}
			},
		},
		methods: {
			cambiar: function() {
				app.fileRead = false
				$("#fileLabel").text($("#archivo")[0].files[0].name)
			},
			showDates: function(id) {
				this.datesModal = true
				this.datesCampaign = id
			},
			downloadFiles: function() {
				//window.location.href = `campanas/getDialReport?campana=${this.datesCampaign}`
				let datesValues = $("#downloadDateCampaign").val().split(" - ")
				let strDate = ""
				let url = `campanas/getDialReport?archived=1&campana=${this.datesCampaign}`
				if (datesValues[0]) {
					strDate += `&fechaIni=${datesValues[0]}`
				}
				if (datesValues[1]) {
					strDate += `&fechaFin=${datesValues[1]}`
				}
				url += strDate
				window.location.href = url
			},
			cancelButtonCSV: function() {
				console.log("funcion cancelButton");
				$("#formuUp").modal("close");
				$("#fileLabel").text("Selecciona tu archivo")
				$("#archivoAdjuntoLabel").text("Adjuntar archivo")
				document.getElementById("archivo").value = ""
				//document.getElementById("archivoAdjunto").value = ""
				app.fileRead = false;
			},
			abreModal2: function(id, idWA) {
				cargaListasNegras();
				app.obtenerDIDs()
				app.seleccionarListas()
				flagInfo = true, flagInfo2 = true, flagInfo3 = true;
				document.getElementById("barritaAlt").style.display = "block";
				$("#idCampana").val(id);
				app.cargaAudios()
				let self = this;
				$.ajax({
					url: "campanas/getCampaignDetails",
					type: "POST",
					data: {
						campana: id
					},
					error: function(err) {
						console.log(err);
					},
					dataType: "text",
					success: function(response) {
						var resp = JSON.parse(response);
						var otra = JSON.parse(response);
						if (resp.Estado == "ok") {
							app.editandoCampana = true

							const autoPausa = resp.Autopausa;
							const extraInfo = resp.ExtraInfo;

							resp = resp.Campana;


							if (extraInfo) {
								app.tiempoSeleccionPausa = extraInfo.tiempoSeleccionPausa
							}

							if (parseFloat(resp.auto_dial_level) > 8) {
								app.maxinoInt = parseFloat(resp.auto_dial_level) + 5;
							}
							$.ajax({
								url: "campanas/getBlackList",
								type: "POST",
								data: {
									campana: id
								},
								error: function(err) {
									console.log(err);
								},
								dataType: "text",
								success: function(response) {
									var resp = JSON.parse(response);
									if (resp.Estado == "ok") {
										$("#ListasNegras").val(resp.idLista);

									} else {
										$("#ListasNegras").val("-1");
										M.toast({
											html: resp.Descripcion
										});
									}
								}
							});

							gen_rpost("GrupoDeEntrada/seleccionarIngroupsCampana", {
								campana: id
							}).then(results => {
								self.inboundsCampaign = results.Ingroups;
								document.getElementById("barritaAlt").style.display = "none";
								$("#formuModal").modal("open");
							}).catch(err => {
								console.log(err)
							})
							self.default_xfer = resp.default_xfer_group;
							self.RECORDLlamada = resp.campaign_recording;
							if (otra.WA && typeof otra.WA._id === "string") {
								$.ajax({
									url: "campanas/getcampaignconfigWa",
									type: "POST",
									dataType: "text",
									error: function(err) {
										console.log(err);
									},
									success: function(res) {
										var response = {};
										try {
											response = JSON.parse(res);
											console.log(response);

											if (response.Estado === "ok") {
												$("#wa_grupoTelefonos").html("")
												response.GrupoTelefonos.forEach((elem) => {
													if ($("#wa_grupoTelefonos").val() == "")
														$("#wa_grupoTelefonos").val("elem._id");
													$("#wa_grupoTelefonos").append(`<option value="${elem._id}">${elem.nombre}</option>`);
												});
												$("#wa_listaNegra").html("");
												$("#wa_listaNegra").append(`<option value="-1" selected>Sin lista negra</option>`);
												response.ListaNegra.forEach((elem) => {
													$("#wa_listaNegra").append(`<option value='${elem._id}'>${elem.Nombre}</option>`)
												})
												document.getElementById("tituloModal").innerHTML = i18n.gettext("Editar la campaña") + ":" + resp.campaign_name + "(" + id + ")";
												$("#nombre_campana").val(resp.campaign_name);
												$("#descripcion_campana").val(resp.campaign_description);
												$("#activa").val(resp.active);
												$("#web_form").val(resp.web_form_address);
												$("#web_form_address_two").val(resp.web_form_address_two);


												if (otra.WA && typeof otra.WA._id === "string") {
													document.getElementById("allow_wa").checked = (otra.allow_wa)
													$("#idcampana_wa").val(otra.WA._id);
													$("#wa_grupoTelefonos").val(otra.WA.grupoTelefonos)
													$("#wa_listaNegra").val(otra.WA.listaNegra)
													let fIni = otra.WA.fechaInicio.split("/")
													let fEnd = otra.WA.fechaFin.split("/")
													$("#fechaWA").val(`${fIni[2]}-${fIni[0]}-${fIni[1]} - ${fEnd[2]}-${fEnd[0]}-${fEnd[1]}`)
													$("#wa_horaI").val(otra.WA.horaInicio)
													$("#wa_horaF").val(otra.WA.horaFin)
													$("#wa_nombreCamp").val(otra.WA.nombre)
													$("#idmensaje_wa").val(otra.WA.autoRespuesta)
													$("#mensaje_wa").val(otra.MensajeWAM)
													document.getElementById("autoRespuesta").checked = otra.MensajeWAM != ""

													$("#wa_modoChat").val(otra.WA.modo)
													$("#wa_tiempoChat").val(otra.WA.tiempo)
													$("#wa_limiteChat").val(otra.WA.limiteChats)

												} else {
													document.getElementById("allow_wa").checked = false
												}

												if (resp.dial_method === "BLASTER") {
													$("#metodo_marcado").html("<option value='BLASTER'>BLASTER</option>");
												} else {
													$("#metodo_marcado").html(`
														<option value='MANUAL' selected='selected'>${traducirFrase("SALIENTE - MANUAL")}</option>
														<option value='RATIO'>${traducirFrase("PROGRESIVO")}</option>
														<option value='ADAPT_AVERAGE'>${traducirFrase("PREDICTIVO PROMEDIO")}</option>
														<option value='ADAPT_HARD_LIMIT'>${traducirFrase("PREDICTIVO ESTRICTO")}</option>
														<option value='ADAPT_TAPERED'>${traducirFrase("PREDICTIVO TAPERED ")}</option>
														<option value='INBOUND_MAN'>${traducirFrase("ENTRADA - MANUAL")}</option>
														<option value='INBOUND_MAN_AUTOPAUSA'>${traducirFrase("ENTRADA - ASISTIDO")}</option>
													`);
												}

												if (autoPausa) {
													app.campanaMetodo = "INBOUND_MAN_AUTOPAUSA";
													app.autopausaTono = autoPausa.tono;
													app.autopausaVolumen = autoPausa.volumen;
													app.autopausaMetodo = autoPausa.metodo;
													app.autopausaTiempo = autoPausa.tiempo;
												} else {
													app.campanaMetodo = resp.dial_method;
												}


												analiza();

												app.intensidad_marcado = parseFloat(resp.auto_dial_level);
												app.percentage = parseInt(resp.adaptive_dropped_percentage);
												app.objetivo = parseInt(resp.adaptive_dl_diff_target);

												app.intensidad = parseInt(resp.adaptive_intensity)

												app.maximoInt = parseFloat(resp.adaptive_maximum_level);
												app.cola = parseInt(resp.hopper_level);
												$("#orden_lista").val(resp.lead_order);
												$("#orden_lista_aleatoria").val(resp.lead_order_randomize);

												app.campaignCID = resp.campaign_cid;
												app.list_id_campaign = resp.manual_dial_list_id;

												$("#tamaño_auto").val(resp.use_auto_hopper);
												document.getElementById('pestanas').checked = otra.pestana == 1;
												$("#tiempoDispo").val(otra.tiempoDispo);

												app.cargaCarrier().then(_ => {
													setTimeout(() => $("#carrier").val(resp.dial_prefix), 500)
												})
												document.getElementById('allow_beep').checked = otra.allow_beep == 1;
												$("#time_beep").val(otra.time_beep);
												$("#time_repeat").val(otra.time_repeat);
												if (resp.dead_to_dispo === "DISABLED") {
													$("#DEAD").val("0");
												} else {
													$("#DEAD").val(resp.dead_max);
												}
												document.getElementById("allow_blending").checked = resp.campaign_allow_inbound == 'Y' ? true : false
												app.getAllow_beep();
												analiza();
												app.gaugeVal = parseFloat(resp.auto_dial_level);
												analiza();
												cambiaAguja();
												if (gauge == null) {
													// cambiaAguja();
													app.gaugeVal = parseFloat(resp.auto_dial_level);
													// gauge.set(parseFloat(resp.auto_dial_level), 100);
													cambiaAguja();

												}

											} else {
												M.toast({
													html: response.Descripcion
												});
											}
										} catch (e) {
											console.log(e);
										}
									}
								});
							} else {
								document.getElementById("tituloModal").innerHTML = i18n.gettext("Editar la campaña") + ":" + resp.campaign_name + "(" + id + ")";
								$("#nombre_campana").val(resp.campaign_name);
								$("#descripcion_campana").val(resp.campaign_description);
								$("#activa").val(resp.active);
								$("#web_form").val(resp.web_form_address);
								$("#web_form_address_two").val(resp.web_form_address_two);


								if (otra.WA && typeof otra.WA._id === "string") {
									document.getElementById("allow_wa").checked = (otra.allow_wa)
									$("#idcampana_wa").val(otra.WA._id);
									$("#wa_grupoTelefonos").val(otra.WA.grupoTelefonos)
									$("#wa_listaNegra").val(otra.WA.listaNegra)
									let fIni = otra.WA.fechaInicio.split("/")
									let fEnd = otra.WA.fechaFin.split("/")
									$("#fechaWA").val(`${fIni[2]}-${fIni[0]}-${fIni[1]} - ${fEnd[2]}-${fEnd[0]}-${fEnd[1]}`)
									$("#wa_horaI").val(otra.WA.horaInicio)
									$("#wa_horaF").val(otra.WA.horaFin)
									$("#wa_nombreCamp").val(otra.WA.nombre)
									$("#idmensaje_wa").val(otra.WA.autoRespuesta)
									document.getElementById("autoRespuesta").checked = otra.MensajeWAM != ""
									$("#mensaje_wa").val(otra.MensajeWAM)
								}
								if (resp.dial_method === "BLASTER") {
									$("#metodo_marcado").html("<option value='BLASTER'>BLASTER</option>");
								} else {
									$("#metodo_marcado").html(`
										<option value='MANUAL' selected='selected'>${traducirFrase("SALIENTE - MANUAL")}</option>
										<option value='RATIO'>${traducirFrase("PROGRESIVO")}</option>
										<option value='ADAPT_AVERAGE'>${traducirFrase("PREDICTIVO PROMEDIO")}</option>
										<option value='ADAPT_HARD_LIMIT'>${traducirFrase("PREDICTIVO ESTRICTO")}</option>
										<option value='ADAPT_TAPERED'>${traducirFrase("PREDICTIVO TAPERED ")}</option>
										<option value='INBOUND_MAN'>${traducirFrase("ENTRADA - MANUAL")}</option>
										<option value='INBOUND_MAN_AUTOPAUSA'>${traducirFrase("ENTRADA - ASISTIDO")}</option>
									`);
								}

								if (autoPausa) {
									app.campanaMetodo = "INBOUND_MAN_AUTOPAUSA";
									app.autopausaTono = autoPausa.tono;
									app.autopausaVolumen = autoPausa.volumen;
									app.autopausaMetodo = autoPausa.metodo;
									app.autopausaTiempo = autoPausa.tiempo;
								} else {
									app.campanaMetodo = resp.dial_method;
								}

								analiza();

								app.intensidad_marcado = parseFloat(resp.auto_dial_level);
								app.percentage = parseInt(resp.adaptive_dropped_percentage);
								app.objetivo = parseInt(resp.adaptive_dl_diff_target);

								app.intensidad = parseInt(resp.adaptive_intensity);

								app.maximoInt = parseFloat(resp.adaptive_maximum_level);
								app.cola = parseInt(resp.hopper_level);
								app.campaignCID = resp.campaign_cid;
								app.list_id_campaign = resp.manual_dial_list_id;
								$("#orden_lista").val(resp.lead_order);
								$("#orden_lista_aleatoria").val(resp.lead_order_randomize);

								$("#tamaño_auto").val(resp.use_auto_hopper);
								document.getElementById('pestanas').checked = otra.pestana == 1;
								$("#tiempoDispo").val(otra.tiempoDispo);
								app.cargaCarrier().then(_ => {
									setTimeout(() => $("#carrier").val(resp.dial_prefix), 500)
								})
								document.getElementById('allow_beep').checked = otra.allow_beep == 1;
								$("#time_beep").val(otra.time_beep);
								$("#time_repeat").val(otra.time_repeat);
								if (resp.dead_to_dispo === "DISABLED") {
									$("#DEAD").val("0");
								} else {
									$("#DEAD").val(resp.dead_max);
								}
								document.getElementById("allow_blending").checked = resp.campaign_allow_inbound == 'Y' ? true : false
								app.getAllow_beep();
								analiza();
								app.gaugeVal = parseFloat(resp.auto_dial_level);
								cambiaAguja();
								if (gauge == null) {
									// cambiaAguja();
									app.gaugeVal = parseFloat(resp.auto_dial_level);
									// gauge.set(parseFloat(resp.auto_dial_level), 100);
									cambiaAguja();

								}
							}


						} else {
							M.toast({
								html: resp.Descripcion
							});
						}
					}
				});
				document.getElementById("CrearCampa").innerHTML = i18n.gettext("Editar") + "<i class='material-icons right'>send</i>";
			},
			modalMensajes: function() {
				//$("#idCampana").val(id);
				$("#formuUp").modal("open");

			},
			abreModal3: function(nombre, id) {
				window.location.href = '/<?= RUTA_MAESTRA; ?>/index.php/campanas/estadosCalificacion?campana=' + id;
			},
			abreModal4: function(nombre, id) {
				window.location.href = '<?= MODULOS; ?>reciclajeLeads?campana=' + id;
			},
			abreModalPausa: function(id) {
				window.location.href = '/<?= RUTA_MAESTRA; ?>/index.php/estadosPausa/index?campana=' + id;
			},
			translate: function(texto) {
				if (i18n) return i18n.gettext(texto)
			},

			mostrarNuevoStatus: function() {
				M.toast({
					'html': traducirFrase('Cargando datos')
				});
				$.ajax({
					url: "categorias/getCategoriesSelect",
					type: "POST",
					dataType: "text",
					success: function(response) {
						var res = JSON.parse(response);
						if (res.Estado == 'ok') {
							app.categorias = res.Registros;

							app.statusCampaignShow = !app.statusCampaignShow;
							setTimeout(() => {
								var Arreglo = $('select');
								for (var i = 0; i < Arreglo.length; i++) {
									if (Arreglo[i].id != '' && Arreglo[i].options != null) {
										$("#" + Arreglo[i].id).formSelect();
									}
								}
								$('.tooltipped').tooltip();
							}, 100);


						} else {
							M.toast({
								html: res.Descripcion
							});
						}
					},
					error: function(data) {
						console.log(data);
					}
				});
			},
			cargaCarrier: function() {
				return new Promise((s, r) => {
					$.ajax({
						url: "campanas/getCarriersSelect",
						type: "POST",
						dataType: "text",
						success: function(response) {
							var res = JSON.parse(response);
							if (res.Estado == 'ok') {
								app.carriers = res.Registros;
							} else {
								M.toast({
									html: res.Descripcion
								});
							}
							s()
						},
						error: function(data) {
							console.log(data);
							s()
						}
					});
				})
			},
			cargaCategorias: function() {
				$.ajax({
					url: "categorias/getCategoriesSelect",
					type: "POST",
					dataType: "text",
					success: function(response) {
						var res = JSON.parse(response);
						if (res.Estado == 'ok') {
							app.categorias = res.Registros;
							var Arreglo = $('select');
							for (var i = 0; i < Arreglo.length; i++) {
								if (Arreglo[i].id != '') {
									$("#" + Arreglo[i].id).formSelect();
								}
							}
						} else {
							M.toast({
								html: res.Descripcion
							});
						}
					},
					error: function(data) {
						console.log(data);
					}
				});
			},
			actualiza: function() {
				gauge.set(app.gaugeVal);
			},
			plus: function() {
				if ((parseFloat(app.gaugeVal) + 0.1) < app.maximoInt) {
					var a = parseFloat(app.gaugeVal);
					var res = a + 0.1;
					app.gaugeVal = res.toFixed(1);
					// gauge.set(res);
					cambiaAguja();
				}
			},
			minus: function() {
				if (parseFloat(app.gaugeVal) > 0) {
					var a = parseFloat(app.gaugeVal);
					var res = a - 0.1;
					app.gaugeVal = res.toFixed(1);
					// gauge.set(res);
					cambiaAguja();
				}
			},
			plusPer: function() {
				if (this.percentage < 100)
					this.percentage++;
			},
			minPer: function() {
				if (this.percentage > 0)
					this.percentage--;
			},
			renderModCamp: function(comp, id) {
				this.componenteActivo = comp;
				this.dataBuffer = id;
			},
			nuevaCampana: function() {
				$("#CrearCampa").attr("disabled", true);
				var idCampana = $("#idCampana").val();
				var nombre_campana = $("#nombre_campana").val();
				var descripcion_campana = $("#descripcion_campana").val();
				var web_form = $("#web_form").val();
				var web_form_address_two = $("#web_form_address_two").val();
				var activa = $("#activa").val();
				var metodo_marcado = app.campanaMetodo;
				analiza();

				var intensidad_marcado = $("#intensidad_marcado").val();
				var intensidad_llamadas = $("#intensidad_llamadas").val();
				var objetivo_intensidad = $("#objetivo_intensidad").val();

				var algoritmo_intensidad = $("#intensidad_algoritmo").val();

				var maximo_intensidad = $("#maximo_intensidad").val();
				var orden_lista = $("#orden_lista").val();
				var tamaño_cola = $("#tamaño_cola").val();
				var tamaño_auto = $("#tamaño_auto").val();
				var lista_negra = $("#ListasNegras").val();
				let lineas = $("#lineas_campana_blaster").val();
				let audio_campana_blaster = $("#audio_campana_blaster").val();
				var aleator = 'N';
				var carrier = $("#carrier").val();
				if (orden_lista == "RANDOM") {
					aleator = 'Y';
					orden_lista = "UP";
				}
				let blended = document.getElementById("allow_blending").checked ? 'Y' : 'N'
				var parametros = {
					BLENDED: blended,
					idCampana: idCampana,
					nombreCampana: nombre_campana,
					descripcionCampana: descripcion_campana,
					activa: activa,
					web_form: web_form,
					hopper_level: tamaño_cola,
					auto_dial_level: intensidad_marcado,
					dial_method: app.campanaMetodo,
					web_form_address_two: web_form_address_two,
					drop_percentage_limit: intensidad_llamadas,
					adaptive_dl_diff_target: objetivo_intensidad,
					adaptive_intensity: algoritmo_intensidad,
					adaptive_maximum_level: maximo_intensidad,
					lead_order: orden_lista,
					lead_order_randomize: aleator,
					use_auto_hopper: tamaño_auto,
					carrier: carrier,
					ventanas: document.getElementById('pestanas').checked ? 1 : 0,
					tiempoDispo: $("#tiempoDispo").val(),
					allow_beep: document.getElementById('allow_beep').checked ? 1 : 0,
					time_beep: $("#time_beep").val(),
					audio: $("#audio_campana_blaster").val(),
					lineas: lineas,
					time_repeat: $("#time_repeat").val(),
					defaul_xfer: app.default_xfer,
					campaign_recording: app.RECORDLlamada,
					campaign_cid: app.campaignCID,
					DEAD: $("#DEAD").val(),
					<?php if (NEED_WA && $_SESSION['allow_waCli']) { ?>allow_wa: document.getElementById("allow_wa").checked ? 1 : 0 <?php } ?>,
					tiempoSeleccionPausa: app.tiempoSeleccionPausa,
				};

				if (app.campanaMetodo === "INBOUND_MAN_AUTOPAUSA") {
					parametros.dial_method = "INBOUND_MAN";
					parametros.isAutopausa = true;
					parametros.autoPausaTono = app.autopausaTono;
					parametros.autoPausaVolumen = app.autopausaVolumen;
					parametros.autoPausaMetodo = app.autopausaMetodo;
					parametros.autoPausaTiempo = app.autopausaTiempo;
				}

				<?php if (NEED_WA && $_SESSION["allow_waCli"]) { ?>
					if (document.getElementById("allow_wa").checked) {
						parametros.idCampanaWA = $("#idcampana_wa").val();
						parametros.grupoTelefono = $("#wa_grupoTelefonos").val();
						parametros.fechaInicio = dIni($("#fechaWA").val());
						parametros.fechaFin = dEnd($("#fechaWA").val());
						parametros.horaInicio = $("#wa_horaI").val();
						parametros.horaFin = $("#wa_horaF").val();

						parametros.nombre = $("#wa_nombreCamp").val();
						parametros.listaNegra = $("#wa_listaNegra").val();
						parametros.mensaje = $("#mensaje_wa").val()

						parametros.modoChat = $("#wa_modoChat").val()
						parametros.tiempoChat = $("#wa_tiempoChat").val()
						parametros.limiteChat = $("#wa_limiteChat").val()

						const tieneAutoRespuesta = document.getElementById("autoRespuesta").checked
						parametros.autoRespuesta = $("#idmensaje_wa").val()
						parametros.mensaje = tieneAutoRespuesta ? $("#mensaje_wa").val() : "";

						parametros.activarLlamada = document.getElementById("autoresLlam_wa").checked == true ? 1 : 0;
						parametros.llamada = $("#mensajeLlam_wa").val();
						
					}
				<?php } ?>
				$.ajax({
					url: "campanas/addCampaign",
					type: "POST",
					data: parametros,
					dataType: "text",
					success: function(response) {
						console.log(response)
						var resp = JSON.parse(response);
						console.log(resp)
						if (resp.Estado == 'ok') {

							idCampana = resp.idCampana;

							var params = {
								campana: idCampana,
								lista: lista_negra
							}
							$.ajax({
								url: "campanas/assocBlackList",
								type: "POST",
								data: params,
								dataType: "text",
								success: function(response) {
									continua();
									var resp = JSON.parse(response);
									if (resp.Estado == 'ok') {

										$("#CrearCampa").attr("disabled", false);
										$("#formuModal").modal("close");
										$("#idCampana").val("");
										$("#nombre_campana").val("");
										$("#descripcion_campana").val("");
										$("#web_form").val("");
										$("#web_form_address_two").val("");
										$("#activa").val("");

										app.campanaMetodo = "";
										app.autopausaTono = "";
										app.autopausaMetodo = "";
										app.autopausaVolumen = 50;
										app.autopausaTiempo = 10;

										app.tiempoSeleccionPausa = 15;

										analiza();

										$("#intensidad_marcado").val("");
										$("#intensidad_llamadas").val("");
										$("#objetivo_intensidad").val("");
										$("#maximo_intensidad").val("");
										$("#intensidad").val("");
										$("#orden_lista").val("");
										$("#orden_lista_aleatoria").val("");
										$("#tamaño_cola").val("");
										$("#tamaño_auto").val("");
										app.intensidad_marcado = 0;
										app.percentage = 10;
										app.objetivo = 0;

										app.intensidad = 0;

										app.maximoInt = MAXIMO_INTENSIDAD_DEFAULT;
										app.cola = 50;
										app.campaignCID = '0000000000'
										cambiaPagina(pagina);
									} else {
										$("#CrearCampa").attr("disabled", false);
										M.toast({
											'html': resp.Descripcion
										});
									}
									borrarWA();
									$("#CrearCampa").attr("disabled", false);
								},
								error: function(data) {
									console.log(data);
								}
							});
						} else {

							$("#CrearCampa").attr("disabled", false);
							M.toast({
								'html': resp.Descripcion
							});
						}
						borrarWA();
						$("#CrearCampa").attr("disabled", false);
					},
					error: function(data) {
						console.log(data);
					}
				});




			},
			editarCampana: function() {
				$("#CrearCampa").attr("disabled", true);
				var idCampana = $("#idCampana").val();
				var nombre_campana = $("#nombre_campana").val();
				var descripcion_campana = $("#descripcion_campana").val();
				var web_form = $("#web_form").val();
				var web_form_address_two = $("#web_form_address_two").val();
				var activa = $("#activa").val();
				var metodo_marcado = app.campanaMetodo;
				var intensidad_marcado = $("#intensidad_marcado").val();
				var intensidad_llamadas = $("#intensidad_llamadas").val();
				var objetivo_intensidad = $("#objetivo_intensidad").val();

				var algoritmo_intensidad = $("#intensidad_algoritmo").val();

				var maximo_intensidad = $("#maximo_intensidad").val();
				var orden_lista = $("#orden_lista").val();
				var tamaño_cola = $("#tamaño_cola").val();
				var tamaño_auto = $("#tamaño_auto").val();
				var lista_negra = $("#ListasNegras").val();
				var aleator = 'N';
				var carrier = $("#carrier").val();
				let blended = document.getElementById("allow_blending").checked ? 'Y' : 'N'
				if (orden_lista == "RANDOM") {
					aleator = 'Y';
					orden_lista = "RANDOM";
				}
				var parametros = {
					BLENDED: blended,
					idCampana: idCampana,
					nombreCampana: nombre_campana,
					descripcionCampana: descripcion_campana,
					activa: activa,
					web_form: web_form,
					hopper_level: tamaño_cola,
					auto_dial_level: intensidad_marcado,
					dial_method: app.campanaMetodo,
					web_form_address_two: web_form_address_two,
					drop_percentage_limit: intensidad_llamadas,
					adaptive_dl_diff_target: objetivo_intensidad,
					adaptive_intensity: algoritmo_intensidad,
					adaptive_maximum_level: maximo_intensidad,
					lead_order: orden_lista,
					lead_order_randomize: aleator,
					use_auto_hopper: tamaño_auto,
					carrier: carrier,
					ventanas: document.getElementById('pestanas').checked ? 1 : 0,
					tiempoDispo: $("#tiempoDispo").val(),
					allow_beep: document.getElementById('allow_beep').checked ? 1 : 0,
					time_beep: $("#time_beep").val(),
					time_repeat: $("#time_repeat").val(),
					defaul_xfer: app.default_xfer,
					campaign_recording: app.RECORDLlamada,
					campaign_cid: app.campaignCID,
					list_id: app.list_id_campaign,
					DEAD: $("#DEAD").val(),
					<?php if (NEED_WA && $_SESSION["allow_waCli"]) { ?>allow_wa: document.getElementById("allow_wa").checked ? 1 : 0 <?php } ?>,
					tiempoSeleccionPausa: app.tiempoSeleccionPausa
				};

				if (app.campanaMetodo === "INBOUND_MAN_AUTOPAUSA") {
					parametros.dial_method = "INBOUND_MAN";
					parametros.isAutopausa = true;
					parametros.autoPausaTono = app.autopausaTono;
					parametros.autoPausaVolumen = app.autopausaVolumen;
					parametros.autoPausaMetodo = app.autopausaMetodo;
					parametros.autoPausaTiempo = app.autopausaTiempo;
				}

				<?php if (NEED_WA && $_SESSION["allow_waCli"]) { ?>
					if (document.getElementById("allow_wa").checked) {
						parametros.idCampanaWA = $("#idcampana_wa").val();
						parametros.grupoTelefono = $("#wa_grupoTelefonos").val();
						parametros.fechaInicio = dIni($("#fechaWA").val());
						parametros.fechaFin = dEnd($("#fechaWA").val());
						parametros.horaInicio = $("#wa_horaI").val();
						parametros.horaFin = $("#wa_horaF").val();

						parametros.nombre = $("#wa_nombreCamp").val();
						parametros.listaNegra = $("#wa_listaNegra").val();
						parametros.mensaje = $("#mensaje_wa").val()
						parametros.modoChat = $("#wa_modoChat").val()
						parametros.tiempoChat = $("#wa_tiempoChat").val()
						parametros.limiteChat = $("#wa_limiteChat").val()

						const tieneAutoRespuesta = document.getElementById("autoRespuesta").checked
						parametros.autoRespuesta = $("#idmensaje_wa").val()
						parametros.mensaje = tieneAutoRespuesta ? $("#mensaje_wa").val() : "";

						parametros.activarLlamada = document.getElementById("autoresLlam_wa").checked == true ? 1 : 0;
						parametros.llamada = $("#mensajeLlam_wa").val();
					}
				<?php } ?>
				$.ajax({
					url: "campanas/updateCampaign",
					type: "POST",
					data: parametros,
					dataType: "text",
					success: function(response) {

						var resp = JSON.parse(response);

						if (resp.Estado == 'ok') {
							var params = {
								campana: idCampana,
								lista: lista_negra
							}
							$.ajax({
								url: "campanas/assocBlackList",
								type: "POST",
								data: params,
								dataType: "text",
								success: function(response) {
									continua();
									var resp = JSON.parse(response);
									if (resp.Estado == 'ok') {
										$("#CrearCampa").attr("disabled", false);
										$("#formuModal").modal("close");
										$("#idCampana").val("");
										$("#nombre_campana").val("");
										$("#descripcion_campana").val("");
										$("#web_form").val("");
										$("#web_form_address_two").val("");
										$("#activa").val("");
										app.campanaMetodo = "";
										app.autopausaTono = "";
										app.autopausaMetodo = "";
										app.autopausaVolumen = 50;
										app.autopausaTiempo = 10;

										app.tiempoSeleccionPausa = 15;

										$("#intensidad_marcado").val("");
										$("#intensidad_llamadas").val("");
										$("#objetivo_intensidad").val("");
										$("#maximo_intensidad").val("");
										$("#intensidad").val("");
										$("#orden_lista").val("");
										$("#orden_lista_aleatoria").val("");
										$("#tamaño_cola").val("");
										$("#tamaño_auto").val("");

										app.gaugeVal = 0;
										app.campaignCID = '0000000000'
										cambiaAguja();
										cambiaPagina(pagina);
									} else {
										$("#CrearCampa").attr("disabled", false);
										M.toast({
											'html': resp.Descripcion
										});
									}
									<?php if (NEED_WA && $_SESSION["allow_waCli"]) { ?>
										borrarWA();
									<?php } ?>
									$("#CrearCampa").attr("disabled", false);
								},
								error: function(data) {
									console.log(data);
								}
							});

						} else {

							$("#CrearCampa").attr("disabled", false);
							M.toast({
								'html': resp.Descripcion
							});
						}
						<?php if (NEED_WA && $_SESSION["allow_waCli"]) { ?>borrarWA();
					<?php } ?>

					}
				});
			},
			agregarCampo: function(value) {
				let elem = document.getElementById("plantillaMensaje")
				let start = elem.selectionStart
				let end = elem.selectionEnd
				let mess = elem.value
				elem.value = mess.substring(0, start) + "%" + value + "%" + mess.substr(end)
				app.mensaje = elem.value
				$("#plantillaMensaje").focus()
				let position = start + ("%" + value + "%").length;
				document.getElementById("plantillaMensaje").setSelectionRange(position, position)
				app.genMessagesPreview()
			},
			genMessagesPreview: function() {

				let error = false
				let results = []
				let elem = document.getElementById("plantillaMensaje")
				app.mensaje = elem.value
				for (let reg of app.csv.slice(0, 5)) {
					let str = app.mensaje

					for (let key in reg) {
						while (str.indexOf("%" + key + "%") != -1) {
							str = str.replace("%" + key + "%", "<span class='teal-text'>" + reg[key] + "</span>")
						}
					}

					let keys = Object.keys(reg)
					let regex = /[Tt][Ee][Ll][Ee][Ff][Oo][Nn][Oo]/
					for (key of keys) {
						if (regex.test(key)) {
							error = false
							break
						} else error = true
					}
					if (error) break
					let tempReg = str
					results.push(tempReg)
				}

				if (error) {
					sweetFailCustom(i18n.gettext('El telefono es un campo obligatorio'))
					app.fileRead = false;
				} else {
					app.generatedMessages = results.slice(0, 5);
				}

			},
			leerArchivo: function() {
				app.csv = [];
				app.botones = [];
				app.mensaje = "";
				let file = document.getElementById("archivo").files[0];
				if (file) {
					if (file.size > 500 * 1024) {
						M.toast({
							'html': traducirFrase("No puedes cargar un archivo mas grande de 500kb")
						});
					} else {
						SweetAlert.fire({
							type: "info",
							title: traducirFrase("Procesando"),
							html: traducirFrase("Espera mientras se lee el mensaje"),
							onBeforeOpen: () => {
								Swal.showLoading()
							}
						});

						let reader = new FileReader();
						reader.readAsText(file, "ISO-8859-1");
						reader.onload = function(evt) {

							let fileContent = evt.target.result
							let flag = true;

							let regs = fileContent.split(/r?\n/)
							let tempReg = regs.pop()
							if (tempReg != "") regs.push(tempReg)
							let fields = []
							regs.shift().replace('\r', '').split(',').map(value => {
								fields.push(value)
							})

							for (let i = 0; i < regs.length; i++) {
								let values = parserCSV(regs[i])
								if (values.length != fields.length) {
									flag = false;
									break;
								}

								let data = {}

								values.map((value, index) => {
									data[fields[index]] = value
								})
								app.csv.push(data)

							}

							fields.map(value => {
								app.botones.push({
									value: value
								})
							})
							if (flag) {
								let error = false
								let results = []

								for (let reg of app.csv.slice(0, 5)) {
									let str = app.mensaje

									for (let key in reg) {
										while (str.indexOf("%" + key + "%") != -1) {
											str = str.replace("%" + key + "%", "<b class='text-info'>" + reg[key] + "</b>")
										}
									}

									let keys = Object.keys(reg)
									let regex = /[Tt][Ee][Ll][Ee][Ff][Oo][Nn][Oo]/
									for (key of keys) {
										if (regex.test(key)) {
											error = false
											break
										} else error = true
									}
									if (error) break
									let tempReg = str
									results.push(tempReg)
								}

								if (error) {
									sweetFailCustom(i18n.gettext('El telefono es un campo obligatorio'))
									app.fileRead = false;
								} else {
									Swal.close()
									app.fileRead = true
									app.generatedMessages = [
										i18n.gettext("Escribe el mensaje para previsualizar"),
										i18n.gettext("Escribe el mensaje para previsualizar"),
										i18n.gettext("Escribe el mensaje para previsualizar"),
										i18n.gettext("Escribe el mensaje para previsualizar"),
										i18n.gettext("Escribe el mensaje para previsualizar")
									]
								}
							} else {
								sweetFailCustom(i18n.gettext('Error en el numero de registros y campos'))
								app.fileRead = false
							}

						}
						reader.onerror = function(evt) {
							console.log('error')
						}
					}
				}
			},
			swipeComponent: function(component, id) {
				M.toast({
					'html': traducirFrase('Cargando datos')
				});
				if (component == "settings") {
					if (!flagInfo) {
						flagInfo = true;
						$.ajax({
							url: "campanas/getCampaignDetails",
							type: "POST",
							data: {
								campana: id
							},
							dataType: "text",
							success: function(response) {
								var res = JSON.parse(response);
								if (res.Estado == 'ok') {
									app.dataBuffer = res;
									app.componenteActivo = component;
									M.updateTextFields();

									var Arreglo = $('select');
									for (var i = 0; i < Arreglo.length; i++) {
										if (Arreglo[i].id != '') {
											$("#" + Arreglo[i].id).formSelect();
										}
									}
									flagInfo = false;
									$('.tooltipped').tooltip();
								} else {
									M.toast({
										'html': resp.Descripcion
									});
								}
							}
						});
					}
				} else {
					app.componenteActivo = component;
				}

			},
			enviarMensajes: function() {
				sweetConfirm(i18n.gettext("¿Esta seguro de enviar los mensajes?"))
					.then(confirmRes => {
						if (confirmRes.value) {
							let elem = document.getElementById("plantillaMensaje")
							app.mensaje = elem.value;
							let file = $("#archivoAdjunto")[0].files[0]
							let archivoAdjunto =
								new FormData()
							if (file) {
								archivoAdjunto.append("adjunto", file, file.name)
							}
							let asdasd = JSON.stringify(app.csv);
							console.log(asdasd);
							archivoAdjunto.append("registros", asdasd)
							archivoAdjunto.append("mensaje", app.mensaje)
							archivoAdjunto.append("campana", idCampanaWAW)
							$.ajax({
								type: "POST",
								enctype: "multipart/form-data",
								url: "<?= MODULOS; ?>/Campanas/uploadMeesagesToWhatsApp",
								data: archivoAdjunto,
								processData: false,
								contentType: false,
								cache: false,
								success: function(res) {
									if (res.Estado != "error") {
										$("#formuUp").modal("close")

									} else {
										M.toast({
											'html': res.Descripcion
										});
									}
								},
								error: function(err) {
									console.log(err);
								}
							})
						}
					})
			},
			deleteCampana: function(nombre, id) {
				Swal.fire({
					type: 'warning',
					title: i18n.gettext("Eliminar campaña"),
					text: i18n.gettext("¿Desea borrar la campaña") + ' : ' + nombre + '?\n ' + i18n.gettext("Esta acción no se puede deshacer"),
					showCancelButton: true,
					confirmButtonColor: '#3085d6',
					cancelButtonColor: '#d33',
					confirmButtonText: i18n.gettext("Si"),
					cancelButtonText: i18n.gettext("Cancelar"),
					preConfirm: () => {
						$.ajax({
							url: "campanas/deleteCampaign",
							type: "POST",
							data: {
								campana: id
							},
							dataType: "text",
							success: function(response) {
								var res = JSON.parse(response);
								if (res.Estado == "error") {
									M.toast({
										'html': '<h1>Error:</h1>' + res.Descripcion
									});
								} else {
									M.toast({
										'html': traducirFrase('Campaña eliminada')
									});
									cambiaPagina(pagina);
								}
							}
						});
						Swal.fire(
							traducirFrase('Borrado'),
							traducirFrase('La campaña fue borrada'),
							'success'
						);
					}
				});

			},
			duplicarCampana: function(nombre, id) {
				Swal.fire({
					title: i18n.gettext("Duplicar campaña"),
					text: i18n.gettext("¿Desea duplicar la campaña") + ' : ' + nombre + '?\n.',
					type: 'question',
					showCancelButton: true,
					confirmButtonColor: '#3085d6',
					cancelButtonColor: '#d33',
					confirmButtonText: i18n.gettext("Si"),
					cancelButtonText: i18n.gettext("No")
				}).then((result) => {
					if (result.value) {
						M.toast({
							'html': traducirFrase('Duplicando campaña, por favor espere.')
						});
						$.ajax({
							url: "campanas/duplicateCampaign",
							type: "POST",
							data: {
								campana: id
							},
							dataType: "text",
							success: function(response) {
								cambiaPagina(pagina);
								var res = {};
								try {
									res = JSON.parse(response);
								} catch (e) {
									M.toast({
										'html': traducirFrase('Error al duplicar la campaña')
									});
									console.error(e);
									console.log(response);
								}
								if (res.Estado == 'ok') {
									M.toast({
										'html': traducirFrase('Campaña duplicada exitosamente')
									});
								} else {

									M.toast({
										'html': res.Descripcion
									});
								}
							}
						});
					}
				});
			},
			abreWA: function() {
				<?php if (NEED_WA && $_SESSION['allow_waCli']) { ?>
					try {
						var Prueba = document.getElementById("allow_wa");
						console.log(Prueba, Prueba.checked)
						if (Prueba.checked) {
							$.ajax({
								url: "campanas/getcampaignconfigWa",
								type: "POST",
								dataType: "text",
								error: function(err) {
									console.log(err);
								},
								success: function(res) {
									var response = {};
									try {
										console.log(res)
										response = JSON.parse(res);
										console.log(response);
										if (response.Estado === "ok") {
											$("#wa_grupoTelefonos").html("")
											response.GrupoTelefonos.forEach((elem) => {
												if ($("#wa_grupoTelefonos").val() == "")
													$("#wa_grupoTelefonos").val("elem._id");
												$("#wa_grupoTelefonos").append(`<option value="${elem._id}">${elem.nombre}</option>`);
											});
											$("#wa_listaNegra").html("");
											$("#wa_listaNegra").append(`<option value="" selected>Sin lista negra</option>`);
											response.ListaNegra.forEach((elem) => {
												$("#wa_listaNegra").append(`<option value='${elem._id}'>${elem.Nombre}</option>`)
											})
											$("#modalConfiguracionWa").modal("open");
										} else {
											console.log(res)
											M.toast({
												html: response.Descripcion
											});
										}
									} catch (e) {
										console.log(e);
									}
								}
							});
						}
					} catch (err) {
						console.log(err);
					}
				<?php } ?>
			},
			activaCampana: function(id) {
				$("#paginacion").hide();
				$("#spinnerPagination").show();
				M.toast({
					'html': traducirFrase('Modificando campaña, porfavor espere.')
				});
				if (!flagInfo2) {
					flagInfo2 = true;
					$.ajax({
						url: "campanas/changeCampaignStatus",
						type: "POST",
						data: {
							idCampana: id
						},
						dataType: "text",
						success: function(response) {
							flagInfo2 = false;
							try {
								var res = JSON.parse(response);
							} catch (e) {
								M.toast({
									'html': traducirFrase('Error al modificar campaña')
								});
								setTimeout(function() {
									$("#paginacion").show();
								}, 4000);
								setTimeout(function() {
									$("#spinnerPagination").hide();
								}, 4000);
								return console.error(e);

							}
							if (res.Estado == 'ok') {
								M.toast({
									'html': traducirFrase('Campaña modificada')
								});
								setTimeout(function() {
									$("#paginacion").show();
								}, 4000);
								setTimeout(function() {
									$("#spinnerPagination").hide();
								}, 4000);

							} else {
								M.toast({
									'html': traducirFrase('Error al modificar campaña')
								});
								setTimeout(function() {
									$("#paginacion").show();
								}, 4000);
								setTimeout(function() {
									$("#spinnerPagination").hide();
								}, 4000);
							}
						}
					});
					cambiaPagina(pagina);
				}
			},
			getAllow_beep: function() {
				$("#time_beep").attr("disabled", !document.getElementById('allow_beep').checked);
				$("#time_repeat").attr("disabled", !document.getElementById('allow_beep').checked);
			},
			cargaAudios() {
				console.log("carga audios")
				let self = this
				gen_rpost("IVR/seleccionarAudios").then(res => {
					self.audios = res.Archivos
				}).catch(err => console.log(err))
			},
			// INGROUPS NEW METHODS
			/*
				ingroupsModal: false,
				ingroupsRegs: [],
				campaignIngroups: [],
				ingroupsPage: 1,
				ingroupsCount: 1,
			*/
			showPolls($evt) {
				let self = this;
				self.pollsModal = true;
			},
			assoc($evt) {
				let self = this;
				this.loadingPolls = true;
				gen_rpost('Encuestas/getEncuestasSelect', {})
					.then((res) => {
						gen_rget('Encuestas/getEncuestasByCampaign', {
								campaign_id: $evt.id,
							})
							.then((resAssoc) => {
								self.id_campana = $evt.id;
								self.polls = res.Registros.map((v) => {
									return {
										value: v.id_encuesta,
										label: v.nombre,
									};
								});
								self.poll = "";
								self.associatedPolls = resAssoc.Registros.map(v => {
									const obj = Object.assign({}, v);
									obj.is_default = v.is_default == "0" ? 'N' : 'Y';
									return obj;
								});
								self.loadingPolls = false;
								self.toggle('assoc', true);
							})
							.catch((err) => console.log(err));
					})
					.catch((err) => console.log(err));
			},
			addAssoc() {
				let self = this;
				handled_rpost('Encuestas/assocCampaignEncuesta', {
						campaign_id: this.id_campana,
						id_encuesta: this.poll,
					})
					.then((res) => {
						self.assocPoll = '';
						self.assoc({
							id: this.id_campana,
						});
					})
					.catch((err) => console.log(err));
			},
			deleteAssoc($event) {
				let self = this;
				conf_rpost(
						'Encuestas/desassocCampaignEncuesta', {
							campaign_id: self.id_campana,
							id_encuesta: $event.id_encuesta,
						},
						traducirFrase(
							'Continuar esta acción eliminara la encuesta a la campaña seleccionada'
						)
					)
					.then((result) => {
						self.assoc({
							id: self.id_campana,
						});
					})
					.catch((err) => {
						console.log(err);
					});
			},
			isDefaultPoll($event) {
				let self = this;
				handled_rpost('Encuestas/defaultCampaignEncuesta', {
						campaign_id: this.id_campana,
						id_encuesta: $event.id_encuesta,
					})
					.then((res) => {
						self.assoc({
							id: self.id_campana,
						});
					})
					.catch((err) => console.log(err));

			},
			toggle(target, value) {
				if (target == 'add') {
					this.one = {
						nombre: '',
						id_poll: '',
					};
				}
				app.targets[target] = value ? value : !app.targets[target];
			},
			showIngroups($evt) {
				document.getElementById("barritaAlt").style.display = "block";
				this.loadIngroups($evt)
			},
			loadIngroups($evt, handler) {
				let self = this
				gen_rpost("GrupoDeEntrada/seleccionarIngroups", {
					pagina: this.ingroupsPage - 1,
					texto: this.texto
				}).then(results => {
					self.loadCampaignIngroups($evt, results.Ingroups)
				}).catch(err => {
					console.log(err)
				})
			},
			loadCampaignIngroups($evt, regs) {
				let self = this
				this.campaignIngroupsId = ''
				this.campaignIngroups = null
				this.ingroupsRegs = []
				this.campaignIngroupsId = $evt.id
				gen_rpost("campanas/getCampaignDetails", {
					campana: $evt.id
				}).then(res => {
					// closer_campaigns
					const closer_campaigns = res.Campana.closer_campaigns || ""
					self.campaignIngroups = new Set(closer_campaigns.split(" ").filter(v => v !== "" && v !== "-").reverse())
					regs.forEach(value => {
						if (self.campaignIngroups.has(value.id)) {
							value["InCampaign"] = 'Y'
						} else {
							value["InCampaign"] = 'N'
						}
					})
					self.ingroupsRegs = regs
					document.getElementById("barritaAlt").style.display = "none";
					self.ingroupsModal = true
				}).catch(err => console.log(err))
			},
			addIngroup($evt) {
				if (!this.campaignIngroups.has($evt.id)) {
					this.campaignIngroups.add($evt.id)
				} else {
					this.campaignIngroups.delete($evt.id)
				}
			},
			saveIngroups() {
				let self = this
				handled_rpost("campanas/changeIngroupCampaign", {
					id: this.campaignIngroupsId,
					ingroups: (function() {
						let str = ' '
						self.campaignIngroups.delete("-")
						self.campaignIngroups.forEach(value => {
							str += value + " "
						})
						str += "-"
						return str
					})()
				}).then(res => {
					self.campaignIngroupsId = ''
					self.campaignIngroups = null
					self.ingroupsRegs = []
				}).catch(err => console.log(err))
			},
			showXfers($evt) {
				this.loadXfers($evt)
				this.xfersModal = true
			},
			loadXfers($evt, handler) {
				let self = this
				gen_rpost("GrupoDeEntrada/seleccionarIngroups", {
					pagina: self.xfersPage - 1,
					texto: self.texto
				}).then(results => {
					self.loadCampaignXfers($evt, results.Ingroups)
				}).catch(err => {
					console.log(err)
				})
			},
			loadCampaignXfers($evt, regs) {
				let self = this
				this.campaignXfersId = $evt.id
				gen_rpost("campanas/getCampaignDetails", {
					campana: $evt.id
				}).then(res => {
					// closer_campaigns
					const xfer_groups = res.Campana.xfer_groups || ""
					self.campaignXfers = new Set(xfer_groups.split(" ").filter(v => v !== "" && v !== "-").reverse())
					regs.forEach(value => {
						if (self.campaignXfers.has(value.id)) {
							value["xfersCampaign"] = 'Y'
						} else {
							value["xfersCampaign"] = 'N'
						}
					})
					self.xfersRegs = regs
				}).catch(err => console.log(err))
			},
			addXfers($evt) {
				if (!this.campaignXfers.has($evt.id)) {
					this.campaignXfers.add($evt.id)
				} else {
					this.campaignXfers.delete($evt.id)
				}
			},
			saveXfers() {
				let self = this
				handled_rpost("campanas/changeXfersCampaign", {
					id: this.campaignXfersId,
					ingroups: (function() {
						let str = ' '
						self.campaignXfers.delete("-")
						self.campaignXfers.forEach(value => {
							str += value + " "
						})
						str += "-";
						return str
					})()
				}).then(res => {
					self.campaignXfersId = ''
					self.campaignXfers = null
					self.xfersRegs = []
				}).catch(err => console.log(err))
			},
			// END
			// Metodos para la edicion de dids
			obtenerDIDs() {
				// this.selectDids = []
				this.selectDids = []
				const self = this
				gen_rpost("IVR/seleccionarTelefonosDID", {}).then(results => {
					results.TelefonosDID.forEach(telefono => {
						self.selectDids.push({
							label: telefono.Descripcion,
							value: telefono.DIDExtension
						})
					})
				}).catch(console.log)
			},
			// Metodos para la administracion de frames de agente.
			// ==================================================
			abrirModalFrames($evt) {
				this.framesCampana = $evt.id
				handled_rpost("Campanas/listarFrames", {
					campana: this.framesCampana
				}).then(r => {
					this.frames = r.Frames.map(
						frame => this.generarFrame(frame)
					)
					this.framesModal = true
					// Closes Issue #497 {
					handled_rpost("CustomerRM/obtenerCamposPorCampana", {
						campana: this.framesCampana,
					}).then(r => {
						console.log("Res. obtenerCamposPorCampana: ", r)
						this.camposCRM = r.Resultados.map(v => ({
							grupo: v.CRM.Nombre,
							campos: v.Campos.map(c => ({
								value: c.Nombre + "_" + c.id,
								label: c.Nombre,
							}))
						}))
					}).catch(e => {
						console.log(e)
					})
					// } Closes Issue #497
				}).catch(e => {
					console.log(e)
				})
			},
			agregarFrameNuevo() {
				this.frames.push({
					id: "",
					titulo: "",
					urlBase: "",
					variables: [],
					variableSiguiente: {
						alias: "",
						valor: ""
					},
					estatico: false,
				})
			},
			agregarVariable(objFrame) {
				if (
					objFrame.variableSiguiente.valor !== "" &&
					objFrame.variableSiguiente.alias !== ""
				) {
					objFrame.variables.push({
						alias: objFrame.variableSiguiente.alias,
						valor: objFrame.variableSiguiente.valor
					})
					objFrame.variableSiguiente = {
						alias: "",
						valor: ""
					}
				}
			},
			generarFrame(objFrameOriginal) {
				const [
					urlBase,
					rawParams
				] = objFrameOriginal.Url.split("?")
				const tempParams = rawParams.split("&").filter(p => p !== "")
				const params = []
				let constParams = ""

				tempParams.forEach(p => {
					const [alias, valor] = p.split("=")
					if (valor.indexOf("{{ ") == -1) {
						constParams += (constParams === "" ? "?" : "&") + p
					} else {
						params.push({
							alias: alias || "",
							valor: valor.replace("{{ ", "").replace(" }}", "") || ""
						})
					}
				})

				return {
					id: objFrameOriginal.id,
					titulo: objFrameOriginal.Titulo,
					urlBase: urlBase + constParams,
					variables: params,
					variableSiguiente: {
						alias: "",
						valor: ""
					},
					estatico: parseInt(objFrameOriginal.Estatico) ? true : false
				}
			},
			generarURL(objFrame) {
				const params = objFrame.variables.map(vars => `${vars.alias}={{ ${vars.valor} }}`).join("&")
				let interrogacion = ""
				if (objFrame.urlBase.indexOf("?") === -1) {
					interrogacion = "?"
				} else if (objFrame.urlBase.indexOf("?") !== objFrame.urlBase.length) {
					interrogacion = "&"
				}
				return `${objFrame.urlBase}${interrogacion}${params}`;
			},
			generarURLPreview(objFrame) {
				if (objFrame.urlBase !== "") {
					const params = objFrame.variables.map(vars => `${vars.alias}=<span class='blue-text'>{{ ${vars.valor} }}</span>`).join("&")
					let interrogacion = ""
					if (objFrame.urlBase.indexOf("?") === -1) {
						interrogacion = "?"
					}
					return `${objFrame.urlBase}${interrogacion}${params}`;
				} else {
					return ""
				}
			},
			guardarFrame(objFrame) {
				gen_rpost("Campanas/agregarFrame", {
					url: this.generarURL(objFrame),
					titulo: objFrame.titulo,
					campana: this.framesCampana,
					estatico: objFrame.estatico ? 1 : 0
				}).then(r => {
					objFrame.id = r.Id
				}).catch(e => {
					console.log(e)
				})
			},
			editarFrame(objFrame) {
				handled_rpost("Campanas/editarFrame", {
					id: objFrame.id,
					url: this.generarURL(objFrame),
					titulo: objFrame.titulo,
					estatico: objFrame.estatico ? 1 : 0
				}).then(r => {
					console.log(r)
				}).catch(e => {
					console.log(e)
				})
			},
			eliminarFrame(objFrame) {
				conf_rpost(
					"Campanas/borrarFrame", {
						id: objFrame.id
					},
					traducirFrase("Si continuas con esta accion se eliminara permanentemente esta ventana")
				).then(r => {
					this.frames = this.frames.filter(frame => frame.id !== objFrame.id)
				}).catch(e => {
					console.log(e)
				})
			},
			eliminarUltimoFrame() {
				this.frames = this.frames.filter(fr => fr.id !== "")
			},
			eliminarVariableDeFrame(objFrame, valor) {
				objFrame.variables = objFrame.variables.filter(vars => vars.valor !== valor)
			},
			// ==================================================
			// Funciones para listado default
			seleccionarListas() {
				const self = this;
				gen_rpost("Listas/getListsSelect", {}).then(r => {
					self.selectListas = r.Listas.map(lista => ({
						value: lista.list_id,
						label: lista.list_name
					}))
				}).catch(console.log)
			},
			// ==================================================
			// Closes 596 {
			cargarUsuariosXCampanas() {
				return selectAgentes().then(agentes => {
					if (agentes) {
						gen_rpost("Campanas/listCampaignToUserByCampaign", {
							campana: this.usuariosIdCampana,
						}).then(r => {
							if (r.Estado === 'ok') {
								const relacionAgentes = r.Registros
								const usuariosXCampanas = []

								agentes.forEach(a => {
									const n = {
										'name': a.label,
										'user': a.value,
										'active': 'N',
									};

									if (relacionAgentes && relacionAgentes.find(v => v === a.value)) {
										n['active'] = 'Y';
									}

									usuariosXCampanas.push(n);
								})

								this.usuariosXCampanas = usuariosXCampanas;

							} else {
								MToastError(r.Descripcion)
							}
						}).catch(e => {
							MToastError(e.message)
						})
					} else {
						MToastError("Ocurrio un error obteniendo las campañas.")
					}
				})
			},
			openUsersModal(item) {
				this.usuariosIdCampana = item.id;
				this.cargarUsuariosXCampanas().then(_ => {
					this.usuariosModal = true;
				});
			},
			toggleUserCampaign(item) {
				handled_rpost(
					'Campanas/' +
					(item['active'] === 'Y' ?
						'deleteCampaignToUser' : 'addCampaignToUser'
					), {
						user: item.user,
						campana: this.usuariosIdCampana,
					}).then(r => {
					this.cargarUsuariosXCampanas();
				});
			},
			activeAllUserCampaign() {
				for (let i = 0; i < this.usuariosXCampanas.length; i++) {
					const item = this.usuariosXCampanas[i];
					handled_rpost(
						'Campanas/addCampaignToUser', {
							user: item.user,
							campana: this.usuariosIdCampana,
						}).then(r => {
						this.cargarUsuariosXCampanas();
					});
				}
			},
			removeAllUserCampaign() {
				for (let i = 0; i < this.usuariosXCampanas.length; i++) {
					const item = this.usuariosXCampanas[i];
					handled_rpost(
						'Campanas/deleteCampaignToUser', {
							user: item.user,
							campana: this.usuariosIdCampana,
						}).then(r => {
						this.cargarUsuariosXCampanas();
					});
				}
			},
			// }
			autopausaProbarTono() {
				this.autopausaAudio.src = "/Dialvox/public/audio/autopausa" + this.autopausaTono + ".wav";
				this.autopausaAudio.volume = this.autopausaVolumen / 100;
				this.autopausaAudio.play();
			},
		},
		created: function() {
			M.toast({
				'html': traducirFrase("Cargando campañas, por favor espere") + "."
			});
		},
		mounted: function() {
			$('select').formSelect();
			$("#botonCrear").hide();
			var bla;
			$('.tooltipped').tooltip();

			function cambiarAOscuro() {

				for (let i = 0; i < bla.length; i++) {
					bla[i].classList.remove('white');
					bla[i].classList.add('grey');
					bla[i].classList.add('lighten-1');
					bla[i].style.filter = 'invert(100%)';
				}
			}

			if (localStorage.getItem('background') == "black") {
				bla = document.getElementsByClassName('card-panel')
				bla = Array.prototype.slice.call(bla)
				cambiarAOscuro();
			}
			//$("#botonCrear").show()
			analiza();
			analizax2();

			setInterval(function() {
				if (!flagInfo3) {
					flagInfo3 = true;
					cambiaPagina(pagina);
				}
			}, 5000);

		},
		computed: {
			classObject: function() {
				if (this.ls == 'white') {
					return 'black-text';
				} else {
					return 'white-text';
				}
			},
			mostrarEliminarUltimoFrame: function() {
				if (this.frames.length > 0) {
					if (this.frames.filter(f => f.id === "").length > 0) {
						return true
					}
				}
				return false
			},
			validPolls: function() {
				return this.polls.filter(v => !this.associatedPolls.find(p => v.value === p.id_encuesta))
			},
			disabledSaveCampaign: function() {
				const gauge = parseFloat(parseFloat(this.gaugeVal).toFixed(2));
				const max = parseFloat(parseFloat(this.maximoInt).toFixed(2));

				return max > this.maximoPermitido || gauge > max;
			}
		}
	});

	function continua() {
		flagInfo = false, flagInfo2 = false, flagInfo3 = false;
		$("#CrearCampa").attr("disabled", false);
		$("#formuModal").modal("close");
		$("#idCampana").val("");
		$("#nombre_campana").val("");
		$("#descripcion_campana").val("");
		$("#web_form").val("");
		$("#web_form_address_two").val("");
		$("#activa").val("");
		app.campanaMetodo = "";
		app.autopausaTono = "";
		app.autopausaMetodo = "";
		app.autopausaVolumen = 50;
		app.autopausaTiempo = 10;

		app.tiempoSeleccionPausa = 15;

		$("#intensidad_marcado").val("");
		$("#intensidad_llamadas").val("");
		$("#objetivo_intensidad").val("");
		$("#maximo_intensidad").val("");
		$("#intensidad").val("");
		$("#orden_lista").val("");
		$("#orden_lista_aleatoria").val("");
		$("#tamaño_cola").val("");
		$("#tamaño_auto").val("");
		document.getElementById('allow_beep').checked = false;
		document.getElementById('pestanas').checked = false;
		$("#time_beep").val(100);
		$("#time_repeat").val(30)
		app.getAllow_beep();
	}
	var flagInfo3 = false;


	function analiza() {
		if (app) {
			var Val = (app ? app.campanaMetodo : $("#metodo_marcado").val());
			if (Val == 'MANUAL' || Val == 'INBOUND_MAN' || Val === "BLENDING" || Val == 'BLASTER' || Val == 'INBOUND_MAN_AUTOPAUSA') {
				app.banderaMan = true;
			} else {
				app.banderaMan = false;
			}
			if (Val == 'MANUAL' || Val == 'INBOUND_MAN' || Val == 'INBOUND_MAN_AUTOPAUSA') {
				app.maximoInt = 0
				app.gaugeVal = 0
			}
			analizax2();
			cambiaAguja();
		}
	}

	function analizax2() {
		if (app) {
			var Val = $("#tamaño_auto").val();
			if (Val == 'N') {
				app.banderaAuto = true;
			} else {
				app.banderaAuto = false;
			}
			cambiaAguja();
		}
	}
	setInterval(function() {
		var Arreglo = $('select');
		for (var i = 0; i < Arreglo.length; i++) {
			if (Arreglo[i].id != '') {
				$("#" + Arreglo[i].id).formSelect();
			}
		}
	}, 60000);

	function cargaListasNegras() {

		$.ajax({
			url: "/<?= RUTA_MAESTRA; ?>/index.php/ListasNegras/getBlackListsSelect",
			type: "POST",
			dataType: "text",
			success: function(result) {
				var resp = JSON.parse(result);
				if (resp.Estado == 'ok') {
					$("#ListasNegras").html("");
					$("#ListasNegras").append(`<option value="-1" selected>` + i18n.gettext("Sin lista negra") + `</option>`);
					for (var i = 0; i < resp.Listas.length; i++) {

						$("#ListasNegras").append("<option value='" + resp.Listas[i].idblacklist + "'>" + resp.Listas[i].nombre + "</option>");
					}
					var Arreglo = $('select');
					for (var i = 0; i < Arreglo.length; i++) {
						if (Arreglo[i].id != '') {
							$("#" + Arreglo[i].id).formSelect();
						}
					}
				} else {

					M.toast({
						html: resp.Descripcion,
					})
				}
			},
			error: function(err) {
				console.log(err);
			}
		});
	}

	function sweetFailCustom(text) {
		let parts = text.split("<br>")[0]
		if (text.split("<br>")[1]) {
			parts += "<br><span class='text-danger font-weight-bold'> Error #"
			parts += text.split("<br>")[1]
			parts += "</span>"
		}
		Swal.fire({
			type: "error",
			title: i18n.gettext("Algo ha salido mal"),
			html: parts
		})
	}
	let parserCSV = function(str) {
		let arr = []
		let state = 0
		let tmpStr = ""
		for (let i = 0; i < str.length; i++) {
			let tmp = str[i]
			if (tmp == '"' && state == 0) {
				state = 1
			} else if (tmp == '"' && state == 1) {
				state = 0
			} else if (tmp == ',' && state == 0) {
				arr.push(tmpStr)
				tmpStr = ""
			} else {
				tmpStr += tmp
			}
		}
		arr.push(tmpStr)
		return arr
	}

	function sweetConfirm(message) {
		return Swal.fire({
			type: "question",
			title: i18n.gettext("¿Estas seguro?"),
			text: message,
			showCancelButton: true,
			showConfirmButton: true

		})
	}
</script>