index.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <!DOCTYPE html>
  2. <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  6. <title>Xbox & Javascript OOP</title>
  7. <meta name="description" content="Playing, Xbox, by, Javascript, OOP"/>
  8. <meta name="keywords" content="Playing with Xbox by Javascript OOP"/>
  9. <meta http-equiv="author" content="5 Mode"/>
  10. </head>
  11. <body style="background-color: #FFFFFF;">
  12. <br/><br/><br/><br/><br/><br/><br/>
  13. <span id="UXloading" style="visibility:visible">
  14. <img id="UXxbox_over_1" name="UXxbox_frame_1" src="img/button_xbox3_frame_1.gif" border="0" widh="1px" height="1px"/>
  15. <img id="UXxbox_over_2" name="UXxbox_frame_2" src="img/button_xbox3_frame_2.gif" border="0" widh="1px" height="1px"/>
  16. <img id="UXxbox_over_3" name="UXxbox_frame_3" src="img/button_xbox3_frame_3.gif" border="0" widh="1px" height="1px"/>
  17. <img id="UXxbox_over_4" name="UXxbox_frame_4" src="img/button_xbox3_frame_4.gif" border="0" widh="1px" height="1px"/>
  18. </span>
  19. <br/>
  20. <span id="UXcontainer" style="visibility:visible">
  21. <p align="center">
  22. <table border="0" width="100%" height="90%">
  23. <tr>
  24. <td height="70%" align="center">
  25. <p align="center">
  26. <input id="xboxlink" type="hidden" value="http://www.5mode.com" />
  27. <img id="xbox" border="0" src="img/button_xbox3.gif" class="xbox" style="cursor:pointer" title="Start Here" alt="Start Here" />
  28. </p>
  29. </td>
  30. </tr>
  31. </table>
  32. </p>
  33. </span>
  34. <script src="js/jquery-1.5.js"></script>
  35. <script>
  36. function XboxButtonAnimation () {
  37. var _intervalID = 0;
  38. var cyclesCounter = 0;
  39. var totFrames = 4; // NUMBER OF ANIMATION FRAMES
  40. var loadingTime_default = 2000;
  41. var frameDuration_default = 300;
  42. var exitDuration_default = 400;
  43. var cycles_default = 2;
  44. var LoadingTime = loadingTime_default;
  45. var FrameDuration = frameDuration_default;
  46. var ExitDuration = exitDuration_default;
  47. var Cycles = cycles_default;
  48. var cyclesCounter = 0;
  49. this.SetCycles = SetCycles;
  50. this.SetLoadingTime = SetLoadingTime;
  51. this.SetFrameDuration = SetFrameDuration;
  52. this.SetExitDuration= SetExitDuration;
  53. // --------
  54. this.ValidateInstance=ValidateInstance;
  55. this.Start=Start;
  56. this.RenderFrame=RenderFrame;
  57. this._ClearCallingInterval=_ClearCallingInterval;
  58. this._ClearCallingIntervalExit=_ClearCallingIntervalExit;
  59. this.FrameFactory=FrameFactory;
  60. this.Reset=Reset;
  61. this.Exit=Exit;
  62. // Properties
  63. function SetCycles(cycles) {
  64. Cycles = !isNaN(cycles) ? cycles : 0;
  65. }
  66. function SetExitDuration(exitduration) {
  67. ExitDuration = !isNaN(exitduration) ? exitduration : 0;
  68. }
  69. function SetFrameDuration(frameduration) {
  70. FrameDuration = !isNaN(frameduration) ? frameduration : 0;
  71. }
  72. function SetLoadingTime(loadingtime) {
  73. LoadingTime = !isNaN(loadingtime) ? loadingtime : 0;
  74. }
  75. // Methods
  76. function ValidateInstance() {
  77. if (isNaN(Cycles) || (Cycles==0)) Cycles = cycles_default;
  78. if (isNaN(LoadingTime) || (LoadingTime==0)) LoadingTime = loadingTime_default;
  79. if (isNaN(FrameDuration) || (FrameDuration==0)) FrameDuration = frameDuration_duration;
  80. if (isNaN(ExitDuration) || (ExitDuration==0)) ExitDuration = exitDuration_duration;
  81. }
  82. function Start() {
  83. ValidateInstance();
  84. cyclesCounter = Cycles;
  85. FrameFactory(1);
  86. }
  87. function RenderFrame(step) {
  88. $('.xbox').attr( 'src', 'img/button_xbox3_frame_' + step + '.gif' );
  89. }
  90. function _ClearCallingInterval() {
  91. if (_intervalID!=0) window.clearTimeout(_intervalID);
  92. }
  93. function _ClearCallingIntervalExit() {
  94. if (_intervalID!=0) window.clearInterval(_intervalID);
  95. }
  96. function FrameFactory(iframe) {
  97. _ClearCallingInterval();
  98. RenderFrame(iframe);
  99. if (iframe==1 && (cyclesCounter==Cycles)) {
  100. // FROM THE FIRST FRAME
  101. _intervalID=window.setTimeout(function() {FrameFactory(iframe+1);}, LoadingTime);
  102. } else {
  103. if (iframe==totFrames) {
  104. // LAST FRAME
  105. cyclesCounter--;
  106. if (cyclesCounter>=1) {
  107. // LOAD FIRST FRAME
  108. _intervalID=window.setTimeout(function() {FrameFactory(1);}, FrameDuration);
  109. } else {
  110. // END ANIMATION
  111. _intervalID=window.setTimeout(function() {Exit(true);}, FrameDuration);
  112. }
  113. } else {
  114. // NORMAL LOAD
  115. _intervalID=window.setTimeout(function() {FrameFactory(iframe+1);}, FrameDuration);
  116. }
  117. }
  118. }
  119. function Reset() {
  120. _ClearCallingIntervalExit();
  121. cyclesCounter=Cycles;
  122. $('.xbox').attr( 'src', 'img/button_xbox3.gif' );
  123. }
  124. function Exit(success) {
  125. _intervalID=window.setInterval(function() {Reset();}, ExitDuration);
  126. if (success) window.open( $('#xboxlink').attr( 'value' ) , '' ,'_blank');
  127. }
  128. }
  129. var PageXboxButtonAni = null;
  130. <!-- Click - Event Handler -->
  131. $(function() {
  132. $(".xbox").click(function () {
  133. // Xbox Animation
  134. if (!PageXboxButtonAni) {
  135. PageXboxButtonAni = new XboxButtonAnimation();
  136. PageXboxButtonAni.SetCycles(2);
  137. PageXboxButtonAni.SetLoadingTime(2000);
  138. PageXboxButtonAni.SetFrameDuration(300);
  139. PageXboxButtonAni.SetExitDuration(400);
  140. PageXboxButtonAni.Start();
  141. PageXboxButtonAni = null;
  142. }
  143. })
  144. })
  145. </script>
  146. </body>
  147. </html>