// Rasca y Gana (premios separados) // Requiere: window.RASCA_BOOT, jQuery 2.x y rasca_wScratchpad.min.js (function ($) { "use strict"; const BOOT = window.RASCA_BOOT || { rascaId: "1", api:{config:"/api/rasca_config.php?rasca_id=1", premio:"/api/rasca_premio.php"} }; let CFG = null; let confirmado = false, enviado = false, scratchInit = false; function setBanner(id, url){ const el = document.getElementById(id); if(!el) return; if(url){ el.style.backgroundImage = "url('"+url+"')"; el.style.display='block'; } else el.style.display='none'; } function aplicarVisual(cfg){ if(cfg.background_image){ document.body.style.backgroundImage = "url('"+cfg.background_image+"')"; } setBanner("banner-1", cfg.banner_1 || "img/BANNER-1.png"); setBanner("banner-2", cfg.banner_2 || "img/BANNER-2.png"); setBanner("banner-3", cfg.banner_3 || "img/BANNER-3.png"); setBanner("banner-4", cfg.banner_4 || "img/BANNER-4.png"); if(cfg.fullscreen_icon && document.getElementById('fullscreen-icon')){ document.getElementById('fullscreen-icon').src = cfg.fullscreen_icon; } } function toggleFullScreen(){ if(!document.fullscreenElement){ document.documentElement.requestFullscreen().catch(()=>{}); } else { document.exitFullscreen().catch(()=>{}); } } function initScratch(){ if(scratchInit) return; scratchInit = true; const bg = (CFG && CFG.bg_image) || "img/ruleta.png"; // fallback const fg = (CFG && CFG.fg_image) || "img/puntero.png"; // fallback (capa raspable) $("#card").wScratchPad({ size: 80, bg: bg, fg: fg, cursor: "pointer", scratchMove: function(e, percent){ if(!confirmado){ if(!window.confirm("¿Deseas participar en la promoción?")) return; confirmado = true; } if(percent > 0 && !enviado){ enviado = true; $("#card").wScratchPad("clear"); $.ajax({ url: BOOT.api.premio, method: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify({rasca_id: parseInt(BOOT.rascaId,10), percent: Math.round(percent)}) }) .done(function(res){ if(res && res.ok){ if(res.sin_premio){ $("#premio").text("Gracias por participar."); return; } //$("#premio").text(res.premio ? ("¡Felicidades! " + res.premio) : "¡Felicidades!"); if(res.imagen_url){ $("#card").wScratchPad("bg", res.imagen_url); } else if (CFG && CFG.bg_image){ $("#card").wScratchPad("bg", CFG.bg_image); } }else{ $("#premio").text(res && res.error ? res.error : "No se pudo completar la jugada."); enviado = false; } }) .fail(function(){ $("#premio").text("Error de red. Intenta nuevamente."); enviado = false; }); } } }); } function cargarConfig(){ $.ajax({ url: BOOT.api.config, method: "GET", dataType: "json" }) .done(function(cfg){ CFG = cfg || {}; aplicarVisual(CFG); initScratch(); }) .fail(function(){ CFG = {}; initScratch(); }); } $(function(){ $("#fullscreen-btn").on("click", toggleFullScreen); cargarConfig(); }); })(jQuery);