Your IP : 216.73.216.95


Current Path : /var/www/spmeat/wp-content/plugins/telegram-chat/js/
Upload File :
Current File : /var/www/spmeat/wp-content/plugins/telegram-chat/js/telegram-chat.js

// JavaScript Document
var websocket_telegramChat;
var banderaConfirmarEventoTelegram=0;
var procesoConfirmarEventoTelegram;
var desconecatdoTelegramChat=1;

function conectarWebSocket(registrar){
		
	//se pone el loading
	ponerLoading();
	
	//SE HABRE EL SOCKET
	var setTimeWebSocket;
	var refreshSocket=0;
	var typingClientTelegramEmpresarial=1;
	var typingColaboradorTelegramEmpresarial;
	var historialTelegramEmpresrial=1;
	var wsUri = "ws://chat4business.com:60900/";
	
 	var connect = function(){
				
		//create a new WebSocket object.
		websocket_telegramChat = new WebSocket(wsUri); 
		
		websocket_telegramChat.onopen = function(ev) { 
			
			
			if(tokenpublica==""){
				arr_cookie=Cookies.get('telegram-chat');
				var msg_cookie = JSON.parse(arr_cookie);
				tokenpublica=msg_cookie[0]['tokenpublica'];
				
				desconecatdoTelegramChat=0;
			}
			
			//se manda la notiricacion de conexión al servidor
			var msg = {
				type:"login",
				tokenpublica:tokenpublica 
			};
			//convert and send data to server
			websocket_telegramChat.send(JSON.stringify(msg));
						
		}
				
		//estatus del typing
		jQuery('#botonGetHistoryChatWA').click(function(){ //use clicks message send button	
			
			if(historialTelegramEmpresrial==1){
				//se cambia la bandera general
				historialTelegramEmpresrial=0;
				
				//se pone el loading
				jQuery("#mensajeCompletoWa_"+telegram_id.replace("$", "")+"").html('<br><br><center>'+mensajeMensajeCargandoImagenVentana+'<br>'+mensajeMensajeCargandoVentana+'</center>');
				
				//prepare json data
				var msg = {
					type:"getHistoryChatWA",
					message: mensajeEscribiendoVentana,
					
					//telegram
					telegram_id:telegram_id, 
					telegram_grupo:telegram_grupo, 
					telegram_colaboradores: telegram_colaboradores, 
					telegram_page: jQuery('#textoGetHistoryPageChatWA').val(), 
					//cliente
					url: url, 
					tokenpublica:tokenpublica, 
					os:os, 
					navegador: navegador, 
					cliente_nombre: cliente_nombre, 
					cliente_email: cliente_email, 
					cliente_telefono: cliente_telefono 
					
				};
				//convert and send data to server
				websocket_telegramChat.send(JSON.stringify(msg));
			}
		});
		
		//estatus del typing
		jQuery('#botonTypingChatWA').click(function(){ //use clicks message send button	
			
			if(typingClientTelegramEmpresarial==1){
				
				typingClientTelegramEmpresarial=0;
				//prepare json data
				var msg = {
					type:"typingChatWA",
					message: mensajeEscribiendoVentana,
					
					//telegram
					telegram_id:telegram_id, 
					telegram_grupo:telegram_grupo, 
					telegram_colaboradores: telegram_colaboradores, 
					telegram_line:telegram_line, 
					
					//cliente
					url: url, 
					tokenpublica:tokenpublica, 
					os:os, 
					navegador: navegador, 
					cliente_nombre: cliente_nombre, 
					cliente_email: cliente_email, 
					cliente_telefono: cliente_telefono 
					
				};
				//convert and send data to server
				websocket_telegramChat.send(JSON.stringify(msg));
			}
		
		});
		
		//estatus de la ventana
		jQuery('#botonEstatusChatWA').click(function(){ //use clicks message send button	
			
			//prepare json data
			var msg = {
				type:"estatusChatWA",
				message: jQuery('#textoEstatusChatWA').val(),
				
				//telegram
				telegram_id:telegram_id, 
				telegram_grupo:telegram_grupo, 
				telegram_colaboradores: telegram_colaboradores, 
				telegram_line:telegram_line, 
				
				//cliente
				url: url, 
				tokenpublica:tokenpublica, 
				os:os, 
				navegador: navegador, 
				cliente_nombre: cliente_nombre, 
				cliente_email: cliente_email, 
				cliente_telefono: cliente_telefono 
				
			};
			//convert and send data to server
			websocket_telegramChat.send(JSON.stringify(msg));
		
		});
		
		//envia texto
		jQuery('#botonMaestroWA').click(function(){ //use clicks message send button	
						
			if(jQuery('#message_chat').val()!="" ){
				
				if(desconecatdoTelegramChat==1){
					//connect();
				}
				
				typingClientTelegramEmpresarial=1;
				//jQuery("#botonMaestroWA,#message_chat").attr("disabled","disabled"); 
				//jQuery('#mensajeAjertaConversacion').remove();
				
				//prepare json data
				var msg = {
					type:"messageCliente",
					message: jQuery('#message_chat').val(),
					
					//telegram
					telegram_id:telegram_id, 
					telegram_grupo:telegram_grupo, 
					telegram_colaboradores: telegram_colaboradores, 
					telegram_line:telegram_line, 
					
					//cliente
					url: url, 
					tokenpublica:tokenpublica,
					os:os, 
					navegador: navegador, 
					cliente_nombre: cliente_nombre, 
					cliente_email: cliente_email, 
					cliente_telefono: cliente_telefono 
					
				};
				
				jQuery('#message_chat').prop( "disabled", true );
				
				//convert and send data to server				
				websocket_telegramChat.send(JSON.stringify(msg));
				
				//proceso de envio seguro
				banderaConfirmarEventoTelegram=1;
				procesoConfirmarEventoTelegram=setTimeout(confirmarEnvioTelegram, 7000);
			}
		});
		
		//envia texto
		jQuery('#botonNuevoChatWA').click(function(){ //use clicks message send button	
			
			if(jQuery('#message').val()!="" && banderaNuevoGrupo==0 && registrar==1){
				
				banderaNuevoGrupo=1; 
								
				arr_cookie=Cookies.get('telegram-chat');
				var msg_cookie = JSON.parse(arr_cookie);
				
					
				//prepare json data
				var msg = {
					type:"nuevoChat",
					message: jQuery('#message').val(),
					
					//telegram
					telegram_id:telegram_id, 
					telegram_grupo:telegram_grupo, 
					telegram_colaboradores: telegram_colaboradores, 
					telegram_colaboradores_verificar: telegram_colaboradores_verificar, 
					
					//cliente
					url: msg_cookie[0]['url'], 
					token: msg_cookie[0]['token'],
					tokenpublica:tokenpublica, 
					os: msg_cookie[0]['os'],
					ip: msg_cookie[0]['ip'],
					navegador: msg_cookie[0]['navegador'],
					
					cliente_nombre: jQuery('#telegram_nombre').val(), 
					cliente_email: jQuery('#telegram_email').val(), 
					cliente_telefono: jQuery('#telegram_telefono').val() ,
					
					mensaje_bienvenida_chat: jQuery('#mensajeInicioTelegramChat').val()
					
				};
				
				//convert and send data to server
				websocket_telegramChat.send(JSON.stringify(msg));
			}
		});
		
		
		//#### Message received from server?
		websocket_telegramChat.onmessage = function(ev) {
			
			var msg = JSON.parse(ev.data); //PHP sends Json data
			var type = msg.type; //message type
			banderaMensaje=0;
			
			if(type=="login"){
				if(tokenpublica==msg.tokenpublica && msg.tokenpublica!=""){
					
					//si es nuevo lo registro
					if(registrar==1){
						jQuery('#botonNuevoChatWA').click();
					}
					else{
						
						//se quita el loading
						loadingChannel=1;
						quitarLoading();
						
						//mensaje al telegram
						jQuery('#textoEstatusChatWA').val(mensajeAbrirVentana+"\n"+window.location.href+"\n\n<TELEGRAM><WP-CHAT><OPEN "+window.location.href+">");
						jQuery('#botonEstatusChatWA').click();
						
						setTimeout(function(){
							//como se abre, se actualiza el cookie con la sesion
							arr_cookie=Cookies.get('telegram-chat');
							var msg_cookie = JSON.parse(arr_cookie);
							msg_cookie[0]['session']=telegram_session;
							//se guarda la cookie
							Cookies.set('telegram-chat', msg_cookie);
						},1000);
						
						//se carga el historial
						setTimeout(function(){
							jQuery('#botonGetHistoryChatWA').click();
						},2000);
					}
				}
				else if(tokenpublica==""){
					//alert(mensajeErrorTelegramEmpresarial);
				}
			}
			else if(type=="serverCommunication"){
				if(tokenpublica==msg.tokenpublica){
					jQuery('#menssageLoadingTelegramChat').html(msg.mensajeServer);
					
					if(msg.mensajeCodeServer==0){
						quitarLoading();
						alert(msg.mensajeServer);
					}
				}
			}
			else if(type=="sendSuccessMensaje"){
				if(tokenpublica==msg.tokenpublica){
					
					//se quita el loop
					banderaConfirmarEventoTelegram=0;
					clearTimeout(procesoConfirmarEventoTelegram);
					
					//se habilita el texto
					jQuery('#message_chat').prop( "disabled", false );

					//se agrega a la conversacion
					cliente_nombre_chat=mensajeMensajeClienteVentana;
				
					mensaje_final='<div class="mensajeCliente" style="padding:5px; margin:5px; text-align:left; background-color:#e8fff3;"><strong style="color:#52d590; background-color:#e8fff3;">'+cliente_nombre_chat+'<br></strong>'+jQuery('#message_chat').val()+'</div>';
					jQuery('#mensajeCompletoWa_'+telegram_id.replace("$", "")).append(mensaje_final);		
					var objDiv = document.getElementById("mensajeCompletoWa_"+telegram_id.replace("$", "")+"");
					objDiv.scrollTop = objDiv.scrollHeight;
					jQuery('#message_chat').val('')
					//audio de mensaje
					audioElementTelegramChat.play();
					
					jQuery('#message_chat').focus();
					
				}
			}
			else if(type=="getHistoryChatWA"){
				
				if(tokenpublica==msg.tokenpublica){
					
					arr_cookie=Cookies.get('telegram-chat');
					var msg_cookie = JSON.parse(arr_cookie);
					
					jQuery('#mensajeCompletoWa_'+msg.telegram_id.replace("$", "")).html('');
					
					//se agrga el historial al chat
					decodeMensajeHistorial(msg_cookie[0]['plugin'], token, msg, msg.history.length-1, msg.history.length);
				}
			}
			else if(type=="typingCliente"){
				
				//se agrega a la conversacion
				jQuery('#statusTelegramChat_'+msg.telegram_id.replace("$", "")).text(mensajeMensajeEscribiendoVentana);
				typingColaboradorTelegramEmpresarial=setTimeout(function(){
					jQuery('#statusTelegramChat_'+msg.telegram_id.replace("$", "")).text('');
				}, 10000);
				
			}
			else if(type=="mensajeCliente"){
				
				if(tokenpublica==msg.tokenpublica){
					//cookie
					arr_cookie=Cookies.get('telegram-chat');
					var msg_cookie = JSON.parse(arr_cookie);
					var mensaje_enc, telegram_id_enc, telegram_grupo_enc;
					
					//se hace el decode
					decodeMensaje(msg_cookie[0]['plugin'], msg.mensaje_enc, token, msg.telegram_id_enc, msg.telegram_grupo_enc, typingColaboradorTelegramEmpresarial, "");
				}
				
			}
			else if(type=="nuevoChat"){
				
				if(tokenpublica==msg.tokenpublica){
					//cookie
					arr_cookie=Cookies.get('telegram-chat');
					var msg_cookie = JSON.parse(arr_cookie);
					//se pone el grupo en las variables y en el cookie
					decodeMensaje(msg_cookie[0]['plugin'], msg.mensaje_enc, token, msg.telegram_id_enc, msg.telegram_grupo_enc, 0, msg);
					
					if(msg.mensaje_bienvenida_enc!=""){
						decodeMensaje(msg_cookie[0]['plugin'], msg.mensaje_bienvenida_enc, token, msg.telegram_id_enc, msg.telegram_grupo_enc, 1, msg);
					}
					
				}
			}
		}
		
		websocket_telegramChat.onclose = function(){
			//se vuelve a conectar
			desconecatdoTelegramChat=1;
			
			websocket_telegramChat="";
			
			console.log("on close");
			
			setTimeout(connect, 2000)
			
		}
		websocket_telegramChat.onerror = function(evt){
			console.log("on error");
			console.log(evt);
		}
	}
	
	//se inicia nuevamente
	connect();
}

