softgames-1.1.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. function sg_exists() {
  2. return false
  3. }
  4. function SG_initAPI(e) {
  5. return SG.initLangs(e)
  6. }
  7. function SG_hideAddressBar() {
  8. SG.hideAddressBar()
  9. }
  10. function SG_OrientationHandler(e, t) {
  11. if (typeof e != "undefined" && e != null) SG.setOrientationHandler(e);
  12. if (typeof t != "undefined" && t != null) SG.setResizeHandler(t)
  13. }
  14. var SG_Lang = "en";
  15. var SG = {
  16. loaded: false,
  17. debug: false,
  18. lang: "en",
  19. gameJS: [],
  20. d: document,
  21. loadScrnTimer: 10,
  22. boot: function() {
  23. SG.initLangs(window.gameLangs);
  24. if (sg_exists()) {
  25. window.softgames.gameInitCallback = SG.startGame;
  26. window.softgames.getReady()
  27. } else {
  28. SG.startGame()
  29. }
  30. },
  31. startGame: function() {
  32. if (SG.loaded) return;
  33. SG.loaded = true;
  34. SG.showSpinner();
  35. if (typeof window.gamePreLoader == "function") {
  36. window.gamePreLoader()
  37. }
  38. SG.loadJsFiles(window.gameJS, function() {
  39. SG.hideLoadScrn();
  40. if (window.gameOnLoadScript) {
  41. eval(window.gameOnLoadScript)
  42. }
  43. })
  44. },
  45. showSpinner: function() {},
  46. showLoadScrn: function() {
  47. var e = SG.d.createElement("div");
  48. e.setAttribute("id", "sg-spinner");
  49. var t = SG.d.createElement("div");
  50. t.setAttribute("id", "sg-loadscrn");
  51. t.appendChild(e);
  52. if (window.location.href.indexOf("adultcontent") != -1) {
  53. var n = SG.d.createElement("div");
  54. n.setAttribute("id", "sg-loadtext");
  55. n.innerHTML = "One moment please...<br>Your site is almost loaded!";
  56. t.appendChild(n)
  57. }
  58. var r = function() {
  59. var e = SG.d.getElementsByTagName("body")[0];
  60. if (typeof e != "undefined") {
  61. if (SG.d.getElementById("sg-loadscrn") == null) {
  62. SG.debug && console.log("show load-screen: complete");
  63. e.appendChild(t)
  64. }
  65. SG.loadVoyager()
  66. } else {
  67. if (SG.debug) console.log("show load-screen: body-tag not ready. retrying in " + SG.loadScrnTimer + "ms");
  68. setTimeout(r, SG.loadScrnTimer)
  69. }
  70. };
  71. r()
  72. },
  73. hideLoadScrn: function() {
  74. var e = SG.d.getElementById("sg-loadscrn");
  75. if (e) e.parentNode.removeChild(e)
  76. },
  77. loadJsFiles: function(e, t) {
  78. var n = SG.d.getElementsByTagName("head")[0] || document.documentElement,
  79. r = [],
  80. i = e.length;
  81. if (e.length > 0) {
  82. var s = document.createElement("script"),
  83. r = false;
  84. s.type = "text/javascript";
  85. s.src = e[0];
  86. e.shift();
  87. var o = false;
  88. s.onreadystatechange = s.onload = function() {
  89. if (!o && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
  90. o = true;
  91. s.onload = s.onreadystatechange = null;
  92. if (n && s.parentNode) {
  93. n.removeChild(s)
  94. }
  95. SG.loadJsFiles(e, t)
  96. }
  97. };
  98. n.insertBefore(s, n.firstChild);
  99. if (SG.debug) console.log("loading " + s.src + ", " + e.length + " files left.")
  100. } else if (typeof t == "function") {
  101. if (SG.debug) console.log("calling callback: " + t);
  102. t()
  103. }
  104. },
  105. loadCSSFiles: function(e) {
  106. if (e.length == 0) return;
  107. var t = SG.d.getElementsByTagName("head")[0] || document.documentElement;
  108. for (var n = 0; n < e.length; n++) {
  109. var r = document.createElement("link");
  110. r.rel = "stylesheet";
  111. r.type = "text/css";
  112. r.href = e[n];
  113. t.insertBefore(r, t.firstChild)
  114. }
  115. },
  116. trigger: function(e, t) {
  117. if (!sg_exists()) return false;
  118. switch (e.type) {
  119. case "start":
  120. d = {
  121. type: window.softgames.eventStartingGame
  122. };
  123. break;
  124. case "levelUp":
  125. d = {
  126. type: window.softgames.eventLevelUp,
  127. level: e.level
  128. };
  129. break;
  130. case "gameOver":
  131. d = {
  132. type: window.softgames.eventGameOver,
  133. score: e.score
  134. };
  135. break;
  136. case "gameCompleted":
  137. d = {
  138. type: window.softgames.eventGameCompleted,
  139. score: e.score
  140. };
  141. break;
  142. case "gamePause":
  143. d = {
  144. type: window.softgames.eventGamePause,
  145. state: e.state
  146. };
  147. break;
  148. case "gameRestart":
  149. d = {
  150. type: window.softgames.eventGameRestart
  151. };
  152. break;
  153. case "selectLevel":
  154. d = {
  155. type: window.softgames.eventSelectLevel,
  156. level: e.level
  157. };
  158. break;
  159. case "selectMainMenu":
  160. d = {
  161. type: window.softgames.eventSelectMainMenu
  162. };
  163. break;
  164. case "setSound":
  165. d = {
  166. type: window.softgames.eventSound,
  167. state: e.state
  168. };
  169. break
  170. }
  171. window.softgames.trigger(d, t);
  172. return true
  173. },
  174. initLangs: function(e) {
  175. var t = typeof SG_getLang == "function" ? SG_getLang() : "en";
  176. var n = Object.prototype.toString.call(e).toLowerCase() == "[object array]";
  177. if (n && e.indexOf(t) >= 0) SG.lang = t;
  178. SG_Lang = SG.lang;
  179. return SG.lang
  180. },
  181. getLang: function() {
  182. return SG.lang
  183. },
  184. setOrientationHandler: function(e) {
  185. if (sg_exists()) window.softgames.changeScreenOrientation = e
  186. },
  187. setResizeHandler: function(e) {
  188. if (sg_exists()) window.softgames.changeScreenSize = e
  189. },
  190. hideAddressBar: function() {
  191. setTimeout("window.scrollTo(0, 1)", 10)
  192. },
  193. loadVoyager: function() {
  194. var e = document.createElement("script");
  195. e.type = "text/javascript";
  196. e.async = true;
  197. var t = Math.floor(Math.random() * 1e8 + 1);
  198. SG.boot();
  199. var n = document.getElementsByTagName("script")[0];
  200. n.parentNode.insertBefore(e, n)
  201. },
  202. redirectToPortal: function() {
  203. Play68.goHome()
  204. },
  205. detectPortalUrl: function() {
  206. var e = softgames.back_url;
  207. if (typeof e !== "string") e = softgames.subplatform;
  208. if (typeof e !== "string") e = "http://m.softgames.de";
  209. else e = "http://" + e;
  210. SG.portalURL = e
  211. },
  212. getLogoUrl: function(e) {
  213. return "images/play68_logo.png"
  214. }
  215. };
  216. SG.showLoadScrn()