Rev 11408 | Rev 11583 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpuse LeadersLinked\Model\ChatGroupUser;$siteurl = $this->url('home', [], ['force_canonical' => true]);$audioogg = $this->basePath('audio/chat.ogg');$audiomp3 = $this->basePath('audio/chat.mp3');$emojione_image_path_png = $this->basePath('vendors/smiley/assets/png/');$users_group_png = $this->basePath('images/users-group.png');$flash_swf_url = $this->basePath('vendors/uploader/Moxie.swf');$silverlight_xap_url = $this->basePath('vendors/uploader/Moxie.xap');$this->inlineScript()->captureStart();echo <<<EOTvar siteurl = '$siteurl';var windowFocus = true;var username;var image_href;var scrollcode;var chatHeartbeatCount = 0;var minChatHeartbeat = 800;var maxChatHeartbeat = 33000;var chatHeartbeatTime = minChatHeartbeat;var originalTitle;var blinkOrder = 0;var audioogg = new Audio('$audioogg');var audiomp3 = new Audio('$audiomp3');var groupChatIcon = '$users_group_png';var chatboxFocus = new Array();var newMessages = new Array();var newMessagesWin = new Array();var newMessagesSender = new Array();var chatBoxes = new Array();var lastBeat;emojione.imageType = 'png';emojione.sprites = false;emojione.ascii = true;emojione.imagePathPNG = '$emojione_image_path_png';//emojione.imagePathSVG = 'app/plugins/smiley/assets/svg/';function msg_eventpl(chatboxtitle,sender,img,message_content,time,position){var zechat_eventpl = '<li class="clearfix m-t-10 conversers2">' +'<div class="conversation-text" data-toggle="tooltip" data-placement="left" data-html="true">' +'<div class="ctext-wrap"><p class="">'+message_content+' <br><i class="text-right">'+time+'</i></p></div></div></li>';if(position == "append"){$("#chatbox_"+chatboxtitle+" .chatboxcontent").append(zechat_eventpl);$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);}else{$("#chatbox_"+chatboxtitle+" .chatboxcontent").prepend(zechat_eventpl);}}function msg_oddtpl(chatboxtitle,sender,img,message_content,time,position){var zechat_oddtpl = '<li class="clearfix m-t-10 odd conversers1">' +'<div class="conversation-text" data-toggle="tooltip" data-placement="right" data-html="true">' +'<div class="ctext-wrap"><p class="">'+message_content+'</p><i class="text-right">'+time+'</i></div></div></li>';if(position == "append"){$("#chatbox_"+chatboxtitle+" .chatboxcontent").append(zechat_oddtpl);$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);}else{$("#chatbox_"+chatboxtitle+" .chatboxcontent").prepend(zechat_oddtpl);}}function typePlace() {if(!$('#textarea').html() == ''){$(".input-placeholder").css({'visibility':'hidden'});}else{$(".input-placeholder").css({'visibility':'visible'});}}$(document).ready(function(){$(document).on('click', ".e1", function (e){e.stopPropagation();e.preventDefault();var item = $(this).closest('.chatbox');var client = item.attr('client');//alert(client);var prevMsg = $("#chatbox_"+client+" .chatboxtextarea").val();var shortname = $(this).data('shortname');$("#chatbox_"+client+" .chatboxtextarea").val(prevMsg+' '+shortname+' ');$("#chatbox_"+client+" .chatboxtextarea").focus();});$(document).on('click', "#toggle-emoji", function (e){e.stopPropagation();e.preventDefault();var item = $(this).closest('.chatbox');var client = item.attr('client');//alert(client);$("#chatbox_"+client+" .target-emoji").slideToggle( 'fast', function(){if ($("#chatbox_"+client+" .target-emoji").css('display') == 'block') {$('#chatbox_'+client+' .btn-emoji').removeClass('ti-face-smile').addClass('ti-arrow-circle-down');} else {$('#chatbox_'+client+' .btn-emoji').removeClass('ti-arrow-circle-down').addClass('ti-face-smile');}});var heit = $('#resultchat').css('max-height');});$("#minmaxchatlist").click(function(){if(eval(localStorage.chatlist)){localStorage.chatlist = false;$("#showhidechatlist").css('display','none');}else{localStorage.chatlist = true;$("#showhidechatlist").css('display','block');}});$("#mute-sound").click(function(){if(eval(localStorage.sound)){localStorage.sound = false;$("#mute-sound").html('<i class="icon icon-volume-off"></i>');}else{localStorage.sound = true;$("#mute-sound").html('<i class="icon icon-volume-2"></i>');audiomp3.play();audioogg.play();}});if(eval(localStorage.chatlist)){$("#showhidechatlist").css('display','block');}else{$("#showhidechatlist").css('display','none');}if(eval(localStorage.sound)){$("#mute-sound").html('<i class="icon icon-volume-2"></i>');}else{$("#mute-sound").html('<i class="icon icon-volume-off"></i>');}originalTitle = document.title;startChatSession();loadGroups();$([window, document]).blur(function(){windowFocus = false;}).focus(function(){windowFocus = true;document.title = originalTitle;});$( "body" ).on( "click", "#new-chat-group", function() {$("#form-new-group").dialog({appendTo: 'body',title: "Nuevo Grupo",modal: true,resizable: false});});$( "body" ).on( "click", "#btn_submit_group", function() {var name = $("#group_name").val().trim();if(name!=""){$('#form-new-group').dialog("close");$("#group_name").val("");createGroupChatBox(create_UUID(),false,name);}});});function restructureChatBoxes() {align = 0;for (x in chatBoxes) {chatboxtitle = chatBoxes[x];if ($("#chatbox_"+chatboxtitle).css('display') != 'none') {if (align == 0) {$("#chatbox_"+chatboxtitle).css('right', '295px');} else {width = (align)*(273+7)+295;$("#chatbox_"+chatboxtitle).css('right', width+'px');}$("#chatbox_"+chatboxtitle).css('z-index',1);align++;}}}function chatWith(chatuser,chatheaderimg,status,name) {createChatBox(chatuser,chatheaderimg,status,0,name);$("#chatbox_"+chatuser+" .chatboxtextarea").focus();}function create_UUID(){var dt = new Date().getTime();var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = (dt + Math.random()*16)%16 | 0;dt = Math.floor(dt/16);return (c=='x' ? r :(r&0x3|0x8)).toString(16);});return uuid;}function chatGroup(uuid,name){createGroupChatBox(uuid,true,name);$("#chatbox_"+uuid+" .chatboxtextarea").focus();}function createChatBox(chatboxtitle,chatheaderimg,status,minimizeChatBox,name) {if ($("#chatbox_"+chatboxtitle).length > 0) {if ($("#chatbox_"+chatboxtitle).css('display') == 'none') {$("#chatbox_"+chatboxtitle).css('display','block');restructureChatBoxes();}$("#chatbox_"+chatboxtitle+" .chatboxtextarea").focus();return;}var tipo = "single";$("<div />" ).attr("id","chatbox_"+chatboxtitle).addClass("chatbox active-chat").attr("client",chatboxtitle).html('<div class="chatbox-icon" onclick="javascript:toggleChatBoxGrowth(\''+chatboxtitle+'\')" href="javascript:void(0)"><div class="contact-floating red"><img class="chat-image img-circle pull-left" src="'+chatheaderimg+'"><small class="unread-msg">2</small><small class="status"'+ status+'></small></div></div>' +'<div class="panel personal-chat"> ' +'<div class="panel-heading chatboxhead"> ' +'<div class="panel-title">' +'<img class="chat-image img-circle pull-left" height="36" width="36" src="'+chatheaderimg+'" alt="avatar-image"> ' +'<div class="header-elements">' +'<a href="">'+name+'</a>' +'</h3>' +'<br> ' +'<small class="status Offline"><b>Offline</b>' +'</small> ' +'<div class="pull-right options"> ' +'<!--<div class="btn-group uploadFile" id="uploadFile" data-client="'+chatboxtitle+'"><span><i class="fa fa-trash"></i></span></div>--> ' +'<!--<div class="btn-group" onclick="javascript:clearHistory(\''+chatboxtitle+'\')" href="javascript:void(0)"><span><i class="fa fa-trash"></i></span></div>--> ' +'<div class="btn-group" onclick="javascript:toggleChatBoxGrowth(\''+chatboxtitle+'\')" href="javascript:void(0)">' +'<span>' +'<i class="fa fa-minus-circle"></i>' +'</span>' +'</div> ' +'<div class="btn-group" onclick="javascript:closeChatBox(\''+chatboxtitle+'\')" href="javascript:void(0)">' +'<span><i class="fa fa-times-circle"></i></span>' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'<div class="panel-body"><div id="uploader_'+chatboxtitle+'" style="display: none;height: 342px;"><p>Your browser does not have Flash, Silverlight or HTML5 support.</p></div>' +'<div class="chat-conversation"> ' +'<ul class="conversation-list chatboxcontent" id="resultchat_'+chatboxtitle+'"> </ul> ' +'<div class="wchat-footer wchat-chat-footer chatboxinput"> ' +'<div id="chatFrom"> ' +'<div class="block-wchat"> ' +'<button class="icon ti-clip attachment font-24 btn-attach btn-attach uploadFile" id="uploadFile" data-client="'+chatboxtitle+'" style="display: block"></button> ' +'<button class="icon ti-face-smile font-24 btn-emoji" id="toggle-emoji"></button>' +'<div class="input-container"> ' +'<div class="input-emoji"> ' +'<div class="input-placeholder" style="visibility: hidden; display: none;">Escribe un mensaje</div> ' +'<textarea class="input chatboxtextarea" id="chatboxtextarea" name="chattxt" contenteditable="" spellcheck="true" style="resize:none;height:20px" placeholder="Escribe un mensaje" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+chatboxtitle+'\',\''+tipo+'\');"></textarea>' +'<input id="to_uname" name="to_uname" value="'+chatboxtitle+'" type="hidden">' +'<input id="from_uname" name="from_uname" value="Beenny" type="hidden"> ' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'<div class="wchat-box-items-positioning-container"><div class="wchat-box-items-overlay-container"><div class="target-emoji" style="display: none"><div id="include-smiley-panel"></div></div></div></div>'+'</div> ' +'</div> ' +'</div>' +'</div>').appendTo($( "body" ));var scrollcode = $("#resultchat_"+chatboxtitle).scroll(function(){if ($("#resultchat_"+chatboxtitle).scrollTop() == 0){var client = $("#chatbox_"+chatboxtitle).attr("client");if($("#chatbox_"+client+" .pagenum:first").val() != $("#chatbox_"+client+" .total-page").val()) {$("#loader").show();var pagenum = parseInt($("#chatbox_"+client+" .pagenum:first").val()) + 1;var URL = siteurl+"chat/get-all-messages/" + client + "?page="+pagenum;get_all_msg(URL);$("#loader").hide(); // Hide loader on successif(pagenum != $("#chatbox_"+client+" .total-page").val()) {setTimeout(function () { //Simulate server delay;$("#resultchat_"+chatboxtitle).scrollTop(100); // Reset scroll}, 458);}}}});$('<script type="text/javascript">scrollcode</' + 'script>').appendTo(document.body);get_all_msg(siteurl+"chat/get-all-messages/" + chatboxtitle + "?page=1");//lastseen(chatboxtitle);smiley_tpl(chatboxtitle);$("#chatbox_"+chatboxtitle).css('bottom', '0px');chatBoxeslength = 0;for (x in chatBoxes) {if ($("#chatbox_"+chatBoxes[x]).css('display') != 'none') {chatBoxeslength++;}}if (chatBoxeslength == 0) {$("#chatbox_"+chatboxtitle).css('right', '295px');} else {width = (chatBoxeslength)*(273+7)+295;$("#chatbox_"+chatboxtitle).css('right', width+'px');}$("#chatbox_"+chatboxtitle).css('z-index',1);chatBoxes.push(chatboxtitle);if (minimizeChatBox == 1) {minimizedChatBoxes = new Array();if ($.cookie('chatbox_minimized')) {minimizedChatBoxes = $.cookie('chatbox_minimized').split(/\|/);}minimize = 0;for (j=0;j<minimizedChatBoxes.length;j++) {if (minimizedChatBoxes[j] == chatboxtitle) {minimize = 1;}}if (minimize == 1) {$('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','none');$('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','none');}}chatboxFocus[chatboxtitle] = false;$("#chatbox_"+chatboxtitle+" .chatboxtextarea").blur(function(){chatboxFocus[chatboxtitle] = false;$("#chatbox_"+chatboxtitle+" .chatboxtextarea").removeClass('chatboxtextareaselected');}).focus(function(){chatboxFocus[chatboxtitle] = true;newMessages[chatboxtitle] = false;$('#chatbox_'+chatboxtitle+' .chatboxhead').removeClass('chatboxblink');$("#chatbox_"+chatboxtitle+" .chatboxtextarea").addClass('chatboxtextareaselected');});$("#chatbox_"+chatboxtitle).show();}function removeOfGroup(user, group) {var c = confirm("Esta seguro de eliminar este usuario de este grupo de chat?");if(c){var url = siteurl+"chat/remove-user-from-group/" + group + '/' + user;$.post(url, {} , function(data){showGroupContacts(group);});}}function createGroupChatBox(id,creado=false,name){if ($("#chatbox_"+id).length > 0) {if ($("#chatbox_"+id).css('display') == 'none') {$("#chatbox_"+id).css('display','block');restructureChatBoxes();}$("#chatbox_"+id+" .chatboxtextarea").focus();return;}var tipo = "group";$("<div />" ).attr("id","chatbox_"+id).addClass("chatbox active-chat").attr("client",id).html('<div class="chatbox-icon" onclick="javascript:toggleChatBoxGrowth(\''+id+'\')" href="javascript:void(0)"><div class="contact-floating red"><img class="chat-image img-circle pull-left" src=""><small class="unread-msg">2</small><small class="status Online"></small></div></div>' +'<div class="panel personal-chat"> ' +'<div class="panel-heading chatboxhead"> ' +'<div class="panel-title">' +'<img class="chat-image img-circle pull-left" height="36" width="36" src="'+groupChatIcon+'" alt="avatar-image"> ' +'<div class="header-elements">' +'<a href="">'+name.substring(0, 12)+'</a>' +'</h3>' +'<br> ' +'<small class="status Online"><b>Online</b>' +'</small> ' +'<div class="pull-right options"> ' +'<div class="btn-group addUser" data-client="'+id+'" data-name="'+name+'"><span><i class="fa fa-user-plus"></i></span></div>' +'<div class="btn-group" onclick="javascript:toggleChatBoxGrowth(\''+id+'\')" href="javascript:void(0)">' +'<span>' +'<i class="fa fa-minus-circle"></i>' +'</span>' +'</div> ' +'<div class="btn-group" onclick="javascript:closeChatBox(\''+id+'\')" href="javascript:void(0)">' +'<span><i class="fa fa-times-circle"></i></span>' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'<div class="panel-body"><div id="uploader_'+id+'" style="display: none;height: 342px;"><p>Your browser does not have Flash, Silverlight or HTML5 support.</p></div>' +'<div id="participants_'+id+'" style="display: none;height: 342px;"><div style="text-align:center;">Agregue integrantes al grupo</div>' +'<div class="participants_list"><ul id="contact-list-ul-gchat-'+id+'" class="ul-participants-list" style="padding-left:5px;"></ul></div>' +'<div class="participants_controls">' +'<a class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary closeAddUser" style="font-size: 14px; z-index: 1;margin-left:10px;" role="button" aria-disabled="false" data-client="'+id+'"><span class="ui-button-icon-primary ui-icon ui-icon-circle-close "></span><span class="ui-button-text">Cerrar</span></a></div>' +'</div>' +'<div class="chat-conversation"> ' +'<ul class="conversation-list chatboxcontent" id="resultchat_'+id+'"> </ul> ' +'<div class="wchat-footer wchat-chat-footer chatboxinput"> ' +'<div id="chatFrom"> ' +'<div class="block-wchat"> ' +'<button class="icon ti-clip attachment font-24 btn-attach btn-attach uploadFile" id="uploadFile" data-client="'+id+'" style="display: block"></button> ' +'<button class="icon ti-face-smile font-24 btn-emoji" id="toggle-emoji"></button>' +'<div class="input-container"> ' +'<div class="input-emoji"> ' +'<div class="input-placeholder" style="visibility: hidden; display: none;">Escribe un mensaje</div> ' +'<textarea class="input chatboxtextarea" id="chatboxtextarea" name="chattxt" contenteditable="" spellcheck="true" style="resize:none;height:20px" placeholder="Escribe un mensaje" onkeydown="javascript:return checkChatBoxInputKey(event,this,\''+id+'\',\''+tipo+'\');"></textarea>' +'<input id="to_uname" name="to_uname" value="'+id+'" type="hidden">' +'<input id="from_uname" name="from_uname" value="Beenny" type="hidden"> ' +'</div> ' +'</div> ' +'</div> ' +'</div> ' +'<div class="wchat-box-items-positioning-container"><div class="wchat-box-items-overlay-container"><div class="target-emoji" style="display: none"><div id="include-smiley-panel"></div></div></div></div>'+'</div> ' +'</div> ' +'</div>' +'</div>').appendTo($( "body" ));$('<script type="text/javascript">scrollcode</' + 'script>').appendTo(document.body);get_all_msg(siteurl+"chat/get-all-group-messages/" + id + "?page=1");smiley_tpl(id);$("#chatbox_"+id).css('bottom', '0px');chatBoxeslength = 0;for (x in chatBoxes) {if ($("#chatbox_"+chatBoxes[x]).css('display') != 'none') {chatBoxeslength++;}}if (chatBoxeslength == 0) {$("#chatbox_"+id).css('right', '295px');} else {width = (chatBoxeslength)*(273+7)+295;$("#chatbox_"+id).css('right', width+'px');}$("#chatbox_"+id).css('z-index',1);chatBoxes.push(id);chatboxFocus[id] = false;$("#chatbox_"+id+" .chatboxtextarea").blur(function(){chatboxFocus[id] = false;$("#chatbox_"+id+" .chatboxtextarea").removeClass('chatboxtextareaselected');}).focus(function(){chatboxFocus[id] = true;newMessages[id] = false;$('#chatbox_'+id+' .chatboxhead').removeClass('chatboxblink');$("#chatbox_"+id+" .chatboxtextarea").addClass('chatboxtextareaselected');});$("#chatbox_"+id).show();if(!creado){createChatGroup(id,name);}}function chatHeartbeat(){var itemsfound = 0;if (windowFocus == false) {var blinkNumber = 0;var titleChanged = 0;for (x in newMessagesWin) {if (newMessagesWin[x] == true) {++blinkNumber;if (blinkNumber >= blinkOrder) {document.title = newMessagesSender[x]+' dice...';titleChanged = 1;break;}}}if (titleChanged == 0) {document.title = originalTitle;blinkOrder = 0;} else {++blinkOrder;}} else {for (x in newMessagesWin) {newMessagesWin[x] = false;}}for (x in newMessages) {if (newMessages[x] == true) {if (chatboxFocus[x] == false) {//FIXME: add toggle all or none policy, otherwise it looks funny$('#chatbox_'+x+' .chatboxhead').toggleClass('chatboxblink');}}}$.ajax({url: siteurl+"chat/heart-beat",cache: false,dataType: "json",success: function(data) {$.each(data.items, function(i,item){if (item) { // fix strange ie bugvar isGroup = false;if(item.g){isGroup = 1;chatboxtitle = item.f;sender = item.f;senderimg = item.p;img = item.p2;status = item.st;msgtype = item.mtype;time = item.time;id = item.g;sender_name = item.n;group_name = item.gn;}else{isGroup = 0;chatboxtitle = item.f;sender = item.f;senderimg = item.p;img = item.p2;status = item.st;msgtype = item.mtype;time = item.time;id = item.x;sender_name = item.n;}console.log("heart-beat - #chatbox_"+id);if ($("#chatbox_"+id).length <= 0) {if(isGroup){createGroupChatBox(id,true,group_name);}else{createChatBox(id,senderimg,status,"",sender_name);}if (eval(localStorage.sound)) {//audiomp3.play();//audioogg.play();}return;}if ($("#chatbox_"+id).css('display') == 'none') {$("#chatbox_"+id).css('display','block');restructureChatBoxes();}var message_content = item.m;if (msgtype=="text") {message_content = item.m;} else {var path = item.mif (msgtype == "image") {message_content = "<a url='" + path + "' onclick='trigq(this)'><img src='" + path + "' class='userfiles'/></a>";}else if (file_content.file_type == "video") {message_content = '<video class="userfiles" controls>' +'<source src="' + path + '" type="video/mp4">' +'Your browser does not support HTML5 video.' +'</video>';}else {message_content = "<a href='" + path + "' class='download-link' download></a>";}}if (msgtype == "text") {message_content = emojione.shortnameToImage(message_content); // Set imotions}newMessages[id] = true;newMessagesWin[id] = true;newMessagesSender[id] = sender_name;msg_eventpl(id,sender,senderimg,message_content,time,"append");if (eval(localStorage.sound)) {audiomp3.play();audioogg.play();}//}itemsfound += 1;}});chatHeartbeatCount++;if (itemsfound > 0) {chatHeartbeatTime = minChatHeartbeat;chatHeartbeatCount = 1;} else if (chatHeartbeatCount >= 10) {chatHeartbeatTime *= 2;chatHeartbeatCount = 1;if (chatHeartbeatTime > maxChatHeartbeat) {chatHeartbeatTime = maxChatHeartbeat;}}if (itemsfound > 0) {$("#chatbox_"+id+" .chatboxcontent").scrollTop($("#chatbox_"+id+" .chatboxcontent")[0].scrollHeight);}}});setTimeout('chatHeartbeat();',chatHeartbeatTime);}function get_all_msg(url){$.ajax({url: url,cache: false,dataType: "json",success: function(data) {$.each(data.items, function(i,item){if (item) {chatboxtitle = item.f;chatboximg = item.p2;senderimg = item.p;status = item.st;sender = item.sender;page = item.page;pages = item.pages;msgtype = item.mtype;time = item.time;if (item.page != "" && i == 0) {$("#chatbox_" + chatboxtitle + " .chatboxcontent").prepend('<input type="hidden" class="pagenum" value="' + item.page + '" /><input type="hidden" class="total-page" value="' + pages + '" />');}if (item.s == 1) {//item.f = username;}var message_content = item.m;if (msgtype == "text") {message_content = item.m;message_content = emojione.shortnameToImage(message_content);}else {var path = item.m;if (msgtype=="image") {message_content = "<a url='" + path + "' onclick='trigq(this)'><img src='" + path + "' class='userfiles'/></a>";}else if(msgtype == "video") {message_content = '<video class="userfiles" controls>' +'<source src="' + path + '" type="video/mp4">' +'Your browser does not support HTML5 video.' +'</video>';}else{message_content = "<a href='"+path+"' class='download-link' download></a>";}}if (item.s == 2) {$("#chatbox_"+chatboxtitle+" .chatboxcontent").prepend('<div class="chatboxmessage"><div class="_5w-5"><div class="_5w-6"><abbr class="livetimestamp">'+item.m+'</abbr></div></div></div>');} else {if (item.u == 2) {msg_eventpl(chatboxtitle,sender,senderimg,message_content,time,"prepend");} else {msg_oddtpl(chatboxtitle,sender,senderimg,message_content,time,"prepend");}}}if (page == 1) {$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);}});}});}function checkChatBoxInputKey(event,chatboxtextarea,chatboxtitle,tipo) {if(event.keyCode == 13 && event.shiftKey == 0) {message = $(chatboxtextarea).val();message = message.replace(/^\s+|\s+$/g,"");$(chatboxtextarea).val('');$(chatboxtextarea).focus();$(chatboxtextarea).css('height','20px');if (message != '') {if(tipo=="single"){var url = siteurl+"chat/send/" + chatboxtitle;}else{var url = siteurl+"chat/send-group/" + chatboxtitle;}$.post(url, {message: message} , function(data){message = message.replace(/</g,"<").replace(/>/g,">").replace(/\"/g,""");var con = message;var words = con.split(' ');for (i in words) {if (words[i].indexOf('http://') == 0 || words[i].indexOf('https://') == 0) {words[i] = '<a href="' + words[i] + '">' + words[i] + '</a>';}else if (words[i].indexOf('www') == 0 ) {words[i] = '<a href="' + words[i] + '">' + words[i] + '</a>';}}message = words.join(' ');message = emojione.shortnameToImage(message); // Set imotions$('#chatbox_'+chatboxtitle+' .target-emoji').css({'display':'none'});$('#chatbox_'+chatboxtitle+' .btn-emoji').removeClass('ti-arrow-circle-down').addClass('ti-face-smile');msg_oddtpl(chatboxtitle,data.sender,data.sender_profile_img,message,"Ahora","append");$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);});}chatHeartbeatTime = minChatHeartbeat;chatHeartbeatCount = 1;return false;}var adjustedHeight = chatboxtextarea.clientHeight;var maxHeight = 94;if (maxHeight > adjustedHeight) {adjustedHeight = Math.max(chatboxtextarea.scrollHeight, adjustedHeight);if (maxHeight)adjustedHeight = Math.min(maxHeight, adjustedHeight);if (adjustedHeight > chatboxtextarea.clientHeight)$(chatboxtextarea).css('height',adjustedHeight+8 +'px');} else {$(chatboxtextarea).css('overflow','auto');}}function lastseen(uname){$.ajax({url: siteurl + "chat/last_seen?uname="+uname,cache: false,type: "POST",success: function (data) {var data = data.trim().replace('"','').replace('"','');if(data == "Online"){$("#chatbox_"+uname+" .panel-heading .status").removeClass("Offline");} else{$("#chatbox_"+uname+" .panel-heading .status").removeClass("Online");}$("#chatbox_"+uname+" .panel-heading .status").addClass(data).html(data);},error: function( error ){}});}function startChatSession(){$.ajax({url: siteurl+"chat/start-session",cache: false,dataType: "json",success: function(data) {username = data.username;$.each(data.items, function(i,item){if (item) {chatboxtitle = item.f;chatboximg = item.p;sesimg = item.p2;status = item.st;if ($("#chatbox_"+chatboxtitle).length <= 0) {createChatBox(chatboxtitle,chatboximg,status,1);}if (item.s == 1) {item.f = username;}if (item.s == 2) {} else {if (item.u == 2) {} else {}}}});for (i=0;i<chatBoxes.length;i++) {chatboxtitle = chatBoxes[i];$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);setTimeout('$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);', 100); // yet another strange ie bug}setTimeout('chatHeartbeat();',1000);}});setInterval(function () { globalUpdate(); }, 10000);}function globalUpdate(){onlineSignal();loadGroups();updateContacts();getContactStatus();}function onlineSignal(){var url = siteurl+"chat/online-signal";$.post(url, {} , function(data){});}function updateContacts(){if (typeof $("#live-search-box").val() !== 'undefined'){if($("#live-search-box").val().trim()==""){var url = siteurl+"chat/update-contacts";$.get(url, {} , function(response){if(response.success) {$("#contact-list-ul").html(response.data);}});}}}function getContactStatus(){var url = siteurl+"chat/get-contact-status";$.get(url, {} , function(response){console.log('get-contact-status');console.log(response);if(response.success) {for(var i=0;i<response.data.length;i++){if(response.data[i].status == "Online"){$("#chatbox_"+response.data[i].id+" .panel-heading .status").removeClass("Offline");$("#chatbox_"+response.data[i].id+" .panel-heading .status").addClass("Online");$("#chatbox_"+response.data[i].id+" .panel-heading .status").text("Online");} else{$("#chatbox_"+response.data[i].id+" .panel-heading .status").removeClass("Online");$("#chatbox_"+response.data[i].id+" .panel-heading .status").addClass("Offline");$("#chatbox_"+response.data[i].id+" .panel-heading .status").text("Offline");}}}});}function closeChatBox(uuid) {$('#chatbox_'+uuid).css('display','none');restructureChatBoxes();var url = siteurl+"chat/close/" + uuid;$.post(url, {} , function(data){});}function clearHistory(uuid){var url = siteurl+"chat/clear/" + uuid;$.post(url, { } , function(data){});}function toggleChatBoxGrowth(chatboxtitle) {if ($('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display') == 'none') {var minimizedChatBoxes = new Array();if ($.cookie('chatbox_minimized')) {minimizedChatBoxes = $.cookie('chatbox_minimized').split(/\|/);}var newCookie = '';for (i=0;i<minimizedChatBoxes.length;i++) {if (minimizedChatBoxes[i] != chatboxtitle) {newCookie += chatboxtitle+'|';}}newCookie = newCookie.slice(0, -1)$.cookie('chatbox_minimized', newCookie);$('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','block');$('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','block');$("#chatbox_"+chatboxtitle+" .chatboxcontent").scrollTop($("#chatbox_"+chatboxtitle+" .chatboxcontent")[0].scrollHeight);} else {var newCookie = chatboxtitle;if ($.cookie('chatbox_minimized')) {newCookie += '|'+$.cookie('chatbox_minimized');}$.cookie('chatbox_minimized',newCookie);$('#chatbox_'+chatboxtitle+' .chatboxcontent').css('display','none');$('#chatbox_'+chatboxtitle+' .chatboxinput').css('display','none');}}jQuery.cookie = function(name, value, options) {if (typeof value != 'undefined') {options = options || {};if (value === null) {value = '';options.expires = -1;}var expires = '';if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {var date;if (typeof options.expires == 'number') {date = new Date();date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));} else {date = options.expires;}expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE}var path = options.path ? '; path=' + (options.path) : '';var domain = options.domain ? '; domain=' + (options.domain) : '';var secure = options.secure ? '; secure' : '';document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');} else {var cookieValue = null;if (document.cookie && document.cookie != '') {var cookies = document.cookie.split(';');for (var i = 0; i < cookies.length; i++) {var cookie = jQuery.trim(cookies[i]);if (cookie.substring(0, name.length + 1) == (name + '=')) {cookieValue = decodeURIComponent(cookie.substring(name.length + 1));break;}}}return cookieValue;}};var lastTypedTime = new Date(0);var typingDelayMillis = 5000;function refreshTypingStatus(chatboxtitle){/*if (!$('#textarea').is(':focus') || $('#textarea').val() == '' || new Date().getTime() - lastTypedTime.getTime() > typingDelayMillis) {$("#typing_on").html('');} else {$.post(siteurl+"chat/chat.php?action=typingstatus", {to: chatboxtitle, typing: 1} , function(data){});}*/}function updateLastTypedTime() {lastTypedTime = new Date();}function scrollDown2(chatboxtitle){var wtf = $("#chatbox_"+chatboxtitle+" .chatboxcontent");var height = wtf[0].scrollHeight;wtf.scrollTop(height);}//Search User In contactListjQuery(document).ready(function(){$('.live-search-list li').each(function(){$(this).attr('data-search-term', $(this).text().toLowerCase());});$('.live-search-box').on('keyup', function(){var searchTerm = $(this).val().toLowerCase();var found = false;if($('#contact-list-ul:visible').length == 0){$('.live-search-list-group li').each(function(){if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) {$(this).show();found = true;} else {$(this).hide();}});}else{$('.live-search-list li').each(function(){if ($(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 || searchTerm.length < 1) {$(this).show();found = true;} else {$(this).hide();}});}if(!found){$("#search_result").show();}else{$("#search_result").hide();}});});function loadGroups(){var url = siteurl+"chat/group-list";$.get(url, {} , function(response){if(response.success) {$("#group-list-ul").html("");$("#group-list-ul").html(response.data);}});}function createChatGroup(uuid,name){var url = siteurl+"chat/create-group";$.post(url, {uuid: uuid,name:name} , function(response){if(response.success) {loadGroups();}});}function deleteGroup(uuid){var c = confirm("Esta seguro de eliminar este grupo de chat?");if(c){var url = siteurl+"chat/delete-group/" + uuid;$.post(url, {} , function(response){if(response.success) {loadGroups();}});}}function outOfGroup(uuid){var c = confirm("Esta seguro de salir de este grupo de chat?");if(c){var url = siteurl+"chat/leave/" + uuid;$.post(url, {} , function(data){loadGroups();});}}function showGroupContacts(uuid){var url = siteurl+"chat/contact-group-list/" + uuid;$.get(url, {} , function(response){if(response.success) {$("#contact-group-list-ul").html("");$("#contact-group-list-ul").html(response.data);$(".group-list").css({'display':'none'});$(".contact-list").css({'display':'none'});$(".group-contacts-list").css({'display':'block'});}});}$(document).on('click', ".addUser", function (e){var touname = $(this).data('client');var name = $(this).data('name');var url = siteurl+"chat/contacts-list/" + touname;$.get(url, {} , function(response){if(response.success) {$("#contact-list-ul-gchat-"+touname).html("");$("#contact-list-ul-gchat-"+touname).html(response.data);$('#chatbox_'+touname+' .chat-conversation').css({'display':'none'});$('#participants_'+touname).css({'display':'block'});}});});$(document).on('click', ".closeAddUser", function (e){var touname = $(this).data('client');$('#participants_'+touname).css({'display':'none'});$('#chatbox_'+touname+' .chat-conversation').css({'display':'block'});});$(document).on('click', ".chat-contacts", function (e){$(".chat-groups").removeClass('blue-color');$(this).addClass('blue-color')$(".group-list").css({'display':'none'});$(".group-contacts-list").css({'display':'none'});$(".contact-list").css({'display':'block'});});$(document).on('click', ".chat-groups", function (e){$(".chat-contacts").removeClass('blue-color');$(this).addClass('blue-color');$(".contact-list").css({'display':'none'});$(".group-contacts-list").css({'display':'none'});$(".group-list").css({'display':'block'});});function addToGroup(uid,group,name){var url = siteurl+"chat/add-user-to-group/" + group + "/" + uid;var li = $("#li_user_" + uid + '_group_' + group);$.post(url, {} , function(response){if(response.success) {li.remove();}});}function removeFromGroup(uid,group){var url = siteurl+"chat/add-user-to-group/" + group + "/" + uid;$.post(url, {} , function(response){if(response.success) {showGroupContacts( group );}});}function addMessageUploadFile(item) {console.log('S1');if (item.hasOwnProperty('id')) {console.log('S2');console.log('item');console.log(item);var id = item.id;var toName = item.toName;var username = item.username;var picname = item.picname;var msgtype = item.type;var path = item.content;if (msgtype=="image") {message_content = "<a url='" + path + "' onclick='trigq(this)'><img src='" + path + "' class='userfiles'/></a>";}else if(msgtype == "video") {message_content = '<video class="userfiles" controls>' +'<source src="' + path + '" type="video/mp4">' +'Your browser does not support HTML5 video.' +'</video>';}else {message_content = "<a href='"+path+"' class='download-link' download></a>";}msg_oddtpl(toName,username,picname,message_content,"Ahora","append");//$("#chatbox_"+toName+" .chatboxcontent").scrollTop($("#chatbox_"+toName+" .chatboxcontent")[0].scrollHeight);}return false;}EOT;$this->inlineScript()->captureEnd();?><div id="drupalchat-wrapper"><div id="drupalchat" style=""><div class="item-list" id="chatbox_chatlist"><ul id="mainpanel"><li id="chatpanel" class="first last"><div class="subpanel" style="display: block;"><div class="subpanel_title"><div style="width: 89%;height: 100%;" id="minmaxchatlist" >Chat</div><span class="min localhost-icon-minus-1" id="mute-sound"><i class="icon icon-volume-2 text-20" aria-hidden="true"></i></span><span class="min localhost-icon-minus-1" id="new-chat-group" style="margin-right:5%;" title="Crear grupo"><i class="fa fa-edit"></i></span></div><div id="showhidechatlist"><div class="drupalchat_search_main chatboxinput" style="background:#f9f9f9"><div class="drupalchat_search" style="height:auto;"><input class="drupalchat_searchinput live-search-box" id="live-search-box" placeholder="Buscar" value="" size="24" type="text"><input class="searchbutton" id="searchbutton" title="" value="" style="height:30px;border:none;margin:0px; padding-right:13px; vertical-align: middle;" type="submit"><div id="search_result" style="text-align:center;font-size:11px;display:none;">Sin resultados</div></div></div><div class="drupalchat_search_main chatboxinput" style="background:#f9f9f9"><div style="width: 50%;float:left;display:inline-block;padding:5px;text-align:center;font-size:14px;"><a href="#" class="blue-color chat-contacts">Contactos</a></div><div style="width: 50%;display:inline-block;padding:5px;text-align:center;font-size:14px;"><a href="#" class="chat-groups">Grupos</a></div></div><div class="contact-list chatboxcontent"><ul id="contact-list-ul" class="live-search-list"><?php foreach($contacts as $contact) :$url_image = $this->url('storage', ['code' => $contact['id_encrypted'], 'type' => 'user', 'filename' => $contact['image'] ]);?><li class="iflychat-olist-item iflychat-ol-ul-user-img iflychat-userlist-room-item chat_options" data-search-term="<?php echo trim(strtolower($contact['name'])) ?>"><div class="drupalchat-self-profile"><span title="<?php echo $contact['status'] ?>" class="'. $status. ' statuso" style="text-align: right"><span class="statusIN"><i class="fa fa-circle" style="font-size:10px;margin-top:4px" aria-hidden="true"></i></span></span><div class="drupalchat-self-profile-div"><div class="drupalchat-self-profile-img + localhost-image-sprite-28"><img class="chat-image img-circle pull-left" height="36" width="36" src="<?php echo $url_image ?>" alt="image-image"></div></div><div class="drupalchat-self-profile-namdiv"><a class="drupalchat-profile-un drupalchat_cng" href="javascript:void(0)" onclick="javascript:chatWith('<?php echo $contact['id'] ?>','<?php echo $url_image ?>','<?php echo $contact['status'] ?>','<?php echo $contact['name'] ?>')"><?php echo $contact['name'] ?></a></div></div></li><?php endforeach; ?></ul></div><div class="group-list chatboxcontent" style="display:none;"><ul id="group-list-ul" class="live-search-list-group"><?php foreach($groups as $group) :if($group['owner']){$action_icon = "fa fa-trash";$click_icon = 'javascript:deleteGroup(\'' . $group['id'] . '\')';$title_action = "Eliminar Grupo";}else{$action_icon = "fa fa-sign-out";$click_icon = 'javascript:outOfGroup(\'' .$group['id'] . '\')';$title_action = "Salir del Grupo";}?><li class="iflychat-olist-item iflychat-ol-ul-user-img iflychat-userlist-room-item chat_options" data-search-term="<?php echo trim(strtolower($group['name'])) ?>"><div class="drupalchat-self-profile"><span style="text-align: right" class="Offline statuso"><span class="statusIN"><i title="Integrantes" class="fa fa-users" style="font-size:14px;margin-top:4px;" aria-hidden="true"onclick="javascript:showGroupContacts('<?php echo $group['id'] ?>')"></i></span><span class="statusIN"><i title="<?php echo $title_action ?>" class="<?php echo $action_icon ?>" style="font-size:14px;margin-top:4px;" aria-hidden="true" onclick="<?php echo $click_icon ?>"></i></span></span><div class="drupalchat-self-profile-div"><div class="drupalchat-self-profile-img + localhost-image-sprite-28"><img class="chat-image img-circle pull-left" height="36" width="36" src="<?php echo $users_group_png ?>" alt="image-image"></div></div><div class="drupalchat-self-profile-namdiv"><a class="drupalchat-profile-un drupalchat_cng" href="javascript:void(0)" onclick="javascript:chatGroup('<?php echo $group['id'] ?>','<?php echo $group['name'] ?>')"> <?php echo $group['name'] ?> </a></div></div></li><?php endforeach; ?></ul></div><div class="group-contacts-list chatboxcontent" style="display:none;"><div style="text-align:center;font-size:13px;">Integrantes del grupo</div><ul id="contact-group-list-ul" class="live-search-list"></ul></div></div></div></li></ul></div></div></div><!--This div for modal light box chat box image--><table id="lightbox" class="lightbox" style="display: none;height: 100%"><tr><td height="10px"><p><img src="<?php echo $this->basePath('images/close-icon-white.png')?>" width="30px" style="cursor: pointer"/></p></td></tr><tr><td valign="middle"><div id="content"><img src="#"/></div></td></tr></table><!--This div for modal light box chat box image--><!--This div for modal light box chat box image--><table id="lightbox_group" class="lightbox" style="display: none;height: 100%"><tr><td height="10px"><p><img src="<?php echo $this->basePath('images/close-icon-white.png')?>" width="30px" style="cursor: pointer"/></p></td></tr><tr><td valign="middle"><div id="gcontent"></div></td></tr></table><!--This div for modal light box chat box image--><form id="form-new-group" style="display: none; z-index: 1000">Nombre del grupo:<input type="text" id="group_name" maxlength="50" /><input type="button" id="btn_submit_group" value="Crear" class="pull-right"></form>