//si se desconecta el usuario
jQuery(window).on('beforeunload', function(e) {
		
	var msg = {
		type:"cerrarConexion",
		
		//telegram
		telegram_id:telegram_id, 
		telegram_grupo:telegram_grupo, 
		telegram_colaboradores: telegram_colaboradores, 
		telegram_line:telegram_line, 
		
		//cliente
		url: window.location.href,
		tokenpublica:tokenpublica,
		message:mensajeAvandonarVentanaTelgram+"\n"+window.location.href+"\n\n<TELEGRAM><WP-CHAT><CLOSE "+window.location.href+">"
		
	}
	websocket_telegramChat.send(JSON.stringify(msg));
	
});
	
	

/*
*		FUNCIONES
*/
function confirmarEnvioTelegram(){
	if(banderaConfirmarEventoTelegram==1){
		jQuery('#botonMaestroWA').click();
	}
}

function ponerLoading(){
	loadingChannel=1;
	jQuery('#loadingTelegramChat').css("visibility", "visible");
	jQuery('#loadingTelegramChat').transition({ height: '450px', duration: 500 });
	jQuery('#contenidoTelegramChat').css("visibility","hidden");
}
function quitarLoading(){
	
	loadingChannel=0;
	jQuery('#loadingTelegramChat').transition({ height: '0px', duration: 500 });
	
	setTimeout(function(){
		jQuery('#contenidoTelegramChat').css("visibility","visible");
		jQuery('#loadingTelegramChat').css("visibility", "hidden");
	}, 400);
}

