| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 | 
							- /**
 -  *
 -  * @authors Eric Hsiao
 -  *
 -  */
 - 
 - var couponItem = function (_index, _status) {
 - 
 -   //private menbers
 -   var $container;
 -   var itemIndex;
 -   var status = {"id":1,"lp":1,"gp":10,"issoldout":false,"isredeemed":false,"isnomoney":false,"canuse":false,"video":''}
 - 
 -   //template
 - 
 -   var couponTemplate = 
 -   `<div class="coupon__item">
 -     <div class="coupon__item__content">
 -       <div class="coupon__item__btn"></div>
 -       <div class="coupon__item__lp"></div>
 -       <div class="coupon__item__gp"></div>
 -     </div>
 -     <div class="coupon__item__overlayer"></div>
 -     <div class="coupon__item__hitArea"></div>
 -   </div>`;
 - 
 -   /***********************************/
 - 
 -   //private methods
 -   function init() {
 -     console.log('coupon__item__hitArea');
 -     // $container = _container;
 -     itemIndex = _index;
 -     $container = $(couponTemplate).appendTo($('.game__store__coupon'));
 - 
 -     status = $.extend(status, _status);
 - 
 -     updateCoupon();
 - 
 -     $container.find('.coupon__item__hitArea').click(function (e) {
 -       // e.preventDefault();
 -       console.log('click');
 -       doClick();
 -     });
 -   }
 - 
 -   function updateCoupon() {
 - 
 -     $container.find('.coupon__item__lp').text(status.lp);
 -     $container.find('.coupon__item__gp').text(status.gp);
 - 
 -     //////////////////////////////////////
 - 
 -     if(status.video != '' && !status.isredeemed && !status.issoldout){
 -       $container.addClass('coupon__item__video');
 -     }
 - 
 -     if (status.lock && !status.isredeemed && !status.issoldout) {
 -       $container.find('.coupon__item__btn').addClass('lock');
 -     } else {
 -       $container.find('.coupon__item__btn').removeClass('lock');
 -     }
 - 
 -     if (status.issoldout) {
 -       $container.addClass('sellout');
 -     } else {
 -       $container.removeClass('sellout');
 -     }
 - 
 -     if (status.isredeemed) {
 -       $container.find('.coupon__item__btn').addClass('used');
 -     } else {
 -       $container.find('.coupon__item__btn').removeClass('used');
 -     }
 -   }
 - 
 -   function doClick() {
 - 
 -     console.log('點選 ' + status.gp + '吉點 交換 LINE Point : ' + status.lp + '點');
 - 
 - 
 -     if (status.issoldout) {
 -       // alert('已換完');
 -       // $('.game__popout__content .content').hide();
 -       // $('.game__popout__submit').hide();
 -       // $('.content__no').show();
 - 
 -       $('.game__popout__content .content').hide();
 -       $('.game__popout__submit').hide();
 -       $('.game__popout__content .content__result').show();
 -       $('.game__popout__content .content__result__text').html('<p>獎項已兌換完畢</p>');
 - 
 -       main.showPopout();
 -     } else if (status.lock) {
 -       // alert('未解鎖');
 -       $('.video__popout').show();
 -       TweenMax.set('.video__popout', { autoAlpha: 0 });
 -       TweenMax.to('.video__popout', 0.5, { autoAlpha: 1 });
 -       // $('.video__content').html('<iframe width="640" height="360" src="https://www.youtube.com/embed/' + status.video + '" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
 - 
 -       console.log('VIDEO = ' + status.video);
 -       player.loadVideoById(status.video);
 -       player.stopVideo(0);
 - 
 -       videoCallback = function () {
 -         TweenMax.to('.video__popout', 0.5, { autoAlpha: 0 });
 -         status.lock = false;
 - 
 -         console.log('SET cookie');
 -         $.cookie('luckydraw.isVideoUnlock', true);
 -         console.log('luckydraw.isVideoUnlock = ' + $.cookie('luckydraw.isVideoUnlock'));
 - 
 -         updateCoupon();
 -         setTimeout(function () {
 -           doClick();
 -         },300);
 -       }
 - 
 -     } else if (status.isredeemed) {
 - 
 -       $('.game__popout__content .content').hide();
 -       $('.game__popout__submit').hide();
 -       $('.game__popout__content .content__result').show();
 -       $('.game__popout__content .content__result__text').html('<p>本週已兌換</p>');
 -       TweenMax.to('.game__popout', 0.5, { autoAlpha: 1 });
 - 
 -       main.showPopout();
 -     } else if (status.isnomoney) {
 -       $('.game__popout__content .content').hide();
 -       $('.game__popout__submit').hide();
 -       $('.game__popout__content .content__result').show();
 -       $('.game__popout__content .content__result__text').html('<p>很抱歉,兌換吉點餘額不足。</p>');
 -       TweenMax.to('.game__popout', 0.5, { autoAlpha: 1 });
 -       main.showPopout();
 -     } else {
 -       $('.game__popout__content .content').hide();
 -       $('.game__popout__submit').show();
 -       $('.game__popout__submit__text').text(status.gp);
 -       $('.game__popout .content__lp .lp').text(status.lp);
 -       $('.game__popout .content__lp').show();
 -       TweenMax.set('.game__popout__submit', { y: 50 });
 -       TweenMax.to('.game__popout__submit', 0.5, { y: 0, ease: Back.easeOut.config(1.7) });
 - 
 -       main.showPopout(function () {
 -         //使用Coupon
 -         main.useCoupon(status.id,-status.gp, function () {
 -           status.isredeemed = true;
 -           updateCoupon();
 -         });
 -       });
 -     }
 -   }
 - 
 -   //constructor
 - 
 -   {
 -     $(document).ready(function () {
 -       init();
 -     });
 -   }
 - 
 -   //public
 - 
 -   return {
 -     // videoComplete:function () {
 -     //   console.log('videoComplete : ' + status.gp);
 -     // }
 -   };
 - };
 - 
 - var videoCallback;
 - 
 - // Load the IFrame Player API code asynchronously.
 - var tag = document.createElement('script');
 - tag.src = "https://www.youtube.com/player_api";
 - var firstScriptTag = document.getElementsByTagName('script')[0];
 - firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
 - 
 - // Replace the 'ytplayer' element with an <iframe> and
 - // YouTube player after the API code downloads.
 - var player;
 - function onYouTubePlayerAPIReady() {
 -   console.log('Yiutube API Ready');
 - 
 -   player = new YT.Player('video__content', {
 -     height: '360',
 -     width: '640',
 -     videoId: 'H8EAsiZfqnc',
 -     playerVars: { 'autoplay': 0, 'controls': 0 },
 -     events: {
 -       'onStateChange': onPlayerStateChange
 -     }
 -   });
 - }
 - 
 - function onPlayerStateChange(e) {
 -   console.log('onPlayerStateChange'); 
 -   if(e.data == 0){
 -     videoCallback();
 -   }
 - }
 
 
  |