GLB Ticket Price Assistant - pabst edit

Helps you set prices of tickets.

  1. // ==UserScript==
  2. // @name GLB Ticket Price Assistant - pabst edit
  3. // @namespace http://mmofootball.tk/
  4. // @description Helps you set prices of tickets.
  5. // @include http://glb.warriorgeneral.com/game/stadium.pl?team_id=*
  6. // @include http://glb.warriorgeneral.com/game/team_finances.pl?team_id=*
  7. // @copyright 2013, AirMcMVP
  8. // @version 2014.05.04
  9. // ==/UserScript==
  10.  
  11. // pabst fixed stuff 4/25/2014
  12.  
  13. window.setTimeout(main, 10);
  14.  
  15. function main() {
  16. if (window.location.href.indexOf('stadium.pl') != -1) {
  17. //add a button to quick fill everything
  18. var location = document.getElementById('content_pricing').getElementsByTagName('tbody')[0];
  19. var tr = document.createElement('tr');
  20. tr.setAttribute('id', 'assistantRow');
  21. location.insertBefore(tr, location.firstChild);
  22. html = '<td class="seating_chart_label" style="width: 170px;">Auto-Price Setter </td>' +
  23. '<td class="seating_chart_value" style="width: 246px; text-align: left;">' +
  24. '<input id="ticketPercentage" value="100">% <span id="buttonHolder" />' +
  25. '</td>';
  26. tr.innerHTML = html;
  27. var button = document.createElement('input');
  28. button.setAttribute('id', 'setTickets');
  29. button.setAttribute('type', 'button');
  30. button.setAttribute('value', 'Run');
  31. button.addEventListener('click', setTicketPrices, false);
  32. document.getElementById('buttonHolder').appendChild(button);
  33.  
  34. //create a span to hold the percentages
  35. for (var i = 0; i < 10; i++) {
  36. location = document.getElementsByClassName('expected')[i];
  37. var span = document.createElement('span');
  38. span.setAttribute('class', 'percentHolder');
  39. span.setAttribute('style', 'color: green;');
  40. span.addEventListener('click', function() {
  41. lockSpan(this);
  42. }, false);
  43.  
  44. location.parentNode.insertBefore(span, location);
  45. location.setAttribute("style", "visibility: hidden; display:none;");
  46. }
  47.  
  48. document.getElementsByClassName('expected')[10].innerHTML = '*Percentage of price fans expect to pay shown in green.<br /><br />Click on a percentage to <span style="color: red;">lock</span> its price from being auto-updated.'
  49.  
  50. //add eventlisteners
  51. for (i = 0; i < 10; i++) {
  52. location = document.getElementById('content_pricing').getElementsByTagName('tbody')[1].getElementsByClassName('seating_chart_value')[i];
  53. location.firstChild.addEventListener('keyup', updatePercentages, false);
  54. }
  55. }
  56. else {
  57. //create our button and input to autoset the price
  58. location = document.getElementsByName('action')[0].parentNode;
  59.  
  60. //create a div to store our button and input
  61. var div = document.createElement('div');
  62. div.setAttribute('style', 'float: right;');
  63.  
  64. var input = document.createElement('input');
  65. input.setAttribute('id', 'ticketPercentage');
  66. input.setAttribute('value', '100');
  67.  
  68. div.appendChild(input);
  69.  
  70. button = document.createElement('input');
  71. button.setAttribute('id', 'setTickets');
  72. button.setAttribute('type', 'button');
  73. button.setAttribute('value', 'Adjust Prices');
  74. button.addEventListener('click', setTicketPrices, false);
  75.  
  76. div.appendChild(button)
  77.  
  78. location.parentNode.insertBefore(div, location.nextSibling);
  79.  
  80. //create a span to hold the percentages
  81. location = document.getElementsByClassName('seating');
  82.  
  83. for (i = 30; i < 40; i++) {
  84. var val = location[i].innerHTML;
  85.  
  86. span = document.createElement('span');
  87. span.setAttribute('class', 'percentHolder');
  88. span.setAttribute('style', 'color: green;');
  89. span.addEventListener('click', function() {
  90. lockSpan(this);
  91. }, false);
  92.  
  93. location[i].innerHTML = '';
  94. location[i].appendChild(span);
  95.  
  96. span = document.createElement('span');
  97. span.setAttribute("style", "visibility: hidden; display:none;");
  98. span.innerHTML = val;
  99.  
  100. location[i].appendChild(span)
  101. }
  102.  
  103. //add eventlisteners
  104. location = document.getElementsByClassName('seating')
  105. for (i = 10; i < 20; i++) {
  106. location[i].firstChild.addEventListener('keyup', updatePercentages, false);
  107. }
  108. }
  109. updatePercentages();
  110. }
  111.  
  112. function setTicketPrices() {
  113. //get user percentage
  114. var percent = (document.getElementById('ticketPercentage').value) / 100;
  115. //get suggested prices
  116. var suggested = new Array();
  117. for (var i = 0; i < 10; i++) {
  118. suggested[i] = parseFloat(document.getElementsByClassName('percentHolder')[i].nextSibling.innerHTML.replace('$', ''));
  119. }
  120.  
  121. //set prices
  122. var loc = new Array();
  123. if (window.location.href.indexOf('stadium.pl') != -1) {
  124. loc = document.getElementById('content_pricing').getElementsByTagName('tbody')[1].getElementsByClassName('seating_chart_value');
  125. }
  126. else {
  127. temp = document.getElementsByClassName('seating');
  128. for (i = 20; i < 30; i++) {
  129. loc.push(temp[i]);
  130. }
  131. }
  132.  
  133. for (i = 0; i < 10; i++) {
  134. if (document.getElementsByClassName('percentHolder')[i].id != 'locked') {
  135. loc[i].firstChild.value = (suggested[i] * percent).toFixed(2);
  136. loc[i].firstChild.textContent = (suggested[i] * percent).toFixed(2);
  137. }
  138. }
  139. updatePercentages();
  140. }
  141.  
  142. function updatePercentages() {
  143. //get suggested prices
  144. var suggested = new Array();
  145. for (var i = 0; i < 10; i++) {
  146. suggested[i] = parseFloat(document.getElementsByClassName('percentHolder')[i].nextSibling.innerHTML.replace('$', ''));
  147. }
  148. //get percentage
  149. var loc = new Array();
  150. if (window.location.href.indexOf('stadium.pl') != -1) {
  151. loc = document.getElementById('content_pricing').getElementsByTagName('tbody')[1].getElementsByClassName('seating_chart_value');
  152. }
  153. else {
  154. temp = document.getElementsByClassName('seating');
  155. for (i = 20; i < 30; i++) {
  156. loc.push(temp[i]);
  157. }
  158. }
  159. var percent = new Array();
  160. for (i = 0; i < 10; i++) {
  161. percent[i] = parseInt((loc[i].firstChild.textContent.replace('$', '') / suggested[i]) * 100);
  162. percent[i] = parseInt((loc[i].firstChild.value.replace('$', '') / suggested[i]) * 100);
  163. }
  164. //set percentages in spans
  165. for (i = 0; i < 10; i++) {
  166. document.getElementsByClassName('percentHolder')[i].innerHTML = percent[i] + '%';
  167. }
  168. }
  169.  
  170. function lockSpan(location) {
  171. if (location.id == 'locked') {
  172. location.setAttribute('id', '');
  173. location.setAttribute('style', 'color: green;');
  174. }
  175. else {
  176. location.setAttribute('id', 'locked');
  177. location.setAttribute('style', 'color: red;');
  178. }
  179. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址