function decodeMensajeHistorial(url, token, msg, i, total){
		
	textoHistorial="";
	for(j=0; j<total; j++){
		textoHistorial+=msg.history[j].wp_chat_historial_mensaje+"_$*$_"
	}
		
	//se desencripta
	jQuery.ajax({
		async: true,
		method: "POST",
		dataType: "json",
		url: url + "lib/hash.php", 
		data:{ accion:"decode", token: token, mensaje: textoHistorial, msg: msg, i:i, total:total }
		
	})
	.fail(function(){
		//alert('erorr');
		decodeMensajeHistorial(url, token, msg, i, total);
	})
	.done(function(data) {
		
		//se deshace el arregle del mensaje ya listo
		arr_mensaje=data.mensaje_enc.split('_$*$_');
		
		
		for(j=arr_mensaje.length-1; j>=0; j--){
			
			if(arr_mensaje[j]!=""){
				
				if(data.msg.history[j].wp_chat_historial_consultor==1){
					
					mensaje_final='<div class="mensajeAsesorChat" style="padding:5px; margin:5px; text-align:left; background-color:#f2feff;"><strong style="color:#769497; background-color:#f2feff;">'+mensajeMensajeAsesorVentana+'<br></strong>'+arr_mensaje[j]+'</div>';
					jQuery('#mensajeCompletoWa_'+data.msg.telegram_id.replace("$", "")).append(mensaje_final);	
				}
				else{
					mensaje_final='<div class="mensajeCliente" style="padding:5px; margin:5px; text-align:left; background-color:#e8fff3;"><strong style="color:#52d590; background-color:#e8fff3;">'+mensajeMensajeClienteVentana+'<br></strong>'+arr_mensaje[j]+'</div>';
					jQuery('#mensajeCompletoWa_'+data.msg.telegram_id.replace("$", "")).append(mensaje_final);
				}
			}
		}
		
		var objDiv = document.getElementById("mensajeCompletoWa_"+data.msg.telegram_id.replace("$", ""));
		objDiv.scrollTop = objDiv.scrollHeight;
	});
}


