lpiotrowski

Unpack JS

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