Advertisement
Guest User

Untitled

a guest
Oct 21st, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.76 KB | None | 0 0
  1. if (typeof (KeyEvent) != 'undefined') {
  2. if (typeof (KeyEvent.VK_LEFT) != 'undefined') {
  3. var VK_LEFT = KeyEvent.VK_LEFT;
  4. var VK_UP = KeyEvent.VK_UP;
  5. var VK_RIGHT = KeyEvent.VK_RIGHT;
  6. var VK_DOWN = KeyEvent.VK_DOWN;
  7. }
  8. if (typeof (KeyEvent.VK_ENTER) != 'undefined') {
  9. var VK_ENTER = KeyEvent.VK_ENTER;
  10. }
  11. if (typeof (KeyEvent.VK_RED) != 'undefined') {
  12. var VK_RED = KeyEvent.VK_RED;
  13. var VK_GREEN = KeyEvent.VK_GREEN;
  14. var VK_YELLOW = KeyEvent.VK_YELLOW;
  15. var VK_BLUE = KeyEvent.VK_BLUE;
  16. }
  17. if (typeof (KeyEvent.VK_PLAY) != 'undefined') {
  18. var VK_PLAY = KeyEvent.VK_PLAY;
  19. var VK_PAUSE = KeyEvent.VK_PAUSE;
  20. var VK_STOP = KeyEvent.VK_STOP;
  21. var VK_REWIND = KeyEvent.VK_REWIND;
  22. var VK_FAST_FWD = KeyEvent.VK_FAST_FWD;
  23. }
  24. if (typeof (KeyEvent.VK_BACK) != 'undefined') {
  25. var VK_BACK = KeyEvent.VK_BACK;
  26. }
  27. if (typeof (KeyEvent.VK_0) != 'undefined') {
  28. var VK_0 = KeyEvent.VK_0;
  29. var VK_1 = KeyEvent.VK_1;
  30. var VK_2 = KeyEvent.VK_2;
  31. var VK_3 = KeyEvent.VK_3;
  32. var VK_4 = KeyEvent.VK_4;
  33. var VK_5 = KeyEvent.VK_5;
  34. var VK_6 = KeyEvent.VK_6;
  35. var VK_7 = KeyEvent.VK_7;
  36. var VK_8 = KeyEvent.VK_8;
  37. var VK_9 = KeyEvent.VK_9;
  38. }
  39. if (typeof (KeyEvent.VK_INFO) != 'undefined') {
  40. var VK_INFO = KeyEvent.VK_INFO;
  41. var VK_INFO1 = KeyEvent.VK_INFO;
  42. }
  43. if (typeof (KeyEvent.VK_OPT) != 'undefined') {
  44. var VK_OPT = keyEvent.VK_OPT;
  45. }
  46. }
  47. if (typeof (VK_LEFT) == 'undefined') {
  48. var VK_LEFT = 0x25;
  49. var VK_UP = 0x26;
  50. var VK_RIGHT = 0x27;
  51. var VK_DOWN = 0x28;
  52. }
  53. if (typeof (VK_ENTER) == 'undefined') {
  54. var VK_ENTER = 0x0D;
  55. }
  56. if (typeof (VK_RED) == 'undefined') {
  57. var VK_RED = 0x193;
  58. var VK_GREEN = 0x194;
  59. var VK_YELLOW = 0x195;
  60. var VK_BLUE = 0x196;
  61. }
  62. if (typeof (VK_PLAY) == 'undefined') {
  63. var VK_PLAY = 0x19F;
  64. var VK_PAUSE = 0x13;
  65. var VK_STOP = 0x19D;
  66. var VK_REWIND = 0x19C;
  67. var VK_FAST_FWD = 0x1A1;
  68. }
  69. if (typeof (VK_BACK) == 'undefined') {
  70. var VK_BACK = 0x1CD;
  71. }
  72. if (typeof (VK_0) == 'undefined') {
  73. var VK_0 = 0x30;
  74. var VK_1 = 0x31;
  75. var VK_2 = 0x32;
  76. var VK_3 = 0x33;
  77. var VK_4 = 0x34;
  78. var VK_5 = 0x35;
  79. var VK_6 = 0x36;
  80. var VK_7 = 0x37;
  81. var VK_8 = 0x38;
  82. var VK_9 = 0x39;
  83. }
  84. if (typeof (VK_INFO) == 'undefined') {
  85. var VK_INFO = 457;
  86. var VK_INFO1 = 455;
  87. }
  88. if (typeof (VK_OPT) == 'undefined') {
  89. var VK_OPT = 0x3B;
  90. }
  91.  
  92. var keySet = {
  93. // number
  94. keyNum0: VK_0,
  95. keyNum1: VK_1,
  96. keyNum2: VK_2,
  97. keyNum3: VK_3,
  98. keyNum4: VK_4,
  99. keyNum5: VK_5,
  100. keyNum6: VK_6,
  101. keyNum7: VK_7,
  102. keyNum8: VK_8,
  103. keyNum9: VK_9,
  104. keyPortal: 0x303,
  105. // play control
  106. keyPlay: VK_PLAY,
  107. keyPause: VK_PAUSE,
  108. keyStop: VK_STOP,
  109. keyBackward: VK_REWIND,
  110. keyForward: VK_FAST_FWD,
  111. // color
  112. keyRed: VK_RED,
  113. keyGreen: VK_GREEN,
  114. keyYellow: VK_YELLOW,
  115. keyBlue: VK_BLUE,
  116. // direction
  117. keyUp: VK_UP,
  118. keyDown: VK_DOWN,
  119. keyLeft: VK_LEFT,
  120. keyRight: VK_RIGHT,
  121. // controller
  122. keyOK: VK_ENTER,
  123. keyBack: VK_BACK,
  124. keyPageUp: 0x1AB,
  125. keyPageDown: 0x1AC,
  126. // additional
  127. keyInfo: VK_INFO,
  128. keyInfo1: VK_INFO1,
  129. keyText: 0x1CB,
  130. KeyMenu: 462,
  131. KeyOPT : VK_OPT
  132. };
  133.  
  134. // event handler
  135. function EventHandler(master, elt) {
  136. if (arguments.length > 0) {
  137. this.init(master, elt);
  138. }
  139. }
  140. EventHandler.prototype.init = function (master, elt) {
  141. this.master = master;
  142. this.elt = elt;
  143. this.keySet = keySet;
  144. var me = this;
  145. this.keydownFunc = function (e) { return me.keydownHandler(e) };
  146. this.keypressFunc = function (e) { return me.keypressHandler(e) };
  147. this.keyupFunc = function (e) { return me.keyupHandler(e) };
  148.  
  149. };
  150. EventHandler.prototype.inspire = function () {
  151. if (this.elt.addEventListener) {
  152. this.elt.addEventListener("keydown", this.keydownFunc, false);
  153. this.elt.addEventListener("keypress", this.keypressFunc, false);
  154. this.elt.addEventListener("keyup", this.keyupFunc, false);
  155. }
  156. else if (this.elt.attachEvent) {
  157. this.elt.attachEvent("onkeypress", this.keypressFunc);
  158. this.elt.attachEvent("onkeydown", this.keydownFunc);
  159. this.elt.attachEvent("onkeyup", this.keyupFunc);
  160. }
  161. };
  162. EventHandler.prototype.dumb = function () {
  163.  
  164. if (this.elt.removeEventListener) {
  165. this.elt.removeEventListener("keypress", this.keypressFunc, false);
  166. this.elt.removeEventListener("keydown", this.keydownFunc, false);
  167. this.elt.removeEventListener("keyup", this.keyupFunc, false);
  168. }
  169. else if (this.elt.detachEvent) {
  170. this.elt.detachEvent("onkeypress", this.keypressFunc);
  171. this.elt.detachEvent("onkeydown", this.keydownFunc);
  172. this.elt.detachEvent("onkeyup", this.keyupFunc);
  173. }
  174. };
  175. EventHandler.prototype.keypressHandler = function (e) {
  176. var result = true;
  177. switch (e.keyCode) {
  178. case keySet.keyOK: result = this.keypressOKHandler(e); break;
  179. case keySet.keyUp: result = this.keypressUpHandler(e); break;
  180. case keySet.keyDown: result = this.keypressDownHandler(e); break;
  181. case keySet.keyLeft: result = this.keypressLeftHandler(e); break;
  182. case keySet.keyRight: result = this.keypressRightHandler(e); break;
  183. default: result = true; break;
  184. }
  185. return result;
  186. };
  187. EventHandler.prototype.keyupHandler = function (e) {
  188. var result = true;
  189. switch (e.keyCode) {
  190. case keySet.keyOK: result = this.keyupOKHandler(e); break;
  191. case keySet.keyUp: result = this.keyupUpHandler(e); break;
  192. case keySet.keyDown: result = this.keyupDownHandler(e); break;
  193. case keySet.keyLeft: result = this.keyupLeftHandler(e); break;
  194. case keySet.keyRight: result = this.keyupRightHandler(e); break;
  195. default: result = true; break;
  196. }
  197. return result;
  198. };
  199. EventHandler.prototype.keypressOKHandler = function (e) { return cancelEvent(e); };
  200. EventHandler.prototype.keypressUpHandler = function (e) { return cancelEvent(e); };
  201. EventHandler.prototype.keypressDownHandler = function (e) { return cancelEvent(e); };
  202. EventHandler.prototype.keypressLeftHandler = function (e) { return cancelEvent(e); };
  203. EventHandler.prototype.keypressRightHandler = function (e) { return cancelEvent(e); };
  204.  
  205. EventHandler.prototype.keyupOKHandler = function (e) { return cancelEvent(e); };
  206. EventHandler.prototype.keyupUpHandler = function (e) { return cancelEvent(e); };
  207. EventHandler.prototype.keyupDownHandler = function (e) { return cancelEvent(e); };
  208. EventHandler.prototype.keyupLeftHandler = function (e) { return cancelEvent(e); };
  209. EventHandler.prototype.keyupRightHandler = function (e) { return cancelEvent(e); };
  210.  
  211. EventHandler.prototype.keydownHandler = function (e) {
  212. var result = true;
  213. switch (e.keyCode) {
  214. case keySet.keyUp: result = this.keydownUpHandler(e); break;
  215. case keySet.keyDown: result = this.keydownDownHandler(e); break;
  216. case keySet.keyLeft: result = this.keydownLeftHandler(e); break;
  217. case keySet.keyRight: result = this.keydownRightHandler(e); break;
  218. case keySet.keyPageUp: result = this.keydownPageUpHandler(e); break;
  219. case keySet.keyPageDown: result = this.keydownPageDownHandler(e); break;
  220. case keySet.keyPortal: result = this.keydownPortalHandler(e); break;
  221. case keySet.keyOK: result = this.keydownOKHandler(e); break;
  222. case keySet.keyBack: result = this.keydownBackHandler(e); break;
  223. case keySet.keyExit: result = this.keydownExitHandler(e); break;
  224. case keySet.keyRed: result = this.keydownRedHandler(e); break;
  225. case keySet.keyGreen: result = this.keydownGreenHandler(e); break;
  226. case keySet.keyYellow:
  227. case keySet.keyYellowNew:
  228. result = this.keydownYellowHandler(e);
  229. break;
  230. case keySet.keyBlue: result = this.keydownBlueHandler(e); break;
  231. case keySet.keyInfo:
  232. case keySet.keyInfo1:
  233. result = this.keydownInfoHandler(e);
  234. break;
  235. case keySet.keyNum0: case keySet.keyNum5:
  236. case keySet.keyNum1: case keySet.keyNum6:
  237. case keySet.keyNum2: case keySet.keyNum7:
  238. case keySet.keyNum3: case keySet.keyNum8:
  239. case keySet.keyNum4: case keySet.keyNum9:
  240. result = this.keydownNumberHandler(e); break;
  241. case keySet.keyPlay: result = this.keydownPlayHandler(e); break;
  242. case keySet.keyPause: result = this.keydownPauseHandler(e); break;
  243. case keySet.keyStop: result = this.keydownStopHandler(e); break;
  244. case keySet.keyBackward: result = this.keydownBackwardHandler(e); break;
  245. case keySet.keyForward: result = this.keydownForwardHandler(e); break;
  246. case keySet.KeyMenu: result = this.keydownMenuHandler(e); break;
  247. case 33: result = this.keydownPageUpHandler(e); break;
  248. case 34: result = this.keydownPageDownHandler(e); break;
  249. case keySet.KeyOPT = this.keydownOPTHandler(e): break;
  250. default: result = true; break;
  251. }
  252. return result;
  253. };
  254.  
  255. EventHandler.prototype.keydownUpHandler = function (e) { return true };
  256. EventHandler.prototype.keydownDownHandler = function (e) { return true };
  257. EventHandler.prototype.keydownLeftHandler = function (e) { return true };
  258. EventHandler.prototype.keydownRightHandler = function (e) { return true };
  259. EventHandler.prototype.keydownPageUpHandler = function (e) { return true };
  260. EventHandler.prototype.keydownPageDownHandler = function (e) { return true };
  261. EventHandler.prototype.keydownPortalHandler = function (e) { return true };
  262. EventHandler.prototype.keydownOKHandler = function (e) { return true };
  263. EventHandler.prototype.keydownBackHandler = function (e) { return true };
  264. EventHandler.prototype.keydownExitHandler = function (e) { return true };
  265. EventHandler.prototype.keydownRedHandler = function (e) { return true };
  266. EventHandler.prototype.keydownGreenHandler = function (e) { return true };
  267. EventHandler.prototype.keydownYellowHandler = function (e) { return true };
  268. EventHandler.prototype.keydownBlueHandler = function (e) { return true };
  269. EventHandler.prototype.keydownInfoHandler = function (e) { return true };
  270. EventHandler.prototype.keydownNumberHandler = function (e) { return true; };
  271. EventHandler.prototype.keydownPlayHandler = function (e) { return true; };
  272. EventHandler.prototype.keydownPauseHandler = function (e) { return true; };
  273. EventHandler.prototype.keydownStopHandler = function (e) { return true; };
  274. EventHandler.prototype.keydownBackwardHandler = function (e) { return true; };
  275. EventHandler.prototype.keydownForwardHandler = function (e) { return true; };
  276. EventHandler.prototype.keydownMenuHandler = function (e) { return true; };
  277. EventHandler.prototype.keydownOPTHandler = function (e) { return true; };
  278.  
  279. function EventHandlerController() {
  280. this.init();
  281. }
  282. EventHandlerController.prototype.init = function () {
  283. this.handlerList = []
  284. this.currenthandleridx = 0;
  285. };
  286. EventHandlerController.prototype.addHandler = function (name, handler) {
  287. this.handlerList.push({ name: name, handler: handler })
  288. };
  289. EventHandlerController.prototype.getHandler = function (name) {
  290. for (var i = 0, il = this.handlerList.length; i < il; i++) {
  291. if (this.handlerList[i].name == name) {
  292. return this.handlerList[i].handler;
  293. }
  294. } return null;
  295. };
  296. EventHandlerController.prototype.removeHandler = function (name) {
  297. for (var i = 0, il = this.handlerList.length; i < il; i++) {
  298. if (this.handlerList[i].name == name) {
  299. this.handlerList.splice(i, 1);
  300. if (this.currenthandleridx == i) {
  301. this.currenthandleridx = 0;
  302. }
  303. return;
  304. }
  305. }
  306. };
  307. EventHandlerController.prototype.changeHandler = function (name) {
  308. var handler = null;
  309. this.currenthandler = null;
  310. for (var i = 0, il = this.handlerList.length; i < il; i++) {
  311. this.handlerList[i].handler.dumb();
  312. if (this.handlerList[i].name == name) {
  313. handler = this.handlerList[i].handler;
  314. this.currenthandleridx = i;
  315. }
  316. }
  317. if (handler == null) {
  318. return;
  319. }
  320. handler.inspire();
  321. };
  322. EventHandlerController.prototype.currentName = function () {
  323. if (this.handlerList[this.currenthandleridx])
  324. return this.handlerList[this.currenthandleridx].name;
  325. else
  326. return "";
  327. };
  328. function cancelEvent(e) {
  329. if (e.preventDefault) {
  330. e.preventDefault();
  331. }
  332. if (e.stopPropagation) {
  333. e.stopPropagation();
  334. }
  335. if (!e.cancelBubble)
  336. e.cancelBubble = true;
  337. return false;
  338. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement