hwm_exit_from_war

Ссылка "вернуться в игру" на флешке боя (by Demin)

  1. // ==UserScript==
  2. // @name hwm_exit_from_war
  3. // @author Demin
  4. // @namespace Demin
  5. // @description Ссылка "вернуться в игру" на флешке боя (by Demin)
  6. // @homepage https://greasyfork.org/users/1602-demin
  7. // @icon http://i.imgur.com/LZJFLgt.png
  8. // @version 1.3
  9. // @encoding utf-8
  10. // @include http://*heroeswm.ru/war*
  11. // @include http://178.248.235.15/war*
  12. // @include http://209.200.152.144/war*
  13. // @include http://*lordswm.com/war*
  14. // ==/UserScript==
  15.  
  16. // (c) 2013-2015, demin ( http://www.heroeswm.ru/pl_info.php?id=15091 )
  17.  
  18. (function() {
  19.  
  20. var version = '1.3';
  21.  
  22.  
  23. //if (top != self) {
  24.  
  25. var div = document.createElement('div');
  26. div.setAttribute('style', 'position: absolute; background-color: #ffffff; border: 1px solid #999;');
  27. div.innerHTML = '<b><a href="home.php" style="text-decoration: none;">&nbsp;Home&nbsp;</a></b>';
  28. document.body.appendChild(div);
  29.  
  30. if ( document.querySelector("embed[src*='combat']") ) { update_div(div); } else { update_div2(div); }
  31.  
  32. //}
  33.  
  34.  
  35. function update_div(div) {
  36. var flash_war = getOffset( document.querySelector("embed[src*='combat']") );
  37.  
  38. div.style.fontSize = Math.round( document.querySelector("object[id*='combat']").width / 60 ) + 'px';
  39.  
  40. div.style.left = flash_war.left + 'px';
  41. div.style.top = flash_war.top + 'px';
  42.  
  43. setTimeout(function() { update_div(div); }, 999);
  44. }
  45.  
  46. function update_div2(div) {
  47. var cl_w = ClientWidth();
  48. var cl_h = ClientHeight();
  49.  
  50. if ( cl_w < 600 ) { cl_w = 600; }
  51. if ( cl_h < 366 ) { cl_h = 366; }
  52.  
  53. if ( cl_w > ( cl_h * 600 / 366 ) ) {
  54. div.style.fontSize = Math.round( cl_h / 37 ) + 'px';
  55.  
  56. div.style.left = Math.round( ( cl_w - cl_h * 600 / 366 ) / 2 ) + 'px';
  57. div.style.top = '0px';
  58. } else {
  59. div.style.fontSize = Math.round( cl_w / 60 ) + 'px';
  60.  
  61. div.style.left = '0px';
  62. div.style.top = Math.round( ( cl_h - cl_w * 366 / 600 ) / 2 ) + 'px';
  63. }
  64.  
  65. setTimeout(function() { update_div2(div); }, 999);
  66. }
  67.  
  68. function getOffset(elem) {
  69. if (elem.getBoundingClientRect) {
  70. // pravilnyj
  71.  
  72. // (1)
  73. var box = elem.getBoundingClientRect()
  74.  
  75. // (2)
  76. var body = document.body
  77. var docElem = document.documentElement
  78.  
  79. // (3)
  80. var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
  81. var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
  82.  
  83. // (4)
  84. var clientTop = docElem.clientTop || body.clientTop || 0
  85. var clientLeft = docElem.clientLeft || body.clientLeft || 0
  86.  
  87. // (5)
  88. var top = box.top + scrollTop - clientTop
  89. var left = box.left + scrollLeft - clientLeft
  90.  
  91. return { top: Math.round(top), left: Math.round(left) }
  92.  
  93. } else {
  94. // hot kak to
  95.  
  96. var top=0, left=0
  97. while(elem) {
  98. top = top + parseInt(elem.offsetTop)
  99. left = left + parseInt(elem.offsetLeft)
  100. elem = elem.offsetParent
  101. }
  102.  
  103. return {top: top, left: left}
  104. }
  105. }
  106.  
  107. function ClientWidth() {
  108. return document.compatMode=='CSS1Compat' && document.documentElement?document.documentElement.clientWidth:document.body.clientWidth;
  109. }
  110.  
  111. function ClientHeight() {
  112. return document.compatMode=='CSS1Compat' && document.documentElement?document.documentElement.clientHeight:document.body.clientHeight;
  113. }
  114.  
  115. function $(id) { return document.querySelector("#"+id); }
  116.  
  117. function addEvent(elem, evType, fn) {
  118. if (elem.addEventListener) {
  119. elem.addEventListener(evType, fn, false);
  120. }
  121. else if (elem.attachEvent) {
  122. elem.attachEvent("on" + evType, fn);
  123. }
  124. else {
  125. elem["on" + evType] = fn;
  126. }
  127. }
  128.  
  129. })();