function decodeMensaje(url, mensaje_enc_final, token, telegram_id_enc, telegram_grupo_enc, typingColaboradorTelegramEmpresarial, msg){
	
	//se desencripta
	jQuery.ajax({
		async: true,
		method: "POST",
		dataType: "json",
		url: url + "lib/hash.php", 
		data:{ accion:"decode", token: token, mensaje: mensaje_enc_final, telegram_id_enc: telegram_id_enc, telegram_grupo_enc: telegram_grupo_enc, msg:msg }
	})
	.success(function(data) {
		
		if(typingColaboradorTelegramEmpresarial==0){
			
			//VARIABLES
			jQuery('#telegram_id').val(data.telegram_id_enc);
			jQuery('#telegram_grupo').val(data.telegram_grupo_enc);
			//COOKIE
			arr_cookie=Cookies.get('telegram-chat');
			var msg_cookie = JSON.parse(arr_cookie);
			msg_cookie[0]['telegram_line']=data.msg.telegram_line;
			msg_cookie[0]['telegram_id']=data.telegram_id_enc;
			msg_cookie[0]['telegram_grupo']=data.telegram_grupo_enc;
			msg_cookie[0]['cliente_nombre']=data.msg.nombre;
			msg_cookie[0]['cliente_email']=data.msg.correo;
			msg_cookie[0]['cliente_telefono']=data.msg.telefono;
			
			//se ponene las variables globales
			telegram_id=msg.telegram_id_enc;
			telegram_grupo=msg.telegram_grupo_enc;
			telegram_line=data.msg.telegram_line;
			cliente_nombre= data.msg.cliente_nombre; 
			cliente_email= data.msg.cliente_email;
			cliente_telefono= data.msg.cliente_telefono;
			
			//se guarda la cookie
			Cookies.set('telegram-chat', msg_cookie);
						
			//se pone en grande
			openChatTelegram('grande');
			
			//se actualiza el formulario
			formChatTelegram(0);
		
			//se quita el loading
			quitarLoading();
			
			//nombre cliente
			cliente_nombre=mensajeMensajeClienteVentana;
			if(cliente_nombre!=""){
				cliente_nombre_chat=cliente_nombre;
			}
			
			mensaje_enc= data.mensaje_enc;
			telegram_id_enc= data.telegram_id_enc;
			telegram_grupo_enc= data.telegram_grupo_enc;
			
			//se manda el mensaje
			mensaje_final='<div class="mensajeCliente" style="padding:5px; margin:5px; text-align:left; background-color:#e8fff3;"><strong style="color:#52d590; background-color:#e8fff3;">'+cliente_nombre_chat+'<br></strong>'+mensaje_enc+'</div>';
			jQuery('#mensajeCompletoWa_'+data.telegram_id_enc.replace("$", "")).append(mensaje_final);		
			var objDiv = document.getElementById("mensajeCompletoWa_"+data.telegram_id_enc.replace("$", "")+"");
			objDiv.scrollTop = objDiv.scrollHeight;
					
		}
		else{
			
			mensaje_enc= data.mensaje_enc;
			telegram_id_enc= data.telegram_id_enc;
			telegram_grupo_enc= data.telegram_grupo_enc;
			//telegram_line=data.msg.telegram_line;
			
			//typing status colaborador
			clearTimeout(typingColaboradorTelegramEmpresarial);
			jQuery('#statusTelegramChat_'+telegram_id_enc.toString().replace("$", "")).text('');
			
			//se agrega a la conversacion
			mensaje_final='<div class="mensajeAsesorChat" style="padding:5px; margin:5px; text-align:left; background-color:#f2feff;"><strong style="color:#769497; background-color:#f2feff;">'+mensajeMensajeAsesorVentana+'<br></strong>'+mensaje_enc+'</div>';
			jQuery('#mensajeCompletoWa_'+data.telegram_id_enc.toString().replace("$", "")).append(mensaje_final);		
			//se baja el scroll
			var objDiv = document.getElementById("mensajeCompletoWa_"+data.telegram_id_enc.toString().replace("$", "")+"");
			objDiv.scrollTop = objDiv.scrollHeight;
			
			//se hace el sonido
			audioElementTelegramChat.play();
			
			//se abre la ventana
			openChatTelegram("grande");
		}
	
	}).error(function() {
		decodeMensaje(url, mensaje_enc_final, token, telegram_id_enc, telegram_grupo_enc, typingColaboradorTelegramEmpresarial, msg);
		
	});
	
}