Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**************************************************************************
- * Module: JS_ChatAutoLogon
- * Description: Auto Logon in Chat Box!
- * Author: Made and Optimizations by JScript - 2014/11/02
- * Version: First Release!
- ***************************************************************************/
- function insertChatBox(chatbox_id, chatbox_url)
- {
- return insertChatBoxNew(chatbox_id, chatbox_url)
- }
- function insertChatBoxNew(chatbox_id, chatbox_url)
- {
- // $('#' + chatbox_id).parent().detach().prependTo('#wrapper');
- document.getElementById(chatbox_id).innerHTML = '<iframe style="visibility: hidden;" src="/chatbox/index.forum?archives=1" id="frame_chatbox" scrolling="no" width="100%" height="100%" marginwidth="0" marginheight="0" frameborder="0"></iframe>';
- var iFrame = document.getElementById('frame_chatbox').contentWindow;
- var frame_chatbox_document = setInterval(function()
- {
- try
- {
- if (iFrame.jQuery)
- {
- clearInterval(frame_chatbox_document);
- chat_edit()
- }
- }
- catch (e)
- {}
- }, 50)
- }
- $(function()
- {
- if (_userdata.session_logged_in)
- {
- $('#frame_chatbox').load(function()
- {
- if (typeof document.getElementById('frame_chatbox').contentWindow['chatEdit'] == 'undefined')
- {
- chat_edit()
- }
- })
- }
- });
- function chat_edit()
- {
- var oIframe = (document.getElementById("frame_chatbox").contentWindow.document || document.getElementById("frame_chatbox").contentDocument),
- script = oIframe.createElement("script"),
- chatbox_script = function()
- {
- window.chatEdit = {
- locale:
- {
- Remove: "Tem certeza de que deseja remover esta mensagem?",
- Save: "Salvar",
- Cancel: "Cancelar",
- },
- config:
- {
- Title: "",
- Notice: 0,
- Prefix: "@",
- autoLogin: 1,
- limitOfMsg: 60,
- smilePopUp: 0,
- Level: 0,
- shakeMsg: "agitou a janela de bate-papo para chamar a atenção de todos!"
- },
- interval: 0,
- cmdArray: ['/id', '/edit', '/del', '/info', '/shake', '/abs', '/away', '/clear', '/cls', '/kick', '/ban', '/unban', '/me', '/exit', '/mod', '/unmod'],
- oBBCode:
- {
- patt: [/\[b](.*?)\[\/b]/gi, /\[i](.*?)\[\/i]/gi, /\[u](.*?)\[\/u]/gi, /\[s](.*?)\[\/s]/gi, /\[center](.*?)\[\/center]/gi, /\[size=(.*?)](.*?)\[\/size]/gi, /\[url](.*?)\[\/url]/gi, /\[url=(.*?)](.*?)\[\/url]/gi, /\[color=(.*?)](.*?)\[\/color]/gi, /\[img](.*?)\[\/img]/gi, /\[spoiler](.*?)\[\/spoiler]/gi, /\[code](.*?)\[\/code]/gi, /\[quote](.*?)\[\/quote]/gi],
- html: ["<strong>$1</strong>", "<i>$1</i>", "<span style='text-decoration:underline;'>$1</span>", "<span style='text-decoration:line-through'>$1</span>", "<div style='margin:auto;text-align:center;width:100%'>$1</div>", "<span style='font-size: $1;'>$2</span>", "<a rel='nofollow' target='_blank' href='$1'>$1</a>", "<a rel='nofollow' target='_blank' href='$1'>$2</a>", "<span style='color: $1'>$2</span>", "<img src='$1' style='max-width:120px;max-height:120px;'/>", "<dl class='codebox spoiler'><dt style='cursor: pointer;'>Spoiler:</dt><dd><div class='spoiler_content'>$1</div></dd></dl>", "<dl class='codebox'><dt>Code:</dt><dd class='cont_code'><code>$1</code></dd></dl>", "<blockquote><div>$1</div></blockquote>"]
- },
- oHTML:
- {
- patt: [/<strong>(.*?)<\/strong>/gi, /<i>(.*?)<\/i>/gi, /<span style="text-decoration:underline;">(.*?)<\/span>/gi, /<span style="text-decoration:line-through;">(.*?)<\/span>/gi, /<div style="margin:auto;text-align:center;width:100%">(.*?)<\/div>/gi, /<span style="font-size: (.*?);">(.*?)<\/span>/gi, /<a href="(.*?)"><\/a>/gi, /<a href="(.*?)">(.*?)<\/a>/gi, /<span style="color: (.*?)">(.*?)<\/span>/gi, /<dl class="codebox spoiler"><dt style="cursor: pointer;">Spoiler:<\/dt><dd><div class="spoiler_content">(.*?)<\/div><\/dd><\/dl>/gi, /<dl class="codebox"><dt>Code:<\/dt><dd class="cont_code"><code>(.*?)<\/code><\/dd><\/dl>/gi, /<blockquote><div>(.*?)<\/div><\/blockquote>/gi],
- bbcode: ['[b]$1[/b]', '[i]$1[/i]', '[u]$1[/u]', '[s]$1[/s]', '[center]$1[/center]', '[size=$1]$2[/size]', '[url]"$1"[/url]', '[url="$1"]$2[/url]', '[color=$1]$2[/color]', '[spoiler]$1[/spoiler]', '[code]$1[/code]', '[quote]$1[/quote]']
- },
- loadSmile: function()
- {
- if (chatEdit.config.smilePopUp)
- {
- return false
- }
- $("#divsmilies").unbind("click").bind("click", function(event)
- {
- chatEdit.showSmile(event)
- });
- jQuery.ajax(
- {
- url: "/post?mode=smilies",
- cache: true,
- type: "get",
- dataType: "text",
- success: function(response, status, xhr)
- {
- if (xhr.status == 200)
- {
- var htmlSmile = $("<div>" + response + "</div>");
- htmlSmile.find("#smilies_categ, p, span").remove();
- htmlSmile.html(htmlSmile.html().replace(/insert_chatboxsmilie/g, "chatEdit.insertSmile"));
- var oTarget = htmlSmile.find("a"),
- oThis, patt, regex, pHtml = chatEdit.oHTML.patt,
- bHtml = chatEdit.oHTML.bbcode;
- for (var i = 0, len = oTarget.length; i < len; i++)
- {
- oThis = $(oTarget[i]);
- patt = /\('(.*?)'\)/i.exec(oThis.attr("href"))[1];
- regex = new RegExp('<img[^>]+?' + oThis.find('img').attr('src') + '[^>]*>', "gi");
- pHtml.push(regex);
- bHtml.push(patt.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\^\$\|]/g, "\\$&"))
- }
- jQuery("#chat-smiles-show").html(htmlSmile.find("#simple-wrap, tbody:last").html())
- }
- }
- });
- jQuery("head").append("<style type='text/css'>" + "#chat-smiles-show {" + " background: none no-repeat scroll center center rgb(255, 255, 255);" + " border: 2px solid #d2d2d2;" + " height: 250px;" + " overflow: auto;" + " padding-top: 6px;" + " position: absolute;" + " width: 225px;" + " z-index: 99999;" + "}" + "#chat-smiles-show > p {" + " margin: 0;" + "}" + "#chat-smiles-show p a {" + " margin-bottom: 14px;" + "}" + "#chat-smiles-show a {" + " display: inline-block;" + " font-size: 18px;" + " margin-bottom: 5px;" + " margin-left: 10px;" + " text-decoration: none;" + "}" + "</style>");
- jQuery("body").append("<div id='chat-smiles-show' style='display: none;'></div>")
- },
- showSmile: function(event)
- {
- var elenPos = jQuery("#divsmilies"),
- target = jQuery("#chat-smiles-show");
- target.css(
- {
- "left": (elenPos.offset().left + elenPos.outerWidth()) - target.outerWidth(),
- "top": elenPos.offset().top - target.outerHeight()
- });
- return (target[0].style.display == "none") ? target.fadeIn("fast") : target.fadeOut("fast")
- },
- insertSmile: function(smile)
- {
- var id = document.getElementById("message");
- id.focus();
- id.value += " " + smile + " ";
- document.getElementById("chat-smiles-show").style.display = "none"
- },
- parseBBCode: function(data)
- {
- var pBBCode = chatEdit.oBBCode.patt,
- hBBCode = chatEdit.oBBCode.html;
- for (var i = 0, len = pBBCode.length; i < len; i++)
- {
- data = data.replace(pBBCode[i], hBBCode[i])
- }
- return data
- },
- parseHTML: function(data)
- {
- var pHtml = chatEdit.oHTML.patt,
- bHtml = chatEdit.oHTML.bbcode;
- for (var i = 0, len = pHtml.length; i < len; i++)
- {
- data = data.replace(pHtml[i], bHtml[i])
- }
- return data
- },
- editShout: function(ID, num, oThis)
- {
- var oShout = $("#chatbox .shout-" + ID),
- oEditor = oShout.find('.date-and-time'),
- oMsg = oShout.find('span.msg');
- try
- {
- var sMsg = chatEdit.parseHTML(oMsg.children('span')[0].innerHTML)
- }
- catch (e)
- {
- var sMsg = chatEdit.parseHTML(oMsg[0].innerHTML)
- }
- if (num == 0)
- {
- var sHtml = '<span>' + ' <textarea id="edit-' + ID + '" style="width: ' + (oMsg.width() - oEditor.width()) + 'px; height: ' + oMsg.height() + 'px;vertical-align: middle;font-family: inherit;font-size: inherit;margin-top: -2px;">' + sMsg + '</textarea>' + ' <input type="submit" style="cursor: pointer;margin-right: 4px;" onclick="chatEdit.submitEdit(' + ID + ', 0, this);" value="' + chatEdit.locale.Save + '" class="button2">' + ' <a title="' + chatEdit.locale.Cancel + '" style="cursor: pointer;" href="javascript:void(0);" onclick="chatEdit.submitEdit(' + ID + ', -1, this);">' + chatEdit.locale.Cancel + '</a>' + ' </span>';
- oEditor.hide();
- oMsg.hide().before(sHtml)
- }
- else if (num == 1 && chatEdit.iConfirm(chatEdit.locale.Remove + "\n\n" + sMsg) == 1)
- {
- chatEdit.submitEdit(ID, 1, oThis)
- }
- },
- submitEdit: function(ID, num, oThis)
- {
- var p = $(oThis).closest('p');
- if (num == 0)
- {
- var value = $('#edit-' + ID).val();
- $('#message').val('/edit' + ID + value);
- p.find('span.msg > span').html(chatEdit.parseBBCode(value)).show();
- window.chatbox.send()
- }
- else if (num == 1)
- {
- $('#message').val('/del' + ID);
- $("#chatbox .shout-" + ID).remove();
- window.chatbox.send()
- }
- p.find('.date-and-time').show().end().find('span.msg').show();
- $(oThis).parent().remove()
- },
- shake: function()
- {
- var iFrame = parent.$("#frame_chatbox"),
- interval = 70,
- distance = 10,
- times = 4;
- iFrame.css('position', 'relative');
- for (var iter = 0; iter < (times + 1); iter++)
- {
- iFrame.animate(
- {
- left: ((iter % 2 == 0 ? distance : distance * -1))
- }, interval)
- }
- iFrame.animate(
- {
- left: 0
- }, interval)
- },
- iConfirm: function(text)
- {
- return (confirm(text) == true) ? true : false
- },
- info:
- {
- Title: "chatbox8 - Edit Messages",
- Version: "1.05222015-jq1.9.1",
- Release: "2015-05-22",
- codeName: "Bhagavad-Gita",
- Author: "JScript - 2015-05-07",
- copyRight: "(c) 2015 JScript <jscriptbrasil at live dot com>\nThis work is free. You can redistribute it and/or modify it under the terms of the WTFPL, Version 2"
- }
- };
- (function($)
- {
- $.assyncFor = function(arr, limitOfMsg, callback)
- {
- var max_len = (arr.length > limitOfMsg) ? (arr.length - limitOfMsg) : 0;
- if (max_len < 0)
- {
- max_len = 0
- }
- for (var i = max_len, len = arr.length; i < len; ++i)
- {
- var boundCallback = callback.bind(null, i, arr[i]);
- setTimeout(boundCallback, i)
- }
- return this
- }
- }(jQuery));
- Chatbox.prototype.send = function(params)
- {
- var isCMD = null,
- message = $('#message').val().trim(),
- ID = (Math.random() + "000000000" + _userdata.user_id.toString()).substr(2, 10);
- for (var i = 0, len = chatEdit.cmdArray.length; i < len; ++i)
- {
- if (message.indexOf(chatEdit.cmdArray[i]) == 0)
- {
- isCMD = chatEdit.cmdArray[i]
- }
- }
- switch (isCMD)
- {
- case null:
- $('#message').val('/id' + ID + " " + message);
- break;
- case '/shake':
- if (_userdata.user_level > 0)
- {
- $('#message').val('/shake' + ID)
- }
- break;
- case '/info':
- return alert(chatEdit.info.Title + '\n\nVersion: ' + chatEdit.info.Version + '\nReselase date: ' + chatEdit.info.Release + '\nCodeName: ' + chatEdit.info.codeName + '\nAuthor: ' + chatEdit.info.Author + '\nCopyright: ' + chatEdit.info.copyRight);
- break
- }
- if (!params)
- {
- params = $('form[name=\'post\']').serialize()
- }
- var data = params + '&method=send&archives=' + this.archives,
- self = this;
- $('#message').val('').focus();
- $.ajax(
- {
- url: this.actionsUrl,
- type: 'post',
- data: data,
- dataType: 'json',
- cache: false,
- success: function(response)
- {
- self.refresh(response)
- }
- })
- };
- Chatbox.prototype.refresh = function(data)
- {
- if (data.error)
- {
- $("body").html(data.error)
- }
- else
- {
- if (this.connected)
- {
- if (!chatEdit.interval)
- {
- $("#chatbox_display_archives").show();
- $("#chatbox_option_co").hide();
- $("#chatbox_option_disco, #chatbox_footer").show();
- $("#chatbox_messenger_form").css('display', 'block');
- $("#chatbox_messenger_form").css('visibility', 'visible');
- $(".format-message").each(function()
- {
- var name = $(this).attr("name");
- var value = my_getcookie("CB_" + name);
- $(this).prop("checked", parseInt(value) ? true : false)
- });
- this.format();
- if (data.lastModified)
- {
- this.listenParams.lastModified = data.lastModified
- }
- $("#chatbox").empty();
- chatEdit.interval = setInterval(function()
- {
- chatbox.get()
- }, 5000);
- if (document.getElementById("chat-smiles-show") == null)
- {
- chatEdit.loadSmile()
- }
- }
- }
- else
- {
- if (chatEdit.interval)
- {
- clearInterval(chatEdit.interval);
- chatEdit.interval = 0;
- $("#chatbox").empty();
- $("#chatbox_option_co").show();
- $("#chatbox_option_disco, #chatbox_footer").hide();
- $("#chatbox_display_archives").hide();
- $("#chatbox_messenger_form").css('display', 'none');
- $("#chatbox_messenger_form").css('visibility', 'hidden')
- }
- }
- if (data.users)
- {
- this.users = [];
- $(".online-users, .away-users").empty();
- $(".member-title").hide();
- for (var i in data.users)
- {
- var user = data.users[i];
- this.users[user.id] = user;
- var username = "";
- for (var j in data.messages)
- {
- var message = data.messages[j];
- if (message.userId == user.id)
- {
- if (message.user.avatar)
- {
- username = "<span class='cb-avatar'><img src='" + message.user.avatar + "' style='height: 24px; width: 24px; margin-right: 4px;'/></span>"
- }
- }
- }
- username += "<span style='color:" + user.color + "'>" + (user.admin ? "@ " : "") + "<span class='chatbox-username chatbox-user-username' data-user='" + user.id + "' >" + user.username + "</span></span>";
- var list = user.online ? ".online-users" : ".away-users";
- $(list).append("<li>" + username + "</li>")
- }
- if (!$(".online-users").is(":empty"))
- {
- $(".member-title.online").show()
- }
- if (!$(".away-users").is(":empty"))
- {
- $(".member-title.away").show()
- }
- }
- if (data.messages)
- {
- var scroll = !this.messages || this.messages.length != data.messages.length;
- this.messages = data.messages;
- if ((scroll && data.messages.length == 1) || !data.connected)
- {
- $("#chatbox").empty()
- }
- if (this.messages)
- {
- var oThis = this,
- nNotice = chatEdit.config.Notice,
- aMsgLen = oThis.messages.length,
- sDomLst = $("#chatbox").html();
- html = "";
- $.assyncFor(oThis.messages, chatEdit.config.limitOfMsg, function(index, message)
- {
- var CMD = null,
- UID = index;
- if (message.userId > 0)
- {
- CMD = message.msg.match(/([^]+)(\/[a-z]+)(\d{10})([^]+)/)
- }
- if (CMD !== null)
- {
- switch (CMD[2])
- {
- case '/del':
- $(".shout-" + CMD[3]).remove();
- break;
- case '/edit':
- $(".shout-" + CMD[3]).find('span.msg').html(CMD[1] + CMD[4]);
- break;
- case '/shake':
- if (((index + 1) == aMsgLen) && scroll && $('#chatbox_members span[data-user="' + message.userId + '"]').length)
- {
- if (_userdata.user_id !== Number(message.userId))
- {
- setTimeout(function()
- {
- chatEdit.shake()
- }, 500)
- }
- html = "<p class='chatbox_row_" + (index % 2 == 1 ? 2 : 1) + " clearfix shout-" + index + "'>" + " <span class='date-and-time' title='" + message.date + "'>(" + message.datetime + ")</span>" + " <span class='msg'><img src='http://r19.imgfast.net/users/1917/43/09/52/smiles/18952631.png' />" + " <span style='color:" + message.user.color + "'><strong> " + message.username + " <span style='color: red'> " + chatEdit.config.shakeMsg + "</span></strong>" + " </span>" + " </span>" + "</p>";
- $("#chatbox").append(html)
- }
- break;
- default:
- UID = CMD[3];
- message.msg = CMD[1] + CMD[4];
- CMD = null;
- break
- }
- }
- if (CMD == null)
- {
- if ((sDomLst.indexOf("shout-" + UID) !== -1) || (nNotice && message.userId == -10))
- {
- return false
- }
- html = "<p class='chatbox_row_" + (index % 2 == 1 ? 2 : 1) + " clearfix shout-" + UID + "'>" + " <span class='date-and-time' title='" + message.date + "'>(" + message.datetime + ")";
- if (message.userId == -10)
- {
- html += "</span>" + "<span class='msg'><span style='color:" + message.msgColor + "'><strong> " + message.msg + "</strong></span></span>"
- }
- else
- {
- if ((_userdata.username == message.username) || (_userdata.user_level > 0))
- {
- html += " <span class='editor'>" + " <img alt='Edit' style='cursor: pointer;' onclick='chatEdit.editShout(\"" + UID + "\", 0, this);' src='http://i.imgur.com/kW3LoX3.png'> " + " <img alt='Remove' style='cursor: pointer;' onclick='chatEdit.editShout(\"" + UID + "\", 1, this);' src='http://i.imgur.com/KGiq3xm.png'>" + " </span>"
- }
- html += "</span>" + " <span class='user-msg'>";
- if (oThis.avatar)
- {
- html += "<span class='cb-avatar'><img src='" + message.user.avatar + "' /></span>"
- }
- html += " <span class='user' style='color:" + message.user.color + "'>" + " <strong> " + (message.user.admin ? chatEdit.config.Prefix + " " : "") + " <span class='chatbox-username chatbox-message-username' data-user='" + message.userId + "' >" + message.username + "</span> : " + " </strong>" + " </span>" + " <span class='msg'>" + message.msg + "</span>" + " </span>"
- }
- html += "</p>";
- $("#chatbox").append(html)
- }
- if ((index + 1) == aMsgLen)
- {
- if (scroll)
- {
- $("#chatbox")[0].scrollTop = $("#chatbox").prop("scrollHeight") * 2
- }
- }
- })
- }
- }
- }
- };
- if (chatEdit.config.Title.length)
- {
- $("a.chat-title").text(chatEdit.config.Title)
- }
- $("#chatbox_option_co, #chatbox_option_disco").bind("click", function()
- {
- $("#chatbox").empty()
- });
- parent.document.getElementById('frame_chatbox').style.visibility = 'visible';
- if (chatEdit.config.autoLogin)
- {
- setTimeout(function()
- {
- $('#chatbox_option_co:visible').click()
- }, 1000)
- }
- };
- script.type = "text/javascript";
- script.innerHTML = "_userdata = " + JSON.stringify(_userdata) + ";$(function() { (" + chatbox_script.toString() + ")(); });";
- oIframe.getElementsByTagName("head")[0].appendChild(script)
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement