var EHDI = EHDI || Object.create(null);

EHDI.popup = EHDI.popup || Object.create(null);

EHDI.popup.HTPPopUp = function(callback) {
    EHDI.aka.Container.call(this);
    this.resumeCallback = callback;
};

EHDI.popup.HTPPopUp.prototype = Object.create(EHDI.aka.Container.prototype);

EHDI.popup.HTPPopUp.prototype.popUpWillAppear = function() {

    this.overlay = EHDI.displays.FillRectangle(0x000000, 0, 0, EHDI.GAME.sceneManager.getStageWidth(), EHDI.GAME.sceneManager.getStageHeight(),0);

    this.overlay.anchor.set(0.5, 0.5);

    this.addChild(this.overlay);

    this.position.x = EHDI.GAME.sceneManager.getStageWidth() * 0.5;
    this.bg = new EHDI.aka.Sprite(EHDI.Assets.images["gfx_pop"]);
    this.bg.anchor.set(0.5, 0.5);

    this.addChild(this.bg);

    this.htps = [];
    for(var i = 0; i < 2; i++){
      this.htps[i] = Object.create(null);
      this.htps[i].img = new EHDI.aka.Sprite(EHDI.Assets.images["htp_egypt"+(i+1)]);
      /*this.htps[i].desc = new EHDI.aka.PixiText("", {
          fontFamily: 'Exo-Bold',
          fontWeight: 'bold',
          fill: 0xFFFFFF,
          fontSize : 24,
          wordWrap: true,
          wordWrapWidth: this.bg.width * 0.65,
          align: "center"
      });*/
      this.htps[i].desc = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("HTP_FORMAT"));
      this.htps[i].img.anchor.set(0.5,0.5)
      this.htps[i].img.position.set(this.bg.x, this.bg.y - 60);
      this.htps[i].desc.anchor.set(0.5,0.5)
      this.htps[i].desc.position.set(this.bg.x, this.bg.y + 60);
      this.addChild(this.htps[i].img);
      this.addChild(this.htps[i].desc);
    }
    this.currentHtp = 0;
    this.htps[1].img.visible = false;
    this.htps[1].desc.visible = false;
    this.htps[0].desc.text = EHDI.GAME.JSONMgr.getLocale("LBL_HTP_1").TEXT;
    this.htps[1].desc.text = EHDI.GAME.JSONMgr.getLocale("LBL_HTP_2").TEXT;
};

EHDI.popup.HTPPopUp.prototype.popUpDidAppear = function() {

    this.overlay.alpha = 0.5;
    this.overlay.interactive = true;
    // this.pausedTxt = new EHDI.aka.PixiText("HOW TO PLAY", {fontFamily: "Exo-Bold", fill: 0xFFFFFF, fontSize : 50});
    this.pausedTxt = new EHDI.displays.TextSprite(EHDI.GAME.JSONMgr.getLocale("LBL_HTP_HEADER"));
    this.pausedTxt.anchor.set(0.5, 0.5);
    this.pausedTxt.position.set(-this.bg.width * 0.2, -this.bg.width * 0.24);

    this.bg.addChild(this.pausedTxt);

    this.next = new EHDI.displays.Button(EHDI.Assets.images["btn_prevnext"], EHDI.Assets.images["btn_prevnext2"], null, null);

    this.bg.addChild(this.next);

    this.next.position.set(this.bg.width * 0.45, 0);
    this.next.setOnClickFunction(this.nextPage.bind(this));

    this.previous = new EHDI.displays.Button(EHDI.Assets.images["btn_prevnext"], EHDI.Assets.images["btn_prevnext2"], null, null);

    this.bg.addChild(this.previous);
    this.previous.setOnClickFunction(this.previousPage.bind(this));

    this.previous.position.set(-this.bg.width * 0.45, 0);
    this.previous.scale.x = -1;

    this.return = new EHDI.displays.Button(EHDI.Assets.images["btn_return"], EHDI.Assets.images["btn_return2"], null, null);

    this.bg.addChild(this.return);

    this.return.position.set(0, this.bg.height * 0.35);

    this.return.setOnClickFunction(this.resumeGame.bind(this));
};

EHDI.popup.HTPPopUp.prototype.popUpWillDisappear = function() {
    this.overlay.alpha = 0;
}

EHDI.popup.HTPPopUp.prototype.popUpDidDisappear = function() {
    EHDI.GAME.pauseButton.resumeGame();
    while(this.htps.length > 0){
      var pop = this.htps.pop();
      pop.img.destroy({children: true});
      pop.desc.destroy();
    }
    this.return.dispose();
    this.previous.dispose();
    this.next.dispose();
    this.destroy({children: true});
}

EHDI.popup.HTPPopUp.prototype.toggleAudio = function(enable) {
    EHDI.GAME.soundManager.setMute(enable);
    var cache = EHDI.GAME.storageManager.getLocalInfo(EHDI.GAME.id);
    cache.isMuted = enable;
    EHDI.GAME.storageManager.setLocalInfo(EHDI.GAME.id, enable);
}

EHDI.popup.HTPPopUp.prototype.resumeGame = function() {
    EHDI.GAME.soundManager.playSFX("button_sfx");
    var data = EHDI.GAME.saveData;
    if(data.isFirstTimePlay){
      data.isFirstTimePlay = false;
      EHDI.sbGame.saveGameData(EHDI.GAME.saveData, "DEFAULT", function(){
          console.log("data saved.");
      });
    }
    if(typeof this.resumeCallback === "function"){
      this.resumeCallback();
    }
    EHDI.GAME.sceneManager.popPopUp({y : new EHDI.scene.TransitionParameter(EHDI.GAME.sceneManager.getStageHeight() * 0.5, -EHDI.GAME.sceneManager.getStageHeight()), duration : 0.25});
}

EHDI.popup.HTPPopUp.prototype.exitGame = function() {
    EHDI.GAME.soundManager.playSFX("button_sfx");
    EHDI.GAME.sceneManager.pushPopUp(new EHDI.popup.ConfirmationPopup(this.goToTitleScreen.bind(this), null), {y : new EHDI.scene.TransitionParameter(EHDI.GAME.sceneManager.getStageHeight(), 0), duration : 0.25});
};

EHDI.popup.HTPPopUp.prototype.goToTitleScreen = function() {
    EHDI.GAME.pauseButton.isEndGame = true;
    EHDI.GAME.sceneManager.popPopUp();
    EHDI.GAME.sceneManager.changeScene(new EHDI.scene.TitleScene(), {alpha : new EHDI.scene.TransitionParameter(0,1), duration : 0.25});
};

EHDI.popup.HTPPopUp.prototype.setHTP = function(val){
  this.htps[this.currentHtp].img.visible = val;
  this.htps[this.currentHtp].desc.visible = val;
}

EHDI.popup.HTPPopUp.prototype.nextPage = function() {
    //IMPLEMENT NEXT PAGE
    EHDI.GAME.soundManager.playSFX("button_sfx");
    this.setHTP(false);
    this.currentHtp = (this.currentHtp === 0) ? 1 : 0;
    this.setHTP(true);
};

EHDI.popup.HTPPopUp.prototype.previousPage = function() {
    //IMPLEMENT PREVIOUS PAGE
    EHDI.GAME.soundManager.playSFX("button_sfx");
    this.setHTP(false);
    this.currentHtp = (this.currentHtp === 0) ? 1 : 0;
    this.setHTP(true);
};