Index.cshtml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. @using NEducation.Content.Texts;
  2. @model NEducation.Models.CheckMiniGameModel
  3. @{
  4. ViewBag.Title = "MiniGame";
  5. Layout = "~/Views/Shared/_LayoutMiniGame.cshtml";
  6. }
  7. <div class="main minigame">
  8. <div class="minigame-container fixed top-0 left-0 right-0 z-50 w-full overflow-x-hidden overflow-y-auto md:inset-0 h-screen max-h-full z-[99999] backdrop-filter-1">
  9. <div class="fixed z-[1] w-full blend-mode bottom-[0%] left-[0%]">
  10. <img src="~/Content/assets/mini_game/assets/images/bg_icon_2.png" class="" />
  11. </div>
  12. <div class="fixed z-[1] blend-mode bottom-[0%] right-[0px] flex flex-col">
  13. <img src="~/Content/assets/mini_game/assets/images/bg_icon_3.png" class="" />
  14. </div>
  15. <div class="fixed z-[1] blend-mode top-[-20%] left-[-30%]">
  16. <img src="~/Content/assets/mini_game/assets/images/bg_icon_4.png" class="" />
  17. </div>
  18. <div class="minigame_content">
  19. <div class="text-c-1 text-s-36 justify-center top-50">
  20. @*"ហ្គេមតូច"*@
  21. @Lang.Tille_minigame
  22. </div>
  23. <div class="pb-[10px]">
  24. <div class="text-c-2 w-full justify-center font-z-10 top-30 bottom-30 text-s-15">
  25. @Lang.LetMeKnowYourAnsWers
  26. @*"អនុញ្ញាតឱ្យខ្ញុំដឹងពីចម្លើយរបស់អ្នក!"*@
  27. </div>
  28. </div>
  29. <div class="w-full min-h-[200px] flex relative mb-[10px]" id="div_clock" style="display: @(ViewBag.ShowClock ? "block" : "none")">
  30. <div class="absolute right-[-10px] top-[10px] w-[100%] h-full card-monthly">
  31. <div class="px-[30px]">
  32. <div class="flex justify-between items-center">
  33. <div class="relative">
  34. <img src="~/Content/assets/mini_game/assets/images/Clender.png" class="h-[101px]" />
  35. <div class="absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%]">
  36. <div id="days" class="text-calender text-c-1" style="font-size: 50px;">
  37. 0
  38. </div>
  39. </div>
  40. <div class="text-c-1 justify-center">
  41. @Lang.Days
  42. </div>
  43. </div>
  44. <div class="relative">
  45. <img src="~/Content/assets/mini_game/assets/images/Clock.png" class="h-[101px]" />
  46. <div class="absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%]">
  47. <div id="hours" class="text-calender text-c-1" style="font-size: 50px;">
  48. 0
  49. </div>
  50. </div>
  51. <div class="text-c-1 justify-center">
  52. @Lang.Hours
  53. </div>
  54. </div>
  55. <div class="relative mt-[5px]">
  56. <img src="~/Content/assets/mini_game/assets/images/Clock.png" class="h-[101px]" />
  57. <div class="absolute left-[50%] top-[50%] translate-x-[-50%] translate-y-[-50%]">
  58. <div id="minutes" class="text-calender text-c-1" style="font-size: 50px;">
  59. 0
  60. </div>
  61. </div>
  62. <div class="text-c-1 justify-center">
  63. @Lang.Minutes
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="flex justify-center items-center gap-[20px] top-50" id="div_play" style="display: @(ViewBag.ShowPlayButton ? "flex" : "none")">
  71. <a href="javascript:void(0);" id="playNowButton" style="z-index: 10;">
  72. <div class="btn-c-2">
  73. <div>
  74. <img src="~/Content/assets/mini_game/assets/images/cup_icon.png" />
  75. </div>
  76. <div class="text-c-1 font-z-18">
  77. @Lang.PlayNow
  78. </div>
  79. </div>
  80. </a>
  81. </div>
  82. <div class="relative content-history">
  83. <div class="w-full justify-center gap-[1rem] items-center mb-[2px] pt-[10px] relative z-[999]">
  84. <a onclick="redirectToRank()">
  85. <div class="btn-option active_predict">
  86. @Lang.Ranking
  87. </div>
  88. </a>
  89. <a onclick="ruleClick()">
  90. <div class="btn-option">
  91. @Lang.HowToPlay
  92. </div>
  93. </a>
  94. </div>
  95. </div>
  96. <div id="minigame-ranking-data-box" class="">
  97. <div class="ranking-box" id="winner-infomation">
  98. <div class="h-full w-full flex justify-center items-center box">
  99. <div class="max-w-[350px] w-full min-h-[20px] rounded-[20px] relative p-[10px] box-item">
  100. <div class="pt-[35px]">
  101. <div class="ranking-box-header">
  102. <div class="flex justify-center items-center pb-1">
  103. <div class="text-c-1">@Lang.ListOfSpecialPrizeWinners</div>
  104. </div>
  105. </div>
  106. <div class="ranking-data" id="ranking_data"></div>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <div id="minigame-rule-data-box" class="hide" style="border-radius: 0px 24px 24px 24px;">
  113. <div class="rule-box">
  114. <p>1. @Lang.TheMiniGameStartsAt</p>
  115. <p>2. @Lang.YouHave15Seconds</p>
  116. <p>3. @Lang.EachPersonCanOnly<br /> 4. @Lang.ParticipantsMustBe.</p>
  117. <p>5. @Lang.TheMinigameConsists </p>
  118. <p>6. @Lang.EachQuestionMustBe.</p>
  119. <p>7. @Lang.IfaParticipantAnswers.</p>
  120. <p>8. @Lang.Prizes:</p>
  121. <p>- @Lang.ThereIsOnlyOnePrizeFor.</p>
  122. <p>- @Lang.IfPultipleParticipantsAnswerCorrectly.</p>
  123. <p>- @Lang.ResultsWillBeSentToTheParticipants.</p>
  124. </div>
  125. </div>
  126. <!-- Popup container -->
  127. <div id="popup-container" class="popup-container hidden">
  128. <div class="popup-content">
  129. <!-- Close button -->
  130. <button id="close-popup" class="close-popup-button">✕</button>
  131. @*<h2>Oops...!</h2>*@
  132. <p id="popup-message"></p>
  133. <div class="flex justify-center items-center gap-[20px] top-50">
  134. <a href="/Home" style="z-index:10">
  135. <div class="btn-c-2">
  136. <div class="text-c-1 font-z-18 button-box">
  137. @Lang.Home
  138. </div>
  139. </div>
  140. </a>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <script>
  148. $(document).ready(function () {
  149. redirectToRank();
  150. if (checkOPP == "NO_SUB") {
  151. popupMessageElement.innerText = '@Lang.YouHaven_tRegisteredMEDU'
  152. showPopup();
  153. }
  154. });
  155. var sysdateString = '@ViewBag.Sysdate';
  156. var startDateString = '@ViewBag.StartDate';
  157. var endDateString = '@ViewBag.EndDate';
  158. var sysdate = new Date(sysdateString);
  159. var startDate = new Date(startDateString);
  160. var endDate = new Date(endDateString);
  161. var mShowClock = '@ViewBag.ShowClock';
  162. var ShowPlayButton = '@ViewBag.ShowPlayButton';
  163. var checkOPP = '@ViewBag.checkOPP';
  164. var countDownDate;
  165. function showPopup() {
  166. document.getElementById('popup-container').classList.remove('hidden');
  167. }
  168. document.getElementById('close-popup').onclick = function() {
  169. document.getElementById('popup-container').classList.add('hidden');
  170. };
  171. document.getElementById("playNowButton").onclick = function () {
  172. var popupMessageElement = document.getElementById('popup-message');
  173. if (checkOPP == "NO_SUB") {
  174. popupMessageElement.innerText = '@Lang.YouHaven_tRegisteredMEDU'
  175. showPopup();
  176. }
  177. else if (checkOPP == "DA_CHOI") {
  178. popupMessageElement.innerText = '@Lang.YouHaveOutOfTurnToPlayMinigame';
  179. showPopup();
  180. }
  181. else {
  182. window.location.href = '@Url.Action("StartPlay", "MiniGame")';
  183. }
  184. };
  185. countDownDate = startDate.getTime();
  186. if (mShowClock) {
  187. $("#div_clock").show();
  188. }
  189. if (ShowPlayButton) {
  190. $("#div_play").show();
  191. }
  192. //if (isPlay) {
  193. // $("#div_clock").hide();
  194. // $("#div_play").show();
  195. //} else {
  196. // $("#div_clock").show();
  197. // $("#div_play").show();
  198. //}
  199. //if (sysdate < startDate) {
  200. // countDownDate = startDate.getTime();
  201. // $("#div_play").show();
  202. // $("#div_clock").show();
  203. // //if (isSubscribed == "1" && isPlay) {
  204. // // $("#div_play").show();
  205. // // $("#div_clock").hide();
  206. // //} else {
  207. // // $("#div_clock").show();
  208. // // $("#div_play").hide();
  209. // //}
  210. //} else if (sysdate >= startDate && sysdate <= endDate) {
  211. // countDownDate = endDate.getTime();
  212. // if (isPlay) {
  213. // $("#div_play").show();
  214. // $("#div_clock").hide();
  215. // } else {
  216. // $("#div_clock").show();
  217. // $("#div_play").hide();
  218. // }
  219. //} else {
  220. // $("#div_clock").hide();
  221. // $("#div_play").show();
  222. //}
  223. if (countDownDate) {
  224. $("#div_clock").show();
  225. var x = setInterval(function () {
  226. var now = new Date().getTime();
  227. var distance = countDownDate - now;
  228. var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  229. var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  230. var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  231. var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  232. document.getElementById("days").innerHTML = days;
  233. document.getElementById("hours").innerHTML = hours;
  234. document.getElementById("minutes").innerHTML = minutes;
  235. if (distance < 0) {
  236. clearInterval(x);
  237. document.getElementById("days").innerHTML = '0';
  238. document.getElementById("hours").innerHTML = '0';
  239. document.getElementById("minutes").innerHTML = '0';
  240. }
  241. }, 1000);
  242. } else {
  243. $("#div_clock").hide();
  244. }
  245. function redirectToRank() {
  246. document.getElementById('minigame-ranking-data-box').style.display = 'block';
  247. document.getElementById('minigame-rule-data-box').style.display = 'none';
  248. }
  249. function ruleClick() {
  250. document.getElementById('minigame-ranking-data-box').style.display = 'none';
  251. document.getElementById('minigame-rule-data-box').style.display = 'block';
  252. }
  253. </script>