Advertisement
Guest User

Untitled

a guest
Oct 14th, 2014
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var version = "19";
  2. var browser = "chrome";
  3. var pf_version = "7";
  4. var pf_server = "http://madnew-vk.playflock.com/game.php";
  5. var pf_secret = "b8c2a4c33b06da9042d707c46af1c8b5";
  6. var auth_key = null;
  7. var secret = null;
  8. var sid = null;
  9. var user = null;
  10. var currentUid = null;
  11. var uid;
  12. var nick;
  13. var boss_info = "";
  14. var boss_uniq_id = "";
  15. var timestamp;
  16. var session_count;
  17. var boss_data;
  18. var users_name = new Array;
  19. var users_uids = new Array;
  20. window.sn_checkUserInfo = function() {
  21.     var fromIndex = sn_getLayoutType();
  22.     getOwnerID();
  23.     if (fromIndex == 0) {
  24.         $(".user_block")
  25.             .each(function() {
  26.                 if ($(this)
  27.                     .attr("snH_viewed") != "1") {
  28.                     var index = getUserID(fromIndex, $(this)
  29.                         .attr("id"));
  30.                     currentUid = index;
  31.                     if (index != 0) {
  32.                         $(this)
  33.                             .find(".actions")
  34.                             .append('<a id="snH_HorrorMenu_' + index + '" class="friends_act" sn:id="' + index + '">Безумие</a>');
  35.                         $(this)
  36.                             .after('<div id="snH_Layout_' + index + '" style="padding: 5px;" hidden></div>');
  37.                         $("#snH_HorrorMenu_" + index)
  38.                             .click(function() {
  39.                                 var r20 = $("#snH_HorrorMenu_" + index)
  40.                                     .attr("sn:id");
  41.                                 var nodes = "#snH_Layout_" + r20;
  42.                                 var i = fromIndex;
  43.                                 sn_getGameInfo(r20, nodes, 0);
  44.                             });
  45.                     }
  46.                     $(this)
  47.                         .attr("snH_viewed", "1");
  48.                 }
  49.             });
  50.     }
  51.     if (fromIndex == 1) {
  52.         $(".user_block")
  53.             .each(function() {
  54.                 if ($(this)
  55.                     .attr("snH_viewed") != "1") {
  56.                     var index = getUserID(fromIndex, $(this)
  57.                         .find("div[id^='request_controls_']")
  58.                         .attr("id"));
  59.                     currentUid = index;
  60.                     if (index != 0 && !$("#snH_ProfileMenu_" + index)
  61.                         .size()) {
  62.                         var lineSeparator = '<div class="button_blue fl_l" style="margin-left: 5px;"><button id="snH_ProfileMenu_' + index + '" sn:id="' + index + '">Безумие</button></div>';
  63.                         $(this)
  64.                             .find("#request_controls_" + index)
  65.                             .append(lineSeparator);
  66.                         $(this)
  67.                             .after('<div id="snH_Layout_' + index + '" style="padding: 5px;" hidden></div>');
  68.                         $("#snH_ProfileMenu_" + index)
  69.                             .click(function() {
  70.                                 var r20 = $("#snH_ProfileMenu_" + index)
  71.                                     .attr("sn:id");
  72.                                 var nodes = "#snH_Layout_" + r20;
  73.                                 sn_getGameInfo(r20, nodes, 1);
  74.                             });
  75.                     }
  76.                     $(this)
  77.                         .attr("snH_viewed", "1");
  78.                 }
  79.             });
  80.     }
  81.     if (fromIndex == 2) {
  82.         $(".people_row")
  83.             .each(function() {
  84.                 if ($(this)
  85.                     .attr("snH_viewed") != "1") {
  86.                     var index = getUserID(fromIndex, $(this)
  87.                         .find("div:eq(0)")
  88.                         .attr("onmouseover"));
  89.                     currentUid = index;
  90.                     if (index != 0) {
  91.                         $(this)
  92.                             .find(".info")
  93.                             .append('<a id="snH_HorrorMenu_' + index + '" class="friends_act" sn:id="' + index + '">Безумие</a>');
  94.                         $(this)
  95.                             .after('<div id="snH_Layout_' + index + '" style="padding: 5px;" hidden></div>');
  96.                         $("#snH_HorrorMenu_" + index)
  97.                             .click(function() {
  98.                                 var r20 = $("#snH_HorrorMenu_" + index)
  99.                                     .attr("sn:id");
  100.                                 var nodes = "#snH_Layout_" + r20;
  101.                                 sn_getGameInfo(r20, nodes, 2);
  102.                             });
  103.                     }
  104.                     $(this)
  105.                         .attr("snH_viewed", "1");
  106.                 }
  107.             });
  108.     }
  109.     if (fromIndex == 3 || fromIndex == 4) {
  110.         var $this = $("#profile > #profile_narrow");
  111.         var stat = $this.find("#profile_main_actions");
  112.         if ($($this)
  113.             .find("snH_viewed") != "1") {
  114.             var index = getUserID(fromIndex);
  115.             currentUid = index;
  116.             if (index != 0 && !$("#snH_ProfileMenu_" + index)
  117.                 .size()) {
  118.                 if (stat.size() == 0) {
  119.                     var panelMarkup = '<div id="profile_main_actions"><div class="profile_action_btn profile_msg_msg"><div class="button_wide button_blue clear_fix"><button id="snH_ProfileMenu_' + index + '" sn:id="' + index + '">Безумие</button></div><div id="snH_Layout_' + index + '" style="padding: 5px;" hidden></div></div>';
  120.                     if (fromIndex == 3) {
  121.                         $(panelMarkup)
  122.                             .insertAfter("#profile > #profile_narrow > #owner_photo_wrap");
  123.                         $(panelMarkup)
  124.                             .insertAfter("#profile > #profile_narrow > #page_avatar");
  125.                         if (!$("#profile_main_actions")
  126.                             .size()) {
  127.                             $(panelMarkup)
  128.                                 .insertAfter("#profile > #profile_narrow > #page_load_photo");
  129.                         }
  130.                     }
  131.                     if (fromIndex == 4) {
  132.                         $(panelMarkup)
  133.                             .insertAfter("#profile > #profile_narrow > #page_avatar");
  134.                     }
  135.                 } else {
  136.                     panelMarkup = '<div class="profile_action_btn profile_msg_msg"><div class="button_wide button_blue clear_fix"><button id="snH_ProfileMenu_' + index + '" sn:id="' + index + '">Безумие</button></div><div id="snH_Layout_' + index + '" style="padding: 5px;" hidden></div></div>';
  137.                     $(panelMarkup)
  138.                         .appendTo("#profile_main_actions");
  139.                 }
  140.                 $("#snH_ProfileMenu_" + index)
  141.                     .click(function() {
  142.                         var r20 = $("#snH_ProfileMenu_" + index)
  143.                             .attr("sn:id");
  144.                         var nodes = "#snH_Layout_" + r20;
  145.                         sn_getGameInfo(r20, nodes, fromIndex);
  146.                     });
  147.             }
  148.             $($this)
  149.                 .attr("snH_viewed", "1");
  150.         }
  151.     }
  152.     if (fromIndex == 3 || (fromIndex == 4 || (fromIndex == 5 || (fromIndex == 6 || fromIndex == 8)))) {
  153.         $("div[id^='post']:not(.post)")
  154.             .each(function() {
  155.                 if ($(this)
  156.                     .attr("snH_viewed") != "1") {
  157.                     var devtoolspage = getUserID(7, $(this)
  158.                         .attr("onclick"));
  159.                     currentUid = devtoolspage;
  160.                     if (devtoolspage != 0) {
  161.                         var pageId = $(this)
  162.                             .find(".info_footer")
  163.                             .attr("id");
  164.                         $(this)
  165.                             .find(".info_footer")
  166.                             .append('<span class="divide">|</span><a id="snH_CommentMenu_' + devtoolspage + pageId + '" class="reply_to" sn:id="' + devtoolspage + '">Безумие</a>');
  167.                         $(this)
  168.                             .after('<div id="snH_Layout_' + devtoolspage + pageId + '" style="padding: 5px;" hidden></div>');
  169.                         $("#snH_CommentMenu_" + devtoolspage + pageId)
  170.                             .click(function() {
  171.                                 var r20 = $("#snH_CommentMenu_" + devtoolspage + pageId)
  172.                                     .attr("sn:id");
  173.                                 var nodes = "#snH_Layout_" + r20 + pageId;
  174.                                 sn_getGameInfo(r20, nodes, 7, pageId);
  175.                             });
  176.                     }
  177.                     $(this)
  178.                         .attr("snH_viewed", "1");
  179.                 }
  180.             });
  181.     }
  182. };
  183. document.addEventListener("click", function(opt_e) {
  184.     if (opt_e.target["getAttribute"]("id") == "snH_FightInfo") {
  185.         snH_preFightInfo();
  186.     }
  187.     if (opt_e.target["getAttribute"]("id") == "snH_FriendScan") {
  188.         snH_getSigVk();
  189.     }
  190.     if (opt_e.target["getAttribute"]("id") == "snH_FollowersScan") {
  191.         snH_getFollowSigVk();
  192.     }
  193.     if (opt_e.target["getAttribute"]("class")) {
  194.         if (opt_e.target["getAttribute"]("class")
  195.             .indexOf("page") != -1) {
  196.             sn_getUserInfo(opt_e.target["getAttribute"]("class"));
  197.         }
  198.     }
  199. }, false);
  200. window.setInterval(function() {
  201.     sn_checkUserInfo();
  202. }, 500);
  203.  
  204. function getOwnerID() {
  205.     if (user == null) {
  206.         user = $("head");
  207.         if (user) {
  208.             user = user.text();
  209.             if (user.match(/id:\s(\d+)/)) {
  210.                 user = user.match(/id:\s(\d+)/)[1];
  211.                 user = parseInt(user);
  212.                 return user;
  213.             } else {
  214.                 return null;
  215.             }
  216.         }
  217.     } else {
  218.         return user;
  219.     }
  220. }
  221.  
  222. function snH_getSigVk() {
  223.     $("#snH_UserTable")
  224.         .removeAttr("class");
  225.     sn_setContent('<img style="padding: 12px" class="vk_loader" src="/images/progress7.gif" />', "#snH_UserTable");
  226.     var appFrontendUrl = "/app2474472";
  227.     $.ajax({
  228.         type: "GET",
  229.         url: appFrontendUrl,
  230.         success: function(status) {
  231.             if ($(status)
  232.                 .text()
  233.                 .match(/\"secret\":\"(.+?)\"/)) {
  234.                 secret = $(status)
  235.                     .text()
  236.                     .match(/\"secret\":\"(.+?)\"/)[1];
  237.                 sid = $(status)
  238.                     .text()
  239.                     .match(/\"sid\":\"(.+?)\"/)[1];
  240.                 var appFrontendUrl = "http://vk.com/api.php";
  241.                 var pass = Math.random();
  242.                 var _0x27d7x24 = $.md5(user + "api_id=2474472format=xmlmethod=friends.getrnd=" + pass + "uid=" + currentUid + "v=3" + secret);
  243.                 var task = "api_id=2474472&format=xml&method=friends.get&rnd=" + pass + "&sid=" + sid + "&sig=" + _0x27d7x24 + "&uid=" + currentUid + "&v=3";
  244.                 $.ajax({
  245.                     type: "POST",
  246.                     url: appFrontendUrl,
  247.                     data: task,
  248.                     success: function(sourceContainer) {
  249.                         getFriendsInfo(sourceContainer);
  250.                     },
  251.                     error: function(jqXHR) {
  252.                         sn_setContent('<div><font color="#AB1717">Ошибка при подключении к API VK.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_FightLayout");
  253.                         sn_hideLoader("#snH_UserTable");
  254.                     },
  255.                     dataType: "XML"
  256.                 });
  257.             } else {
  258.                 sn_setContent('<div><font color="#AB1717">Ошибка при определении Secret.</font><br><b>Игра установлена?</b></div>', "#snH_UserTable");
  259.                 sn_hideLoader("#snH_UserTable");
  260.             }
  261.         },
  262.         error: function(jqXHR) {
  263.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_UserTable");
  264.             sn_hideLoader("#snH_UserTable");
  265.         },
  266.         dataType: "HTML"
  267.     });
  268. }
  269.  
  270. function snH_getFollowSigVk() {
  271.     $("#snH_FollowersTable")
  272.         .removeAttr("class");
  273.     sn_setContent('<center><img style="padding: 12px" class="vk_loader" src="/images/progress7.gif" /></center>', "#snH_FollowersTable");
  274.     var appFrontendUrl = "/app2474472";
  275.     $.ajax({
  276.         type: "GET",
  277.         url: appFrontendUrl,
  278.         success: function(status) {
  279.             if ($(status)
  280.                 .text()
  281.                 .match(/\"secret\":\"(.+?)\"/)) {
  282.                 secret = $(status)
  283.                     .text()
  284.                     .match(/\"secret\":\"(.+?)\"/)[1];
  285.                 sid = $(status)
  286.                     .text()
  287.                     .match(/\"sid\":\"(.+?)\"/)[1];
  288.                 var appFrontendUrl = "http://vk.com/api.php";
  289.                 var pass = Math.random();
  290.                 var _0x27d7x24 = $.md5(user + "api_id=2474472count=1000format=xmlmethod=subscriptions.getFollowersrnd=" + pass + "uid=" + currentUid + "v=3" + secret);
  291.                 var task = "api_id=2474472&count=1000&format=xml&method=subscriptions.getFollowers&rnd=" + pass + "&sid=" + sid + "&sig=" + _0x27d7x24 + "&uid=" + currentUid + "&v=3";
  292.                 $.ajax({
  293.                     type: "POST",
  294.                     url: appFrontendUrl,
  295.                     data: task,
  296.                     success: function(sourceContainer) {
  297.                         getFollowersInfo(sourceContainer);
  298.                     },
  299.                     error: function(jqXHR) {
  300.                         sn_setContent('<div><font color="#AB1717">Ошибка при подключении к API VK.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_FightLayout");
  301.                         sn_hideLoader("#snH_FollowersTable");
  302.                     },
  303.                     dataType: "XML"
  304.                 });
  305.             } else {
  306.                 sn_setContent('<div><font color="#AB1717">Ошибка при определении Secret.</font><br><b>Игра установлена?</b></div>', "#snH_FollowersTable");
  307.                 sn_hideLoader("#snH_FollowersTable");
  308.             }
  309.         },
  310.         error: function(jqXHR) {
  311.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_FollowersTable");
  312.             sn_hideLoader("#snH_FollowersTable");
  313.         },
  314.         dataType: "HTML"
  315.     });
  316. }
  317.  
  318. function getFriendsInfo(sourceContainer) {
  319.     var matched = "";
  320.     $(sourceContainer)
  321.         .find("uid")
  322.         .each(function() {
  323.             matched = matched + $(this)
  324.                 .text() + ",";
  325.         });
  326.     matched = matched.substring(0, matched.length - 1);
  327.     var appFrontendUrl = "http://snql.by/hfscript/users.php";
  328.     var task = "viewer=" + currentUid + "&version=" + version + "&data=" + matched + "&browser=" + browser + "&sender=" + user + "&key=" + $.md5("viewer=" + currentUid + "&sender=" + user);
  329.     $.ajax({
  330.         type: "POST",
  331.         url: appFrontendUrl,
  332.         data: task,
  333.         success: function(deepDataAndEvents) {
  334.             sn_createUserTable(deepDataAndEvents);
  335.             sn_hideLoader("#snH_UserTable");
  336.         },
  337.         error: function(jqXHR) {
  338.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных c API VK.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", user);
  339.             sn_hideLoader(user);
  340.         },
  341.         dataType: "HTML"
  342.     });
  343. }
  344.  
  345. function getFollowersInfo(sourceContainer) {
  346.     var matched = "";
  347.     $(sourceContainer)
  348.         .find("uid")
  349.         .each(function() {
  350.             matched = matched + $(this)
  351.                 .text() + ",";
  352.         });
  353.     matched = matched.substring(0, matched.length - 1);
  354.     var appFrontendUrl = "http://snql.by/hfscript/users.php";
  355.     var task = "viewer=" + currentUid + "&version=" + version + "&data=" + matched + "&browser=" + browser + "&sender=" + user + "&key=" + $.md5("viewer=" + currentUid + "&sender=" + user);
  356.     $.ajax({
  357.         type: "POST",
  358.         url: appFrontendUrl,
  359.         data: task,
  360.         success: function(deepDataAndEvents) {
  361.             sn_createFollowersTable(deepDataAndEvents);
  362.             sn_hideLoader("#snH_FollowersTable");
  363.         },
  364.         error: function(jqXHR) {
  365.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных c API VK.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", user);
  366.             sn_hideLoader(user);
  367.         },
  368.         dataType: "HTML"
  369.     });
  370. }
  371.  
  372. function sn_createFollowersTable(deepDataAndEvents) {
  373.     sn_hideLoader("#snH_FollowersTable");
  374.     $("#page_wall_posts")
  375.         .html(deepDataAndEvents);
  376. }
  377.  
  378. function sn_createUserTable(deepDataAndEvents) {
  379.     $("#snH_UserTable")
  380.         .html(deepDataAndEvents);
  381. }
  382.  
  383. function sn_getLayoutType() {
  384.     if ($("div[id^='user_block']")
  385.         .size() > 0) {
  386.         return 0;
  387.     }
  388.     if ($("div:not(div[id^='user_block'])")
  389.         .filter(".user_block")
  390.         .size() > 0) {
  391.         return 1;
  392.     }
  393.     if ($("#results > .people_row")
  394.         .size() > 0) {
  395.         return 2;
  396.     }
  397.     if ($("#profile_edit_act")
  398.         .size() > 0) {
  399.         return 3;
  400.     }
  401.     if ($("#profile")
  402.         .filter("*:not(#profile_edit_act)")
  403.         .size() > 0) {
  404.         return 4;
  405.     }
  406.     if ($("#group")
  407.         .size() > 0) {
  408.         return 5;
  409.     }
  410.     if ($("#public")
  411.         .size() > 0) {
  412.         return 6;
  413.     }
  414.     if ($("#feed_wall")
  415.         .size() > 0) {
  416.         return 8;
  417.     }
  418.     return -1;
  419. }
  420.  
  421. function getUserID(opt_attributes, m3) {
  422.     var c = m3;
  423.     switch (opt_attributes) {
  424.         case 0:
  425.             if (c == undefined) {
  426.                 return 0;
  427.             }
  428.             if (c.match(/user_block(.+\d)/i)) {
  429.                 c = c.match(/user_block(.+\d)/i)[1];
  430.                 return parseInt(c);
  431.             } else {
  432.                 return 0;
  433.             };
  434.         case 1:
  435.             if (c == undefined) {
  436.                 return 0;
  437.             }
  438.             if (c.match(/request_controls_(.+\d)/g)) {
  439.                 c = c.match(/request_controls_(.+\d)/i)[1];
  440.                 return parseInt(c);
  441.             } else {
  442.                 return 0;
  443.             };
  444.         case 2:
  445.             if (c == undefined) {
  446.                 return 0;
  447.             }
  448.             if (c.match(/([0-9]+)/g)) {
  449.                 c = c.match(/([0-9]+)/g)[0];
  450.                 return parseInt(c);
  451.             } else {
  452.                 return 0;
  453.             };
  454.         case 3:
  455.             return getOwnerID();
  456.         case 4:
  457.             var cDigit = $("#profile_bottom_actions")
  458.                 .html();
  459.             if (cDigit.match(/act: \'a_page_abuse_box\'\, oid\: (.+\d)\}\, \{params/i)) {
  460.                 cDigit = cDigit.match(/act: \'a_page_abuse_box\'\, oid\: (.+\d)\}\, \{params/i)[1];
  461.                 return parseInt(cDigit);
  462.             } else {
  463.                 return 0;
  464.             };
  465.         case 7:
  466.             if (c == undefined) {
  467.                 return 0;
  468.             }
  469.             if (c.match(/event, (\d+)/g)) {
  470.                 c = c.match(/event, (\d+)/i)[1];
  471.                 return parseInt(c);
  472.             } else {
  473.                 return 0;
  474.             };
  475.         default:
  476.             return 0;
  477.     }
  478.     return 0;
  479. }
  480.  
  481. function sReplace(fun) {
  482.     return fun.replace(new RegExp("<", "g"), "&lt;")
  483.         .replace(new RegExp(">", "g"), "&gt;");
  484. }
  485.  
  486. function sn_log(dataAndEvents) {
  487.     document.getElementById(cOi)
  488.         .innerHTML += "<div>" + dataAndEvents + "</div>";
  489.     document.getElementById(cOi)
  490.         .style["display"] = "block";
  491. }
  492.  
  493. function sn_hideLoader(data) {
  494.     $(data)
  495.         .find("center")
  496.         .remove();
  497. }
  498.  
  499. function sn_getAuthInfo() {
  500.     sn_setContent('<img style="padding: 12px" class="vk_loader" src="/images/progress7.gif" />', "#snH_FightLayout");
  501.     var appFrontendUrl = "/app2474472";
  502.     $.ajax({
  503.         type: "GET",
  504.         url: appFrontendUrl,
  505.         success: function(status) {
  506.             if ($(status)
  507.                 .text()
  508.                 .match(/\"auth_key\":\"(.+?)\"/)) {
  509.                 auth_key = $(status)
  510.                     .text()
  511.                     .match(/\"auth_key\":\"(.+?)\"/)[1];
  512.                 var task = 'method=init&flashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","auth_key":"' + auth_key + '","pf_language":"ru","hash":""}&format=xml';
  513.                 $.ajax({
  514.                     type: "POST",
  515.                     beforeSend: function(_xhr) {
  516.                         _xhr.setRequestHeader("Request-From", "flash");
  517.                     },
  518.                     url: pf_server,
  519.                     data: task,
  520.                     success: sn_responseInit,
  521.                     error: function(jqXHR) {
  522.                         sn_setContent('<div><font color="#AB1717">Ошибка при подключении к серверу Безумия.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_FightLayout");
  523.                         sn_hideLoader("#snH_FightLayout");
  524.                     },
  525.                     dataType: "XML"
  526.                 });
  527.             } else {
  528.                 sn_setContent('<div><font color="#AB1717">Ошибка при определении AUTH.</font><br><b>Игра установлена?</b></div>', "#snH_FightLayout");
  529.                 sn_hideLoader("#snH_FightLayout");
  530.             }
  531.         },
  532.         error: function(jqXHR) {
  533.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", cOi);
  534.             sn_hideLoader("#snH_FightLayout");
  535.         },
  536.         dataType: "HTML"
  537.     });
  538. }
  539.  
  540. function sn_responseInit(sourceContainer) {
  541.     if ($(sourceContainer)
  542.         .find("error")
  543.         .length) {
  544.         if ($(sourceContainer)
  545.             .find("message")
  546.             .length) {
  547.             var _0x27d7x37 = $(sourceContainer)
  548.                 .find("message")
  549.                 .text();
  550.             var _0x27d7x38 = $(sourceContainer)
  551.                 .find("code")
  552.                 .text();
  553.             sn_setContent('<font color="#AB1717">Ответ от сервера: </font><b>' + _0x27d7x37 + " (" + _0x27d7x38 + ")</b>", "#snH_FightLayout");
  554.         }
  555.         sn_hideLoader("#snH_FightLayout");
  556.         return;
  557.     } else {
  558.         var defaultCenturyStart = new Date;
  559.         var _0x27d7x3a = defaultCenturyStart.getTime();
  560.         var _0x27d7x24 = $.md5("app_friends=" + user + 'avatar=http://vk.com/images/camera_a.gifbirthdate=city=country=first_name=Horrorflashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","auth_key":"' + auth_key + '","pf_language":"ru","hash":""}format=xmlfriends_count=1last_name=Scriptmethod=authorizesex=maletime=' + _0x27d7x3a + "uid=0" + pf_secret);
  561.         var task = "app_friends=" + user + '&avatar=http://vk.com/images/camera_a.gif&birthdate=&city=&country=&first_name=Horror&flashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","auth_key":"' + auth_key + '","pf_language":"ru","hash":""}&format=xml&friends_count=1&last_name=Script&method=authorize&sig=' + _0x27d7x24 + "&sex=male&time=" + _0x27d7x3a + "&uid=0";
  562.         $.ajax({
  563.             type: "POST",
  564.             beforeSend: function(_xhr) {
  565.                 _xhr.setRequestHeader("Request-From", "flash");
  566.             },
  567.             url: pf_server,
  568.             data: task,
  569.             success: sn_responseHandler,
  570.             error: function(jqXHR) {
  571.                 sn_setContent('<div><font color="#AB1717">Ошибка при подключении к серверу Безумия.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "#snH_FightLayout");
  572.                 sn_hideLoader("#snH_FightLayout");
  573.             },
  574.             dataType: "XML"
  575.         });
  576.     }
  577. }
  578.  
  579. function sn_responseHandler(sourceContainer) {
  580.     if ($(sourceContainer)
  581.         .find("error")
  582.         .length) {
  583.         if ($(sourceContainer)
  584.             .find("message")
  585.             .length) {
  586.             var _0x27d7x37 = $(sourceContainer)
  587.                 .find("message")
  588.                 .text();
  589.             var _0x27d7x38 = $(sourceContainer)
  590.                 .find("code")
  591.                 .text();
  592.             sn_setContent('<font color="#AB1717">Ответ от сервера: </font><b>' + _0x27d7x37 + " (" + _0x27d7x38 + ")</b>", "#snH_FightLayout");
  593.         }
  594.         sn_hideLoader("#snH_FightLayout");
  595.         return;
  596.     } else {
  597.         sn_getBaseInfo(sourceContainer);
  598.     }
  599. }
  600.  
  601. function sn_getBaseInfo(sourceContainer) {
  602.     timestamp = parseInt($(sourceContainer)
  603.         .find("time")
  604.         .last()
  605.         .text());
  606.     session_count = $(sourceContainer)
  607.         .find("session_count")
  608.         .text();
  609.     uid = $(sourceContainer)
  610.         .find("uid")
  611.         .last()
  612.         .text();
  613.     nick = $(sourceContainer)
  614.         .find("name")
  615.         .last()
  616.         .text();
  617.     var emptyJ = $("#BossInfo");
  618.     var requestUrl = "";
  619.     $(sourceContainer)
  620.         .find("kill > boss > item")
  621.         .each(function() {
  622.             requestUrl += $(this)
  623.                 .find("id")
  624.                 .text() + ":" + $(this)
  625.                 .find("count")
  626.                 .text() + ";";
  627.         });
  628.     requestUrl = requestUrl.substring(0, requestUrl.length - 1);
  629.     boss_kills = explode(";", requestUrl);
  630.     var cnl = boss_kills.length;
  631.     var _0x27d7x40 = '<tr><td id="tdc" rowspan="1"><center>Корпус</center></td><td id="tdc" rowspan="1"><center>Буйный</center></td><td id="tdc" rowspan="1"><center>Проведено боев</center></td></tr>';
  632.     $(boss_data)
  633.         .find("floor")
  634.         .each(function() {
  635.             var _0x27d7x41 = $(this)
  636.                 .find("fn")
  637.                 .text();
  638.             $(this)
  639.                 .find("fd")
  640.                 .each(function() {
  641.                     var _0x27d7x42 = 0;
  642.                     var cnl = $(this)
  643.                         .find("item")
  644.                         .length;
  645.                     $(this)
  646.                         .find("item")
  647.                         .each(function() {
  648.                             var camelKey = $(this)
  649.                                 .find("id")
  650.                                 .text();
  651.                             var data = sn_bossIDCheck(boss_kills, camelKey);
  652.                             var _0x27d7x46 = $(this)
  653.                                 .find("name")
  654.                                 .text();
  655.                             if (_0x27d7x42++ == 0) {
  656.                                 _0x27d7x40 += '<td rowspan="' + cnl + '"><center><h1>' + _0x27d7x41 + "</h1></center></td>";
  657.                             } else {
  658.                                 _0x27d7x40 += "<tr>";
  659.                             }
  660.                             _0x27d7x40 += '<td id="tdc">' + _0x27d7x46 + '</td><td id="tdc"><center>' + data + "</center></td></tr>";
  661.                         });
  662.                 });
  663.         });
  664.     $("#BossInfo")
  665.         .html('<table class="hfs_table" cellspacing=0 cellpadding=0 style="font-size: 10px">' + _0x27d7x40 + "</table>");
  666.     if (cnl) {
  667.         $("#BossLink")
  668.             .removeAttr("hidden");
  669.     }
  670.     var _0x27d7x47 = $(sourceContainer)
  671.         .find("pve_id")
  672.         .last()
  673.         .text() != "0" ? true : false;
  674.     if (_0x27d7x47) {
  675.         boss_uniq_id = $(sourceContainer)
  676.             .find("pve_id")
  677.             .last()
  678.             .text();
  679.         snH_getBossInfo();
  680.     } else {
  681.         sn_setContent('<div style="color: gray; margin-left: 12px;">Вы не в бою с боссом.</div>', "#snH_FightLayout");
  682.     }
  683. }
  684.  
  685. function sn_bossIDCheck(classNames, value) {
  686.     var cnl = classNames.length;
  687.     var x = 0;
  688.     for (; x < cnl; x++) {
  689.         var stack = explode(":", classNames[x]);
  690.         if (value == stack[0]) {
  691.             return stack[1];
  692.         }
  693.     }
  694.     return 0;
  695. }
  696.  
  697. function explode(delimiter, val, limit) {
  698.     if (arguments.length < 2 || (typeof delimiter == "undefined" || typeof val == "undefined")) {
  699.         return null;
  700.     }
  701.     if (delimiter === "" || (delimiter === false || delimiter === null)) {
  702.         return false;
  703.     }
  704.     if (typeof delimiter == "function" || (typeof delimiter == "object" || (typeof val == "function" || typeof val == "object"))) {
  705.         return {
  706.             0: ""
  707.         };
  708.     }
  709.     if (delimiter === true) {
  710.         delimiter = "1";
  711.     }
  712.     delimiter += "";
  713.     val += "";
  714.     var s = val.split(delimiter);
  715.     if (typeof limit === "undefined") {
  716.         return s;
  717.     }
  718.     if (limit === 0) {
  719.         limit = 1;
  720.     }
  721.     if (limit > 0) {
  722.         if (limit >= s.length) {
  723.             return s;
  724.         }
  725.         return s.slice(0, limit - 1)
  726.             .concat([s.slice(limit - 1)
  727.                 .join(delimiter)
  728.             ]);
  729.     }
  730.     if (-limit >= s.length) {
  731.         return [];
  732.     }
  733.     s.splice(s.length + limit);
  734.     return s;
  735. }
  736.  
  737. function sn_getGameInfo(regex, elements, expectedNumberOfNonCommentArgs, deepDataAndEvents) {
  738.     $(elements)
  739.         .removeAttr("hidden");
  740.     sn_setContent('<center><img class="vk_loader" src="/images/progress7.gif"/><center>', elements);
  741.     var appFrontendUrl = "http://snql.by/hfscript/stats.php";
  742.     var task = "viewer=" + regex + "&version=" + version + "&browser=" + browser + "&sender=" + user + "&key=" + $.md5("viewer=" + regex + "&sender=" + user);
  743.     $.ajax({
  744.         type: "GET",
  745.         url: appFrontendUrl,
  746.         data: task,
  747.         success: function(sourceContainer) {
  748.             sn_setUserInfo(sourceContainer, expectedNumberOfNonCommentArgs, deepDataAndEvents);
  749.         },
  750.         error: function(jqXHR) {
  751.             sn_setContent('<div><font color="#AB1717">Ошибка при загрузке данных.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", elements);
  752.             sn_hideLoader(expectedNumberOfNonCommentArgs != 7 ? elements : elements + deepDataAndEvents);
  753.         },
  754.         dataType: "XML"
  755.     });
  756. }
  757.  
  758. function snH_preFightInfo() {
  759.     var $element = $("#snH_FightLayout");
  760.     if ($("#snH_FightInfo")
  761.         .html() == "Просканировать бой") {
  762.         getBossData();
  763.     }
  764.     if ($element.attr("class") == "mhidden") {
  765.         $element.removeAttr("class");
  766.         $("#snH_FightInfo")
  767.             .html("Скрыть информацию");
  768.     } else {
  769.         $element.attr("class", "mhidden");
  770.         $("#snH_FightInfo")
  771.             .html("Показать информацию");
  772.     }
  773. }
  774.  
  775. function snH_getBossInfo() {
  776.     var type = $.md5('action=statusall_users=yesflashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","pf_language":"ru","auth_key":"' + auth_key + '","hash":""}format=xmlmethod=pvesid=' + session_count + "stamp=" + timestamp + "time=" + timestamp + "uid=" + uid + pf_secret);
  777.     var msg = 'action=status&all_users=yes&flashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","pf_language":"ru","auth_key":"' + auth_key + '","hash":""}&format=xml&method=pve&sid=' + session_count + "&stamp=" + timestamp + "&time=" + timestamp + "&uid=" + uid + "&sig=" + type;
  778.     $.ajax({
  779.         type: "POST",
  780.         beforeSend: function(_xhr) {
  781.             _xhr.setRequestHeader("Request-From", "flash");
  782.         },
  783.         url: pf_server,
  784.         data: msg,
  785.         success: snH_responseBossInfo,
  786.         error: function(jqXHR) {
  787.             sn_setContent('<div><font color="#AB1717">Ошибка при получении информации о бое.</font><br><b>HTTP_STATUS=' + jqXHR.status + " [" + jqXHR.statusText + "]</b></div>", "snH_FightLayout");
  788.             sn_hideLoader("#snH_FightLayout");
  789.         },
  790.         dataType: "XML"
  791.     });
  792. }
  793.  
  794. function snH_responseBossInfo(sourceContainer) {
  795.     if ($(sourceContainer)
  796.         .find("error")
  797.         .length) {
  798.         if ($(sourceContainer)
  799.             .find("message")
  800.             .length) {
  801.             var _0x27d7x37 = $(sourceContainer)
  802.                 .find("message")
  803.                 .text();
  804.             var _0x27d7x38 = $(sourceContainer)
  805.                 .find("code")
  806.                 .text();
  807.             sn_setContent('<font color="#AB1717">Ответ от сервера: </font><b>' + _0x27d7x37 + " (" + _0x27d7x38 + ")</b>", "#snH_FightLayout");
  808.             sn_hideLoader("#snH_FightLayout");
  809.             return;
  810.         }
  811.     } else {
  812.         snH_setBossInfo(sourceContainer);
  813.     }
  814. }
  815.  
  816. function snH_setBossInfo(sourceContainer) {
  817.     var b;
  818.     var pdataCur;
  819.     var cDigit;
  820.     var _0x27d7x58;
  821.     var a;
  822.     var dropdownHTML = $(sourceContainer)
  823.         .find("boss")
  824.         .first();
  825.     b = $(sourceContainer)
  826.         .find("time")
  827.         .last()
  828.         .text();
  829.     pdataCur = $(dropdownHTML)
  830.         .find("id")
  831.         .text();
  832.     cDigit = $(dropdownHTML)
  833.         .find("health")
  834.         .text();
  835.     _0x27d7x58 = $(dropdownHTML)
  836.         .find("start")
  837.         .text();
  838.     a = $(dropdownHTML)
  839.         .find("finish")
  840.         .text();
  841.     var charCodeToReplace = getBossName(pdataCur);
  842.     var udataCur = parseInt(a) - parseInt(b);
  843.     boss_info = sn_printRow('<div style="color: gray; margin-left: 12px;">Босс:</div>', '<div style="color: gray; margin-left: 12px;">' + charCodeToReplace + "</div>");
  844.     boss_info += sn_printRow('<div style="color: gray; margin-left: 12px;">Здоровье:</div>', '<div style="color: gray; margin-left: 12px;">' + parseInt(cDigit) + "/" + getBossHealth(pdataCur) + "</div>");
  845.     boss_info += sn_printRow('<div style="color: gray; margin-left: 12px;">Проведено боев:</div>', '<div style="color: gray; margin-left: 12px;">' + sn_bossIDCheck(boss_kills, pdataCur) + "</div>");
  846.     boss_info += sn_printRow('<div style="color: gray; margin-left: 12px;">Конец боя:</div>', '<div style="color: gray; margin-left: 12px;">' + getTextFromTime(udataCur, true, false) + " сек.</div>");
  847.     var errStr = boss_info + '<table cellpadding="0" cellspacing="0" class="hfs_table" style="font-size: 10px; white-space:nowrap;">';
  848.     var pdataOld = null;
  849.     $(sourceContainer)
  850.         .find("boss")
  851.         .each(function() {
  852.             pdataOld = $(this)
  853.                 .find("id")
  854.                 .text();
  855.         });
  856.     var sectionLength = getBossHealth(pdataOld);
  857.     timestamp = $(sourceContainer)
  858.         .find("time")
  859.         .last()
  860.         .text();
  861.     var row = new Array;
  862.     var node = new Array(50);
  863.     var properties = new Array(50);
  864.     var css = new Array(50);
  865.     var other = new Array(50);
  866.     var vals = new Array(50);
  867.     var dataBuffer = new Array(50);
  868.     var CRC8_TAB = new Array(50);
  869.     var cols;
  870.     $(sourceContainer)
  871.         .find("users")
  872.         .each(function() {
  873.             cols = $(this)
  874.                 .children("item")
  875.                 .size();
  876.             row = new Array(cols);
  877.             var i = 0;
  878.             $(this)
  879.                 .find("item")
  880.                 .each(function() {
  881.                     node[i] = $(this)
  882.                         .find("id")
  883.                         .text();
  884.                     properties[i] = $(this)
  885.                         .find("name")
  886.                         .text();
  887.                     css[i] = "";
  888.                     row[i] = parseInt($(this)
  889.                         .find("damage")
  890.                         .text());
  891.                     vals[i] = parseInt($(this)
  892.                         .find("health")
  893.                         .text());
  894.                     i++;
  895.                 });
  896.         });
  897.     var query = $(sourceContainer)
  898.         .find("messages");
  899.     var props = damageSort(row);
  900.     var i = 0;
  901.     for (; i < cols; i++) {
  902.         users_uids[i] = node[props[i]];
  903.         users_name[i] = properties[props[i]];
  904.         var team = "blue";
  905.         if (parseInt(row[i]) < Math.floor(sectionLength / 50)) {
  906.             team = "red";
  907.         }
  908.         var optsData = "";
  909.         if (props[i] == 0) {
  910.             optsData = ' style="color: #F06600;"';
  911.         }
  912.         cDigit = vals[props[i]];
  913.         var rawParams = node[props[i]];
  914.         if (query.length) {
  915.             var k = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Последний удар:</div><div class="fl_l user_last' + rawParams + '">?</div></div>';
  916.             var _ = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Последний вопль:</div><div class="fl_l user_lastVip' + rawParams + '">?</div></div>';
  917.             var v = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Всего ударов:</div><div class="fl_l buff_count' + rawParams + '">0</div></div>';
  918.             var p = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Всего воплей:</div><div class="fl_l buff_countVip' + rawParams + '">0</div></div>';
  919.             var w = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Последнее восполнение:</div><div class="fl_l user_heal' + rawParams + '">?</div></div>';
  920.             var r = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Последнее восстановление:</div><div class="fl_l user_healVip' + rawParams + '">?</div></div>';
  921.             var g = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Использовано восполнений:</div><div class="fl_l heal_count' + rawParams + '">0</div></div>';
  922.             var lastMember = '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Использовано восстановлений:</div><div class="fl_l heal_countVip' + rawParams + '">0</div></div>';
  923.         }
  924.         errStr += '<tr><td style="font-size: 8px; width: 50px;" id="tdc" class="page' + rawParams + '"><a href="' + css[props[i]] + '">' + css[props[i]] + '</a></td><td id="tdc" style="width: 95px;"><a class="tooltip"><div' + optsData + ' id="n' + rawParams + '">' + sReplace(properties[props[i]]) + '</div><span class="classic" style="min-width: 250px"><div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 45%">Здоровье:</div><div class="fl_l">' +
  925.             vals[props[i]] + "</div></div>" + (query.length ? k + _ + v + p + w + r + g + lastMember : "") + '<b class="user' + rawParams + '"></b>' + '</span></a></td><td id="tdc" style="font-size: 8px; width: 40px;"><font color="' + team + '">' + row[i] + "</font></td></tr>";
  926.     }
  927.     errStr += "</table>";
  928.     sn_setContent(errStr, "#snH_FightLayout");
  929.     $(query)
  930.         .find("item")
  931.         .each(function() {
  932.             var item = $(this)
  933.                 .find("type")
  934.                 .text();
  935.             var color = $(this)
  936.                 .find("user_id")
  937.                 .text();
  938.             if (item == "system") {
  939.                 var cDigit = $(this)
  940.                     .find("stamp")
  941.                     .text();
  942.                 var self = $(this)
  943.                     .find("message")
  944.                     .text();
  945.                 var m = getNickNameByUid(color);
  946.                 if (self.contains("Удар")) {
  947.                     var udataCur = timestamp - parseInt(cDigit);
  948.                     $(".user_last" + color)
  949.                         .text(getTextFromTime(udataCur, true, false) + " сек. назад");
  950.                     var major = parseInt($(".buff_count" + color)
  951.                         .text());
  952.                     major++;
  953.                     $(".buff_count" + color)
  954.                         .text(major);
  955.                 }
  956.                 if (self.contains("Вопль")) {
  957.                     udataCur = timestamp - parseInt(cDigit);
  958.                     $(".user_lastVip" + color)
  959.                         .text(getTextFromTime(udataCur, true, false) + " сек. назад");
  960.                     major = parseInt($(".buff_count" + color)
  961.                         .text());
  962.                     major++;
  963.                     $(".buff_countVip" + color)
  964.                         .text(major);
  965.                 }
  966.                 if (self.contains("Восполнение")) {
  967.                     udataCur = timestamp - parseInt(cDigit);
  968.                     $(".user_heal" + color)
  969.                         .text(getTextFromTime(udataCur, true, false) + " сек. назад");
  970.                     major = parseInt($(".heal_count" + color)
  971.                         .text());
  972.                     major++;
  973.                     $(".heal_count" + color)
  974.                         .text(major);
  975.                 }
  976.                 if (self.contains("Восстановление")) {
  977.                     udataCur = timestamp - parseInt(cDigit);
  978.                     $(".user_healVip" + color)
  979.                         .text(getTextFromTime(udataCur, true, false) + " сек. назад");
  980.                     major = parseInt($(".heal_countVip" + color)
  981.                         .text());
  982.                     major++;
  983.                     $(".heal_countVip" + color)
  984.                         .text(major);
  985.                 }
  986.                 if (self.contains("приглашению")) {
  987.                     var _0x27d7x7b = self.match(/(.+) \u0432\u0441\u0442\u0443\u043f\u0438\u043b(?:\u0430|) \u043f\u043e \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044e (.+)/);
  988.                     nick_i = _0x27d7x7b[2];
  989.                     uid_i = getUidByNickName(nick_i);
  990.                     $(".user" + color)
  991.                         .html(sReplace(self));
  992.                     if (color == uid) {
  993.                         if ($("#n" + uid_i)
  994.                             .css("color") != "#F06600") {
  995.                             $("#n" + uid_i)
  996.                                 .css("color", "red");
  997.                         }
  998.                     }
  999.                     if (uid_i == uid) {
  1000.                         $("#n" + color)
  1001.                             .css("color", "green");
  1002.                     }
  1003.                 }
  1004.             }
  1005.         });
  1006. }
  1007.  
  1008. function sn_getUserInfo(item) {
  1009.     var defaultCenturyStart = new Date;
  1010.     var _0x27d7x3a = defaultCenturyStart.getTime();
  1011.     var file = item;
  1012.     file = file.match(/(\d+)/)[1];
  1013.     var _0x27d7x24 = $.md5('flashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","auth_key":"' + auth_key + '","pf_language":"ru","hash":""}format=xmlmethod=visitsid=' + session_count + "time=" + _0x27d7x3a + "uid=" + uid + "user_id=" + file + pf_secret);
  1014.     var path = 'flashvars={"viewer_id":"' + user + '","pf_version":"' + pf_version + '","user_id":"' + user + '","referrer":"user_apps","auth_key":"' + auth_key + '","pf_language":"ru","hash":""}&format=xml&method=visit&sid=' + session_count + "&sig=" + _0x27d7x24 + "&time=" + _0x27d7x3a + "&uid=" + uid + "&user_id=" + file;
  1015.     $.ajax({
  1016.         type: "POST",
  1017.         beforeSend: function(_xhr) {
  1018.             _xhr.setRequestHeader("Request-From", "flash");
  1019.         },
  1020.         url: pf_server,
  1021.         data: path,
  1022.         success: sn_setUidInfo,
  1023.         error: function(textStatus) {
  1024.             sn_setContent("", "#" + item);
  1025.         },
  1026.         dataType: "XML"
  1027.     });
  1028. }
  1029.  
  1030. function sn_setUidInfo(sourceContainer) {
  1031.     var _0x27d7x7d = $(sourceContainer)
  1032.         .find("platform_id")
  1033.         .text();
  1034.     var errorClass = $(sourceContainer)
  1035.         .find("uid")
  1036.         .text();
  1037.     $(".page" + errorClass)
  1038.         .html('<a href="http://vk.com/id' + _0x27d7x7d + '">id' + _0x27d7x7d + "</a>");
  1039. }
  1040.  
  1041. function getTextFromTime(value, dataAndEvents, mayParseLabeledStatementInstead) {
  1042.     if (mayParseLabeledStatementInstead) {
  1043.         value = Math.ceil(value);
  1044.     }
  1045.     var _0x27d7x85 = "00";
  1046.     var selector = "00";
  1047.     var _0x27d7x87 = "00";
  1048.     var dstUri = 0;
  1049.     var stringBuffer = 0;
  1050.     var mode = 0;
  1051.     dstUri = Math.floor(value / (60 * 60));
  1052.     value = value % (60 * 60);
  1053.     stringBuffer = Math.floor(value / 60);
  1054.     value = value % 60;
  1055.     mode = value;
  1056.     _0x27d7x85 = dstUri >= 10 ? dstUri.toString() : "0" + dstUri.toString();
  1057.     selector = stringBuffer >= 10 ? stringBuffer.toString() : "0" + stringBuffer.toString();
  1058.     _0x27d7x87 = mode >= 10 ? mode.toString() : "0" + mode.toString();
  1059.     return (dataAndEvents ? _0x27d7x85 + ":" : "") + selector + ":" + _0x27d7x87;
  1060. }
  1061.  
  1062. function sn_responseChat(sourceContainer) {
  1063.     if ($(sourceContainer)
  1064.         .find("error")
  1065.         .length) {
  1066.         if ($(sourceContainer)
  1067.             .find("message")
  1068.             .length) {
  1069.             var textform = $(sourceContainer)
  1070.                 .find("message");
  1071.             var keyCode = $(sourceContainer)
  1072.                 .find("code");
  1073.             sn_setContent('<div><font color="#AB1717">Ответ от сервера: </font><br></div><b>' + textform + " (" + keyCode + ")</b>", "#snH_FightLayout");
  1074.         }
  1075.         sn_hideLoader("#snH_FightLayout");
  1076.         return;
  1077.     } else {
  1078.         sn_setChatInfo(sourceContainer);
  1079.     }
  1080.     sn_hideLoader("#snH_FightLayout");
  1081. }
  1082.  
  1083. function getBossData() {
  1084.     if (!boss_data) {
  1085.         var appFrontendUrl = "http://snql.by/hfscript/info.php";
  1086.         var task = "get=bossinfo";
  1087.         $.ajax({
  1088.             type: "POST",
  1089.             url: appFrontendUrl,
  1090.             data: task,
  1091.             success: function(textStatus) {
  1092.                 boss_data = textStatus;
  1093.                 sn_getAuthInfo();
  1094.             },
  1095.             dataType: "XML"
  1096.         });
  1097.     } else {
  1098.         sn_getAuthInfo();
  1099.     }
  1100. }
  1101.  
  1102. function getUidByNickName(dataAndEvents) {
  1103.     if (!dataAndEvents) {
  1104.         return null;
  1105.     }
  1106.     var nTokens = users_uids.length;
  1107.     var ti = 0;
  1108.     for (; ti < nTokens; ti++) {
  1109.         if (users_name[ti] == dataAndEvents) {
  1110.             return users_uids[ti];
  1111.         }
  1112.     }
  1113.     return null;
  1114. }
  1115.  
  1116. function getNickNameByUid(fillColor) {
  1117.     if (!fillColor) {
  1118.         return null;
  1119.     }
  1120.     var nTokens = users_uids.length;
  1121.     var ti = 0;
  1122.     for (; ti < nTokens; ti++) {
  1123.         if (users_uids[ti] == fillColor) {
  1124.             return users_name[ti];
  1125.         }
  1126.     }
  1127.     return null;
  1128. }
  1129.  
  1130. function damageSort(doc) {
  1131.     var obj = doc;
  1132.     if (!obj instanceof Array) {
  1133.         return undefined;
  1134.     }
  1135.     var array = new Array(obj.length);
  1136.     var extend = function(a, b) {
  1137.         return a == b ? 0 : a > b ? -1 : 1;
  1138.     };
  1139.     var some = function(arr, i, j) {
  1140.         var tmp = arr[i];
  1141.         var temp = array[i];
  1142.         arr[i] = arr[j];
  1143.         array[i] = array[j];
  1144.         arr[j] = tmp;
  1145.         array[j] = temp;
  1146.     };
  1147.     var i = 0;
  1148.     for (; i < obj.length; i++) {
  1149.         array[i] = i;
  1150.     }
  1151.     var update = function(position, length) {
  1152.         var i = position;
  1153.         var len = length;
  1154.         var oldconfig = obj[Math.floor(Math.random() * (length - position + 1)) + position];
  1155.         for (; i <= len;) {
  1156.             for (; extend(obj[i], oldconfig) == -1;) {
  1157.                 i++;
  1158.             }
  1159.             for (; extend(obj[len], oldconfig) == 1;) {
  1160.                 len--;
  1161.             }
  1162.             if (i <= len) {
  1163.                 some(obj, i++, len--);
  1164.             }
  1165.         }
  1166.         if (position < len) {
  1167.             update(position, len);
  1168.         }
  1169.         if (i < length) {
  1170.             update(i, length);
  1171.         }
  1172.     };
  1173.     update(0, obj.length - 1);
  1174.     return array;
  1175. }
  1176.  
  1177. function sn_setUserInfo(sourceContainer, expectedNumberOfNonCommentArgs, deepDataAndEvents) {
  1178.     var errStr = "";
  1179.     var _0x27d7xa1 = parseInt($(sourceContainer)
  1180.         .find("viewer")
  1181.         .text()) == parseInt($(sourceContainer)
  1182.         .find("sender")
  1183.         .text());
  1184.     var cDigit = $(sourceContainer)
  1185.         .find("blockcode")
  1186.         .text();
  1187.     var key = $(sourceContainer)
  1188.         .find("viewer")
  1189.         .text();
  1190.     sn_hideLoader("#snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1191.     if (parseInt(cDigit) == 1 || (parseInt(cDigit) == 2 || parseInt(cDigit) == 3)) {
  1192.         if (parseInt(cDigit) == 1) {
  1193.             sn_setBlackListContent($(sourceContainer)
  1194.                 .find("msg")
  1195.                 .text(), "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1196.         }
  1197.         if (parseInt(cDigit) == 2) {
  1198.             var parts = explode("*", $(sourceContainer)
  1199.                 .find("msg")
  1200.                 .text());
  1201.             var last = parts[0];
  1202.             var part = parts[1];
  1203.             sn_setBlackListContent(last, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1204.             sn_setBlackListContent(part, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1205.         }
  1206.         if (parseInt(cDigit) == 3) {
  1207.             parts = explode("*", $(sourceContainer)
  1208.                 .find("msg")
  1209.                 .text());
  1210.             last = parts[0];
  1211.             part = parts[1];
  1212.             var parentName = parts[2];
  1213.             sn_setBlackListContent(last, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1214.             sn_setBlackListContent(part, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1215.             sn_setBlackListContent(parentName, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1216.         }
  1217.     }
  1218.     if (parseInt(cDigit) == 0 || (parseInt(cDigit) == 4 || parseInt(cDigit) == 5)) {
  1219.         errStr += $(sourceContainer)
  1220.             .find("data")
  1221.             .text();
  1222.         if (expectedNumberOfNonCommentArgs == 3 || expectedNumberOfNonCommentArgs == 4) {
  1223.             errStr += sn_printRow('<a id="snH_FriendScan" style="color: blue; float: left;">Просканировать друзей</a>', "");
  1224.             errStr += '<div id="snH_UserTable" class="mhidden" style="margin-left:-12px;"></div>';
  1225.             errStr += sn_printRow('<a id="snH_FollowersScan" style="color: blue; float: left;">Просканировать подписчиков</a>', "");
  1226.             errStr += '<div id="snH_FollowersTable" class="mhidden" style="margin-left:-12px;"></div>';
  1227.         }
  1228.         if (_0x27d7xa1) {
  1229.             errStr += sn_printRow('<a id="snH_FightInfo" style="color: blue; float: left;">Просканировать бой</a>', '<a class="tooltip" hidden id="BossLink"><l style="color: blue; float: right; position:relative; left:54px;">[?]</l><span class="classic" id="BossInfo" style="min-width: 300px"></span></a>');
  1230.             errStr += '<div id="snH_FightLayout" class="mhidden" style="margin-left:-12px;"></div>';
  1231.         }
  1232.         sn_setContent(errStr, "#snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1233.         if (parseInt(cDigit) == 4) {
  1234.             sn_setBlackListContent($(sourceContainer)
  1235.                 .find("msg")
  1236.                 .text(), "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1237.         }
  1238.         if (parseInt(cDigit) == 5) {
  1239.             parts = explode("*", $(sourceContainer)
  1240.                 .find("msg")
  1241.                 .text());
  1242.             var camelKey = parts[0];
  1243.             var first = parts[1];
  1244.             sn_setBlackListContent(camelKey, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1245.             sn_setBlackListContent(first, "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1246.         }
  1247.         sn_setBlackListContent($(sourceContainer)
  1248.             .find("piar")
  1249.             .text(), "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1250.         var codeSegments = $(sourceContainer)
  1251.             .find("update")
  1252.             .text();
  1253.         if (codeSegments.length) {
  1254.             sn_setBlackListContent($(sourceContainer)
  1255.                 .find("update")
  1256.                 .text(), "snH_Layout_" + key + (expectedNumberOfNonCommentArgs != 7 ? "" : deepDataAndEvents));
  1257.         }
  1258.     }
  1259. }
  1260.  
  1261. function sn_setBlackListContent(key, vid) {
  1262.     $("#" + vid)
  1263.         .append(key);
  1264. }
  1265.  
  1266. function sn_printRow(dataAndEvents, errorMessage) {
  1267.     errorMessage = errorMessage ? errorMessage : "&nbsp;";
  1268.     return '<div class="clear_fix"><div class="fl_l" style="color: #2B587A; min-width: 35%">' + dataAndEvents + '</div><div class="fl_l">' + errorMessage + "</div></div>";
  1269. }
  1270.  
  1271. function sn_setContent(str, v) {
  1272.     $(v)
  1273.         .html(str);
  1274.     $(v)
  1275.         .css("display", "");
  1276. }
  1277. addData();
  1278.  
  1279. function addData() {
  1280.     var fightcss = document.getElementById("fightcss");
  1281.     if (!fightcss) {
  1282.         var head = document.getElementsByTagName("head")[0];
  1283.         if (!head) {
  1284.             return;
  1285.         }
  1286.         var style = document.createElement("style");
  1287.         style.type = "text/css";
  1288.         style.id = "fightcss";
  1289.         style.innerHTML = "#tdc {padding: 1px;} .hfs_table {   border: 1px solid #000;   border-right: 0;   border-top: 0;   padding: 0px;   margin: 0 auto 10px auto;   border-collapse: collapse;   width: 90%; } .hfs_table td {   border-top: 1px solid #000;   border-right: 1px solid #000;   vertical-align: top;   padding: 5px;   margin: 0; } .mhidden {display:none} .tooltip {border-bottom: 1px dotted #000000; color: #000000; outline: none;cursor: help; text-decoration: none;position: relative;}.tooltip span {\tmargin-left: -999em; position: absolute;} .tooltip:hover span {\tborder-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);font-family: Calibri, Tahoma, Geneva, sans-serif;position: absolute; left: 1em; top: 2em; z-index: 99; margin-left: 0;} .tooltip:hover em {font-family: Candara, Tahoma, Geneva, sans-serif; font-size: 1.2em; font-weight: bold;\tdisplay: block; padding: 0.2em 0 0.6em 0;}\t.classic { padding: 0.8em 1em; } * html a:hover { background: transparent; } .classic {background: #FFFFAA; border: 1px solid #FFAD33; font-size: 13px;}";
  1290.         head.appendChild(style);
  1291.     }
  1292. }
  1293.  
  1294. function getRandomInt(min, max) {
  1295.     return Math.floor(Math.random() * (max - min + 1)) + min;
  1296. }
  1297.  
  1298. function getBossName(value) {
  1299.     var o = "";
  1300.     $(boss_data)
  1301.         .find("floor")
  1302.         .each(function() {
  1303.             var _0x27d7x41 = $(this)
  1304.                 .find("fn")
  1305.                 .text();
  1306.             $(this)
  1307.                 .find("fd")
  1308.                 .each(function() {
  1309.                     $(this)
  1310.                         .find("item")
  1311.                         .each(function() {
  1312.                             var cDigit = $(this)
  1313.                                 .find("id")
  1314.                                 .text();
  1315.                             if (parseInt(value) == parseInt(cDigit)) {
  1316.                                 o = $(this)
  1317.                                     .find("name")
  1318.                                     .text();
  1319.                             }
  1320.                         });
  1321.                 });
  1322.         });
  1323.     if (o == "") {
  1324.         return "Неизвестно (ID: " + value + ")";
  1325.     }
  1326.     return o;
  1327. }
  1328.  
  1329. function getBossHealth(value) {
  1330.     var o = "";
  1331.     $(boss_data)
  1332.         .find("floor")
  1333.         .each(function() {
  1334.             var _0x27d7x41 = $(this)
  1335.                 .find("fn")
  1336.                 .text();
  1337.             $(this)
  1338.                 .find("fd")
  1339.                 .each(function() {
  1340.                     $(this)
  1341.                         .find("item")
  1342.                         .each(function() {
  1343.                             var cDigit = $(this)
  1344.                                 .find("id")
  1345.                                 .text();
  1346.                             if (parseInt(value) == parseInt(cDigit)) {
  1347.                                 o = $(this)
  1348.                                     .find("health")
  1349.                                     .text();
  1350.                             }
  1351.                         });
  1352.                 });
  1353.         });
  1354.     if (o == "") {
  1355.         return -1;
  1356.     }
  1357.     return o;
  1358. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement