Advertisement
MattSowards

Untitled

Jan 21st, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.92 KB | None | 0 0
  1. "use strict";
  2. var CASEW = 1050;
  3. var LAST_BET = 0;
  4. var MAX_BET = 0;
  5. var HIDEG = false;
  6. var USER = "";
  7. var RANK = 0;
  8. var ROUND = 0;
  9. var HOST = ":8080";
  10. var SOCKET = null;
  11. var showbets = true;
  12.  
  13. function todongers(x) {
  14. if ($("#settings_dongers").is(":checked")) {
  15. return (x / 1000);
  16. }
  17. return x;
  18. }
  19.  
  20. function todongersb(x) {
  21. if ($("#settings_dongers").is(":checked")) {
  22. return (x / 1000).toFixed(3);
  23. }
  24. return x;
  25. }
  26. var snapX = 0;
  27. var R = 0.999;
  28. var S = 0.01;
  29. var tf = 0;
  30. var vi = 0;
  31. var animStart = 0;
  32. var isMoving = false;
  33. var LOGR = Math.log(R);
  34. var $CASE = null;
  35. var $BANNER = null;
  36. var $CHATAREA = null;
  37. var SCROLL = true;
  38. var LANG = 1;
  39. var IGNORE = [];
  40. var sounds_rolling = new Audio("/template/sounds/start-roule1.mp3");
  41. sounds_rolling.volume = 0.20;
  42. var sounds_tone = new Audio("/template/sounds/winner.mp3");
  43. sounds_tone.volume = 0.05;
  44. var sounds_Addbet = new Audio("/template/sounds/bet.mp3");
  45. sounds_Addbet.volume = 0.10;
  46. function play_sound(x) {
  47. var conf = $("#settings_sounds").is(":checked");
  48. if (conf) {
  49. if (x == "roll") {
  50. sounds_rolling.play();
  51. } else if (x == "finish") {
  52. sounds_tone.play();
  53. } else if(x == "boom") {
  54. sounds_boom.play();
  55. } else if(x == "click") {
  56. sounds_click.play();
  57. } else if(x == "roll2") {
  58. sounds_rolling2.play();
  59. } else if(x == "finish2") {
  60. sounds_tone2.play();
  61. }
  62. }
  63. }
  64.  
  65. function snapRender(x, wobble) {
  66. CASEW = $("#case").width();
  67. if (isMoving) return;
  68. else if (typeof x === 'undefined') view(snapX);
  69. else {
  70. var order = [1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8];
  71. var index = 0;
  72. for (var i = 0; i < order.length; i++) {
  73. if (x == order[i]) {
  74. index = i;
  75. break
  76. }
  77. }
  78. var max = 32;
  79. var min = -32;
  80. var w = Math.floor(wobble * (max - min + 1) + min);
  81. var dist = index * 70 + 36 + w;
  82. dist += 1050 * 5;
  83. snapX = dist;
  84. view(snapX)
  85. }
  86. }
  87.  
  88. function spin(m) {
  89. var x = m.roll;
  90. play_sound("roll");
  91. var order = [1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8];
  92. var index = 0;
  93. for (var i = 0; i < order.length; i++) {
  94. if (x == order[i]) {
  95. index = i;
  96. break
  97. }
  98. }
  99. var max = 32;
  100. var min = -32;
  101. var w = Math.floor(m.wobble * (max - min + 1) + min);
  102. var dist = index * 70 + 36 + w;
  103. dist += 1050 * 5;
  104. animStart = new Date().getTime();
  105. vi = getVi(dist);
  106. tf = getTf(vi);
  107. isMoving = true;
  108. setTimeout(function() {
  109. finishRoll(m, tf)
  110. }, tf);
  111. render()
  112. }
  113.  
  114. function d_mod(vi, t) {
  115. return vi * (Math.pow(R, t) - 1) / LOGR;
  116. }
  117.  
  118. function getTf(vi) {
  119. return (Math.log(S) - Math.log(vi)) / LOGR;
  120. }
  121.  
  122. function getVi(df) {
  123. return S - df * LOGR;
  124. }
  125.  
  126. function v(vi, t) {
  127. return vi * Math.pow(R, t);
  128. }
  129.  
  130. function render() {
  131. var t = new Date().getTime() - animStart;
  132. if (t > tf)
  133. t = tf;
  134. var deg = d_mod(vi, t);
  135. view(deg);
  136. if (t < tf) {
  137. requestAnimationFrame(render);
  138. } else {
  139. snapX = deg;
  140. isMoving = false;
  141. }
  142. }
  143.  
  144. function view(offset) {
  145. offset = -((offset + 1050 - CASEW / 2) % 1050);
  146. $CASE.css("background-position", offset + "px 0px");
  147. }
  148. jQuery.fn.extend({
  149. countTo: function(x, opts) {
  150. opts = opts || {};
  151. var dpf = "";
  152. var dolls = $("#settings_dongers").is(":checked");
  153. if (dolls) {
  154. dpf = "$";
  155. x = x / 1000;
  156. }
  157. var $this = $(this);
  158. var start = parseFloat($this.html());
  159. var delta = x - start;
  160. if (opts.color) {
  161. if (delta > 0) {
  162. $this.addClass("text-success");
  163. } else if (delta < 0) {
  164. $this.addClass("text-danger");
  165. }
  166. }
  167. var prefix = "";
  168. if (opts.keep && delta > 0) {
  169. prefix = "+";
  170. }
  171. var durd = delta;
  172. if (dolls) {
  173. durd *= 1000;
  174. }
  175. var dur = Math.min(400, Math.round(Math.abs(durd) / 500 * 400));
  176. $({
  177. count: start
  178. }).animate({
  179. count: x
  180. }, {
  181. duration: dur,
  182. step: function(val) {
  183. var vts = 0;
  184. if (dolls) {
  185. vts = val.toFixed(3);
  186. } else {
  187. vts = Math.floor(val);
  188. }
  189. $this.html("" + prefix + (vts));
  190. },
  191. complete: function() {
  192. if (!opts.keep) {
  193. $this.removeClass("text-success text-danger");
  194. }
  195. if (opts.callback) {
  196. opts.callback();
  197. }
  198. }
  199. });
  200. }
  201. });
  202.  
  203. function cd(ms, cb) {
  204. $("#counter").finish().css("width", "100%");
  205. $("#counter").animate({
  206. width: "0%"
  207. }, {
  208. "duration": ms * 1000,
  209. "easing": "linear",
  210. progress: function(a, p, r) {
  211. var c = (r / 1000).toFixed(2);
  212. $BANNER.html("Rolling in " + c + "...");
  213. },
  214. complete: cb
  215. });
  216. }
  217.  
  218. function send(msg) {
  219. if (SOCKET) {
  220. SOCKET.emit('mes', msg);
  221. }
  222. }
  223.  
  224. function finishRoll(m, tf) {
  225. $BANNER.html("Rolled number " + m.roll + "!");
  226. addHist(m.roll, m.rollid);
  227. play_sound("finish");
  228. for (var i = 0; i < m.nets.length; i++) {
  229. $("#panel" + m.nets[i].lower + "-" + m.nets[i].upper).find(".total").countTo(m.nets[i].swon > 0 ? m.nets[i].swon : -m.nets[i].samount, {
  230. "color": true,
  231. "keep": true
  232. });
  233. }
  234. var cats = [
  235. [0, 0],
  236. [1, 7],
  237. [8, 14]
  238. ];
  239. for (var i = 0; i < cats.length; i++) {
  240. var $mytotal = $("#panel" + cats[i][0] + "-" + cats[i][1]).find(".mytotal");
  241. if (m.roll >= cats[i][0] && m.roll <= cats[i][1]) {
  242. $mytotal.countTo(m.won, {
  243. "color": true,
  244. "keep": true
  245. });
  246. } else {
  247. var curr = parseFloat($mytotal.html());
  248. if ($("#settings_dongers").is(":checked")) {
  249. curr *= 1000;
  250. }
  251. $mytotal.countTo(-curr, {
  252. "color": true,
  253. "keep": true
  254. });
  255. }
  256. }
  257. if (m.balance != null) {
  258. $("#balance").countTo(m.balance, {
  259. "color": true
  260. });
  261. checkplus(m.balance);
  262. }
  263. setTimeout(function() {
  264. cd(m.count);
  265. $(".total,.mytotal").removeClass("text-success text-danger").html(0);
  266. $(".betlist li").remove();
  267. snapRender();
  268. $(".betButton").prop("disabled", false);
  269. showbets = true;
  270. }, m.wait * 1000 - tf);
  271. }
  272.  
  273. function checkplus(balance) {
  274. if(balance < 20) {
  275. $('#oneplusbutton').show();
  276. } else {
  277. $('#oneplusbutton').hide();
  278. }
  279. }
  280.  
  281. function addHist(roll, rollid) {
  282. var count = $("#past .ball").length;
  283. if (count >= 10) {
  284. $("#past .ball").first().remove();
  285. }
  286. if (roll == 0) {
  287. $("#past").append("<div data-rollid='" + rollid + "'class='ball ball-0'>" + roll + "</div>");
  288. } else if (roll <= 7) {
  289. $("#past").append("<div data-rollid='" + rollid + "'class='ball ball-1'>" + roll + "</div>");
  290. } else {
  291. $("#past").append("<div data-rollid='" + rollid + "'class='ball ball-8'>" + roll + "</div>");
  292. }
  293. }
  294.  
  295. function onMessage(msg) {
  296. var m = msg;
  297. console.log(msg);
  298. if (m.type == "preroll") {
  299. $("#counter").finish();
  300. $("#banner").html("Confirming " + m.totalbets + "/" + (m.totalbets + m.inprog) + " total bets...");
  301. $("#panel0-0-t .total").countTo(m.sums[0]);
  302. $("#panel1-7-t .total").countTo(m.sums[1]);
  303. $("#panel8-14-t .total").countTo(m.sums[2]);
  304. try {
  305. tinysort("#panel1-7-t .betlist>li", {
  306. data: "amount",
  307. order: "desc"
  308. });
  309. } catch (e) {}
  310. try {
  311. tinysort("#panel8-14-t .betlist>li", {
  312. data: "amount",
  313. order: "desc"
  314. });
  315. } catch (e) {}
  316. try {
  317. tinysort("#panel0-0-t .betlist>li", {
  318. data: "amount",
  319. order: "desc"
  320. });
  321. } catch (e) {}
  322. } else if (m.type == "roll") {
  323. $(".betButton").prop("disabled", true);
  324. $("#counter").finish();
  325. $("#banner").html("***ROLLING***");
  326. ROUND = m.rollid;
  327. showbets = false;
  328. spin(m);
  329. } else if (m.type == "chat") {
  330. chat("player", m.msg, m.name, m.icon, m.user, m.rank, m.lang, m.hide);
  331. } else if (m.type == "hello") {
  332. cd(m.count);
  333. USER = m.user; // steamid
  334. RANK = m.rank; // rank admin
  335. $("#balance").countTo(m.balance);
  336. checkplus(m.balance);
  337. var last = 0;
  338. for (var i = 0; i < m.rolls.length; i++) {
  339. addHist(m.rolls[i].roll, m.rolls[i].rollid);
  340. last = m.rolls[i].roll;
  341. ROUND = m.rolls[i].rollid;
  342. }
  343. snapRender(last, m.last_wobble);
  344. MAX_BET = m.maxbet;
  345. chat("alert", "Minimum bet: " + m.minbet + " coins, " + "Maximum bet: " + formatNum(MAX_BET) + " coins, " + " Bets per round: " + m.br + ", Round time : " + m.accept + " sec, " + " Chat delay: " + m.chat + " sec. ");
  346. } else if (m.type == "bet") {
  347. if (showbets) {
  348. addBet(m.bet);
  349. $("#panel0-0-t .total").countTo(m.sums[0]);
  350. $("#panel1-7-t .total").countTo(m.sums[1]);
  351. $("#panel8-14-t .total").countTo(m.sums[2])
  352. }
  353. } else if (m.type == "betconfirm") {
  354. $("#panel" + m.bet.lower + "-" + m.bet.upper + "-m .mytotal").countTo(m.bet.amount);
  355. $("#balance").countTo(m.balance, {
  356. "color": true
  357. });
  358. checkplus(m.balance);
  359. $(".betButton").prop("disabled", false);
  360. chat("alert", "Bet #" + m.bet.betid + " confirmed " + m.mybr + "/" + m.br + " (" + (m.exec / 1000) + " sec) ");
  361. } else if (m.type == "error") {
  362. chat("error", m.error);
  363. if (m.enable) {
  364. $(".betButton").prop("disabled", false);
  365. }
  366. } else if (m.type == "alert") {
  367. chat("alert", m.alert);
  368. if (m.maxbet) {
  369. MAX_BET = m.maxbet;
  370. }
  371. if (!isNaN(m.balance)) {
  372. console.log("setting balance = %s", m.balance);
  373. $("#balance").countTo(m.balance, {
  374. "color": true
  375. });
  376. checkplus(m.balance);
  377. }
  378. } else if (m.type == "logins") {
  379. $("#isonline").html(m.count);
  380. } else if (m.type == "balance") {
  381. $("#balance").fadeOut(100).html(todongersb(m.balance)).fadeIn(100);
  382. checkplus(m.balance);
  383. }
  384. }
  385.  
  386. function addBet(bet) {
  387. var betid = bet.user + "-" + bet.lower;
  388. var pid = "#panel" + bet.lower + "-" + bet.upper;
  389. var $panel = $(pid);
  390. $panel.find("#" + betid).remove();
  391. var f = "<li class='list-group-item' id='{0}' data-amount='{1}'>";
  392. f += "<div style='overflow: hidden;line-height:32px'>";
  393. f += "<div class='pull-left'><img class='rounded' src='https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars{2}'> <b>{3}</b></div>";
  394. f += "<div class='amount pull-right'>{4}</div>";
  395. f += "</div></li>";
  396. var $li = $(f.format(betid, bet.amount, bet.icon, bet.name, todongersb(bet.amount)));
  397. $li.hide().prependTo($panel.find(".betlist")).slideDown("fast", function() {
  398. snapRender();
  399. });
  400. }
  401.  
  402. function connect() {
  403. if(!SOCKET) {
  404. chat("italic", "Generating token...");
  405. var hash = getCookie('hash');
  406. if(!hash) {
  407. chat("italic", "Please, sing through steam.");
  408. } else {
  409. chat("italic", "Connecting...");
  410. SOCKET = io(HOST);
  411. SOCKET.on('connect', function(msg) {
  412. chat("italic", "Connected!");
  413. SOCKET.emit('hash', hash);
  414. });
  415. SOCKET.on('connect_error', function(msg) {
  416. chat("italic", "Conection lost...");
  417. });
  418. SOCKET.on('message', function(msg) {
  419. onMessage(msg);
  420. });
  421. }
  422. } else {
  423. console.log("Error: connection already exists.");
  424. }
  425. }
  426.  
  427. function emotes(str) {
  428. var a = ["deIlluminati", "KappaRoss", "KappaPride", "BibleThump", "Kappa", "Keepo", "Kreygasm", "PJSalt", "PogChamp", "SMOrc", "CO", "CA", "Tb", "offFire", "Fire", "rip", "lovegreen", "heart", "FailFish"];
  429. for (var i = 0; i < a.length; i++) {
  430. str = str.replace(new RegExp(a[i] + "( |$)", "g"), "<img src='/template/img/twitch/" + a[i] + ".png'> ");
  431. }
  432. return str;
  433. }
  434.  
  435. function chat(x, msg, name, icon, steamid, rank, lang, hide) {
  436. if (IGNORE.indexOf(String(steamid)) > -1) {
  437. console.log("ignored:" + msg);
  438. return;
  439. }
  440. if (lang == LANG || x == "italic" || x == "error" || x == "alert") {
  441. var ele = document.getElementById("chatArea");
  442. msg = msg.replace(/(<|>)/g, '');
  443. msg = emotes(msg);
  444. var toChat = "";
  445. if (x == "italic") toChat = "<div class='chat-msg'><img class='chat-img rounded' data-steamid='0' data-name='System' src='https://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7d/7dd9b0a6c176264d2f98097d73da6ed83d7c7c2c_full.jpg'><div><span>CSGOBroke Bot</span></div> <div>" + msg + "</div></div>";
  446. else if (x == "error") toChat = "<div class='chat-msg'><img class='chat-img rounded' data-steamid='0' data-name='System' src='https://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7d/7dd9b0a6c176264d2f98097d73da6ed83d7c7c2c_full.jpg'><div><span>CSGOBroke Bot</span></div> <div class='text-danger'>" + msg + "</div></div>";
  447. else if (x == "alert") toChat = "<div class='chat-msg'><img class='chat-img rounded' data-steamid='0' data-name='System' src='https://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7d/7dd9b0a6c176264d2f98097d73da6ed83d7c7c2c_full.jpg'><div><span>CSGOBroke Bot</span></div> <div class='text-success'>" + msg + "</div></div>";
  448. else if (x == "player") {
  449. var aclass = "chat-link";
  450. if (rank == 51) {
  451. aclass = "chat-link-mod";
  452. name = "[Owner] " + name;
  453. } else if (rank == 1) {
  454. aclass = "chat-link-pmod";
  455. name = "[Mod] " + name;
  456. } else if (rank == -4) {
  457. aclass = "chat-link-streamer";
  458. name = "[Sponsor] " + name;
  459. } else if (rank == -2) {
  460. aclass = "chat-link-vet";
  461. name = "[Gold Member] " + name;
  462. } else if (rank == -3) {
  463. aclass = "chat-link-pro";
  464. name = "[VIP] " + name;
  465. } else if (rank == -5) {
  466. aclass = "chat-link-yt";
  467. name = "[Youtuber] " + name;
  468. } else if (rank == -6) {
  469. aclass = "chat-link-mod";
  470. name = "[Investor] " + name;
  471. }
  472.  
  473. var link = "http://steamcommunity.com/profiles/" + steamid;
  474. toChat = "<div class='chat-msg'><img class='chat-img rounded' data-steamid='" + steamid + "' data-name='" + name + "' src='https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars" + icon + "'>";
  475. if (hide) {
  476. toChat += "<div><span class='" + aclass + "'>" + name + "</span></div><div>" + msg + "</div>";
  477. } else {
  478. toChat += "<div><a href='" + link + "' target='_blank'><span class='" + aclass + "'>" + name + "</span></a></div><div>" + msg + "</div>";
  479. }
  480. }
  481. $CHATAREA.append(toChat);
  482. if (SCROLL) {
  483. var curr = $CHATAREA.children().length;
  484. if (curr > 75) {
  485. var rem = curr - 75;
  486. $CHATAREA.children().slice(0, rem).remove();
  487. }
  488. $CHATAREA.scrollTop($CHATAREA[0].scrollHeight);
  489. }
  490. if (SCROLL && !$(".side-icon[data-tab='1']").hasClass("active")) {
  491. var curr = parseInt($("#newMsg").html()) || 0;
  492. $("#newMsg").html(curr + 1);
  493. }
  494. }
  495. }
  496. $(document).ready(function() {
  497. $CASE = $("#case");
  498. $BANNER = $("#banner");
  499. $CHATAREA = $("#chatArea");
  500. connect();
  501. if ($("#settings_dongers").is(":checked")) {
  502. $("#dongers").html("$");
  503. }
  504. $("#lang").on("change", function() {
  505. LANG = $(this).val();
  506. chat("alert", "You moved to room: " + $(this).find("option:selected").text());
  507. });
  508. $("#scroll").on("change", function() {
  509. SCROLL = !$(this).is(":checked");
  510. });
  511. $(window).resize(function() {
  512. snapRender();
  513. });
  514. $("#chatForm").on("submit", function() {
  515. var msg = $("#chatMessage").val();
  516. if (msg) {
  517. var res = null;
  518. if (res = /^\/send ([0-9]*) ([0-9]*)/.exec(msg)) {
  519. bootbox.confirm("You are going to send " + res[2] + " to the Steam ID " + res[1] + " - are you sure?", function(result) {
  520. if (result) {
  521. send({
  522. "type": "chat",
  523. "msg": msg,
  524. "lang": LANG
  525. });
  526. $("#chatMessage").val("");
  527. }
  528. });
  529. } else {
  530. var hideme = $("#settings_hideme").is(":checked");
  531. send({
  532. "type": "chat",
  533. "msg": msg,
  534. "lang": LANG,
  535. "hide": hideme,
  536. });
  537. $("#chatMessage").val("");
  538. }
  539. }
  540. return false;
  541. });
  542. $(document).on("click", ".ball", function() {
  543. var rollid = $(this).data("rollid");
  544. });
  545. $(".betButton").on("click", function() {
  546. var lower = $(this).data("lower");
  547. var upper = $(this).data("upper");
  548. var amount = str2int($("#betAmount").val());
  549. if ($("#settings_dongers").is(":checked")) {
  550. amount = amount * 1000;
  551. }
  552. amount = Math.floor(amount);
  553. var conf = $("#settings_confirm").is(":checked");
  554. if (conf && amount > 10000) {
  555. var pressed = false;
  556. bootbox.confirm("Are you sure you want to bet " + formatNum(amount) + " credits?<br><br><i>You can disable this in settings.</i>", function(result) {
  557. if (result && !pressed) {
  558. pressed = true;
  559. send({
  560. "type": "bet",
  561. "amount": amount,
  562. "lower": lower,
  563. "upper": upper,
  564. "round": ROUND
  565. });
  566. LAST_BET = amount;
  567. $(this).prop("disabled", true);
  568. }
  569. });
  570. } else {
  571. send({
  572. "type": "bet",
  573. "amount": amount,
  574. "lower": lower,
  575. "upper": upper,
  576. "round": ROUND
  577. });
  578. LAST_BET = amount;
  579. $(this).prop("disabled", true);
  580. }
  581. return false;
  582. });
  583. $(document).on("click", ".betshort", function() {
  584. var bet_amount = str2int($("#betAmount").val());
  585. var action = $(this).data("action");
  586. if (action == "clear") {
  587. bet_amount = 0;
  588. } else if (action == "double") {
  589. bet_amount *= 2;
  590. } else if (action == "half") {
  591. bet_amount /= 2;
  592. } else if (action == "max") {
  593. var MX = MAX_BET;
  594. if ($("#settings_dongers").is(":checked")) {
  595. MX = MAX_BET / 1000;
  596. }
  597. bet_amount = Math.min(str2int($("#balance").html()), MX);
  598. } else if (action == "last") {
  599. bet_amount = 0;
  600. } else {
  601. bet_amount += parseInt(action);
  602. }
  603. $("#betAmount").val(bet_amount);
  604. });
  605. $("#getbal").on("click", function() {
  606. send({
  607. "type": "balance"
  608. });
  609. });
  610. $("button.close").on("click", function() {
  611. $(this).parent().addClass("hidden");
  612. });
  613. $(document).on("contextmenu", ".chat-img", function(e) {
  614. if (e.ctrlKey) return;
  615. $("#contextMenu [data-act=1]").hide();
  616. $("#contextMenu [data-act=2]").hide();
  617. if (RANK == 100) {
  618. $("#contextMenu [data-act=1]").show();
  619. $("#contextMenu [data-act=2]").show();
  620. } else if (RANK == 1) {
  621. $("#contextMenu [data-act=1]").show();
  622. }
  623. e.preventDefault();
  624. var steamid = $(this).data("steamid");
  625. var name = $(this).data("name");
  626. $("#contextMenu [data-act=0]").html(name);
  627. var $menu = $("#contextMenu");
  628. $menu.show().css({
  629. position: "absolute",
  630. left: getMenuPosition(e.clientX, 'width', 'scrollLeft'),
  631. top: getMenuPosition(e.clientY, 'height', 'scrollTop')
  632. }).off("click").on("click", "a", function(e) {
  633. var act = $(this).data("act");
  634. e.preventDefault();
  635. $menu.hide();
  636. if (act == 0) {
  637. var curr = $("#chatMessage").val(steamid);
  638. } else if (act == 1) {
  639. var curr = $("#chatMessage").val("/mute " + steamid + " ");
  640. } else if (act == 2) {
  641. var curr = $("#chatMessage").val("/kick " + steamid + " ");
  642. } else if (act == 3) {
  643. var curr = $("#chatMessage").val("/send " + steamid + " ");
  644. } else if (act == 4) {
  645. IGNORE.push(String(steamid));
  646. chat("alert", steamid + " Ignored.");
  647. }
  648. $("#chatMessage").focus();
  649. });
  650. });
  651. $(document).on("click", function() {
  652. $("#contextMenu").hide();
  653. });
  654. $(".side-icon").on("click", function(e) {
  655. e.preventDefault();
  656. var tab = $(this).data("tab");
  657. if ($(this).hasClass("active")) {
  658. $(".side-icon").removeClass("active");
  659. $(".tab-group").addClass("hidden");
  660. $("#mainpage").css("margin-left", "50px");
  661. $("#pullout").addClass("hidden");
  662. } else {
  663. $(".side-icon").removeClass("active");
  664. $(".tab-group").addClass("hidden");
  665. $(this).addClass("active");
  666. $("#tab" + tab).removeClass("hidden");
  667. $("#mainpage").css("margin-left", "450px");
  668. $("#pullout").removeClass("hidden");
  669. if (tab == 1) {
  670. $("#newMsg").html("");
  671. }
  672. }
  673. snapRender();
  674. return false;
  675. });
  676. $(".smiles li img").on("click", function() {
  677. $("#chatMessage").val($("#chatMessage").val() + $(this).data("smile") + " ")
  678. });
  679. $('.clearChat').on("click", function() {
  680. $('#chatArea').html("<div><b class='text-success'>Chat cleared!</b></div>")
  681. });
  682. $(document).on("click", ".deleteMsg", function(e) {
  683. var t = $(this).data("id");
  684. send({
  685. type: "delmsg",
  686. id: t
  687. })
  688. });
  689. $(".side-icon[data-tab='1']").trigger("click")
  690. });
  691.  
  692. function getAbscentPhrases(msg) {
  693. var phrases = ["hello", 1, "simba"];
  694. for (var i = 0; i < phrases.length; i++) {
  695. if (msg.toLowerCase().indexOf(phrases[i]) + 1) {
  696. return 1
  697. }
  698. }
  699. return 0
  700. }
  701.  
  702. function changeLang(id) {
  703. LANG = $(this).val();
  704. $(".lang-select").html($(".language > li").eq(id - 1).find("a").html());
  705. chat("alert", "Changed to the room: " + $(".language > li").eq(id - 1).find("a").html())
  706. }
  707.  
  708. function getMenuPosition(mouse, direction, scrollDir) {
  709. var win = $(window)[direction](),
  710. scroll = $(window)[scrollDir](),
  711. menu = $("#contextMenu")[direction](),
  712. position = mouse + scroll;
  713. if (mouse + menu > win && menu < mouse)
  714. position -= menu;
  715. return position;
  716. }
  717.  
  718. function str2int(s) {
  719. s = s.replace(/,/g, "");
  720. s = s.toLowerCase();
  721. var i = parseFloat(s);
  722. if (isNaN(i)) {
  723. return 0;
  724. } else if (s.charAt(s.length - 1) == "k") {
  725. i *= 1000;
  726. } else if (s.charAt(s.length - 1) == "m") {
  727. i *= 1000000;
  728. } else if (s.charAt(s.length - 1) == "b") {
  729. i *= 1000000000;
  730. }
  731. return i;
  732. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement