myScript.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. $(document).ready(function () {
  2. // --------------------------------------
  3. // Async data loading
  4. function asyncSend(tUri, sObj){
  5. var res = -1;
  6. $.ajax({
  7. method: "GET",
  8. url: tUri,
  9. data: {},
  10. dataType: "html",
  11. }).done(function (data) {
  12. sObj.innerText = data;
  13. //console.log(data);
  14. }).fail(function (jqXHR, textStatus) {
  15. console.error(textStatus);
  16. });
  17. return res;
  18. }
  19. // --------------------------------------
  20. // My Player logic
  21. function btnIconSwitch(obj, dir) {
  22. if (dir) {
  23. obj.classList.remove('fa-play');
  24. obj.classList.add('fa-pause');
  25. } else {
  26. obj.classList.remove('fa-pause');
  27. obj.classList.add('fa-play');
  28. }
  29. }
  30. // Simple player dynamics
  31. var players = document.getElementsByClassName('play_btn');
  32. for (var i = 0; i < players.length; i++) {
  33. players[i].onclick = function () {
  34. // Finding UI elements
  35. var audioID = this.getAttribute('audio_id');
  36. var audio = document.getElementById('audio_object_' + audioID);
  37. var btn = document.getElementById('play_ctrl_' + audioID);
  38. var playBadge = document.getElementById('play_num_' + audioID);
  39. // Handling Events
  40. audio.onended = function(){btnIconSwitch(btn, false);}
  41. if (audio.paused) {
  42. audio.play();
  43. btnIconSwitch(btn, true);
  44. // Play event
  45. var myRoute = this.getAttribute('route');
  46. var asRes = asyncSend(myRoute, playBadge);
  47. } else {
  48. audio.pause();
  49. btnIconSwitch(btn, false);
  50. }
  51. }
  52. }
  53. // Downloads dynamics
  54. var downs = document.getElementsByClassName('dw_btn');
  55. for (var i = 0; i < downs.length; i++) {
  56. downs[i].onclick = function () {
  57. var audioID = this.getAttribute('audio_id');
  58. var dwBadge = document.getElementById('dw_num_' + audioID)
  59. var myRoute = this.getAttribute('route');
  60. asyncSend(myRoute, dwBadge); // download event
  61. }
  62. }
  63. });