var arrayQuest = []
var answs = []
var patch
var count = 0
var quest = 0
var questAmount
var corcount
var min
var sec
var geh = 0
var correct
var quesArr = []
var question = new Phaser.Class({
       Extends: Phaser.Scene,
        initialize: function() {
           Phaser.Scene.call(this, { "key": "question" });
        },
        init: function(data) {
            this.difficulty = data.difficulty 
            this.category = data.category 
            this.number = data.number
            const self = this
            num = number + 30
            this.catArr = data.catArr
            name = catArr[category]+(difficulty+1)
            let cache = self.cache.text
            let ques = cache.get(name)
            quesArr = ques.split('\r\n');
            quest = Phaser.Math.Between(1,(quesArr.length) / 6);
            sectemp = se
            mintemp = mi
            guhtemp = guh
        },
        preload: function() {   
            if (quesArr[(quest * 6) - 1] != ")"){
               this.load.image(quesArr[(quest * 6)-1]);
            }
            this.load.image("ansButt", 'answerButton.PNG');
            this.load.image("questBox", 'TextBox.PNG');
            //this.load.image("questBack", 'questionBack.PNG');
        },
        create: function() {
         patch = true
         gr = this.add.image(400,300,"gameBack")
         const self = this
         if (quesArr[(quest * 6) - 1] != ")"){
            pic = self.add.image(550,425, quesArr[(quest * 6)-1])
            let x = 1
            while(pic.displayHeight > gr.displayHeight - 300){
               pic.setScale(x)
               x = x-0.001
            }
            x = 1
            if(pic.displayWidth > gr.displayWidth - 300){
               while (pic.displayWidth > gr.displayWidth - 400){
                  pic.setScale(x)
                  x = x-0.001
               }
            }
         }
         self.startTime = new Date();
	      self.totalTime = 120;
	      self.timeElapsed = 0;
	      self.createTimer();
	      self.gameTimer = this.time.addEvent({
            delay: 100,
		      callback: self.updateTimer,
            callbackScope: self,
            loop: true
	      });
         
         self.full = new fullButton(self,gr.displayWidth - 34, gr.displayHeight - 587, "fulls",'game')
         this.add.existing(self.full)
         
         this.exi = new exitButton(this,ground.displayWidth - 19, ground.displayHeight - 587,"exit")
         this.add.existing(this.exi)
     
         corcount = 1

         count = Phaser.Math.Between(1,4)
         
         let cop = count

         for(let i = 50;i <= 750;i = i +200){
            cop++
            corcount++
            if(cop == 4){
               if(corcount > 4){
                  corcount = 1
               }
               correct = corcount
            }
            if(cop > 4){
               cop = 1
            }
         }

         if(correct == 1){
            butt1 = new questbutton(this, 90,350,'ansButt',true ,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt2 = new questbutton(this, 90,400,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt3 = new questbutton(this, 90,450,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt4 = new questbutton(this, 90,500,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
         }
         else if(correct == 2){
            butt1 = new questbutton(this, 90,350,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt2 = new questbutton(this, 90,400,'ansButt',true ,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt3 = new questbutton(this, 90,450,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt4 = new questbutton(this, 90,500,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
         }
         else if(correct == 3){
            butt1 = new questbutton(this, 90,350,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt2 = new questbutton(this, 90,400,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt3 = new questbutton(this, 90,450,'ansButt',true ,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt4 = new questbutton(this, 90,500,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min) 
         }
         else if(correct == 4){
            butt1 = new questbutton(this, 90,350,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt2 = new questbutton(this, 90,400,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt3 = new questbutton(this, 90,450,'ansButt',false,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
            butt4 = new questbutton(this, 90,500,'ansButt',true ,difficulty,number,quesArr[(quest * 6) - 2]+" was \nthe correct answer!",sec,min)
         }
         
         let barf = 0

         let padding = 20

         this.add.existing(butt1)
         this.add.existing(butt2)
         this.add.existing(butt3)
         this.add.existing(butt4)

         answs.clear
         quesBox = this.add.image(400,100, "questBox")
         let herp = this.add.text(400,100,quesArr[(quest * 6) - 6], {font: "40px Optima", fill: "#000000"})
         
         herp.setOrigin(0.5)
         herp.setColor("#000000")
         herp.setFontSize(25)
         herp.setWordWrapWidth(750,true)
         

         quesBox.displayHeight = padding * 2 + herp.displayHeight;
         quesBox.displayWidth = padding * 2 + herp.displayWidth;

         Phaser.Display.Align.In.Center(herp,quesBox)

         for(let i = 50;i <= 750;i = i +200){
            bingus = this.add.text(i, 400, quesArr[((quest * 6) - 6) + count], {font: "20px Optima", fill: "#000000"})
            bingus.setColor("#000000")
            answs[barf] = bingus
            count++
            barf++
            corcount++
            if(count == 4){
                  if(corcount > 4){
                  corcount = 1
               }
               //correct = corcount
            }
            if(count > 4){
               count = 1
            }
         }

         let butt1past = 100
         let butt2past = 100
         let butt3past = 100
         let butt4past = 100

         let tex = answs[0]

         butt1.displayWidth = padding * 2 + tex.displayWidth
         butt1.displayHeight = 35
         butt2.displayWidth = padding * 2 + answs[1].displayWidth
         butt2.displayHeight = 35
         butt3.displayWidth = padding * 2 + answs[2].displayWidth
         butt3.displayHeight = 35
         butt4.displayWidth = padding * 2 + answs[3].displayWidth
         butt4.displayHeight = 35
         
         let butt1test = (butt1.displayWidth/2 - butt1past/2)+90
         let butt2test = (butt2.displayWidth/2 - butt1past/2)+90
         let butt3test = (butt3.displayWidth/2 - butt1past/2)+90
         let butt4test = (butt4.displayWidth/2 - butt1past/2)+90

         butt1.setPosition(butt1test,350)
         butt2.setPosition(butt2test,400)
         butt3.setPosition(butt3test,450)
         butt4.setPosition(butt4test,500)

         Phaser.Display.Align.In.Center(tex,butt1)
         Phaser.Display.Align.In.Center(answs[1],butt2)
         Phaser.Display.Align.In.Center(answs[2],butt3)
         Phaser.Display.Align.In.Center(answs[3],butt4)
         
      },
      update: function() {
         
      },
      createTimer: function(){
            var me = this;
            me.timeLabel = me.add.text(40, 280, "00:00", {font: "40px Optima", fill: "#000000"});
       
            me.timeLabel.align = 'center';
      },
      updateTimer: function(){
            var me = this;
            var currentTime = new Date();
            var timeDifference = me.startTime.getTime() - currentTime.getTime();
            //Time elapsed in seconds
            me.timeElapsed = Math.abs(timeDifference / 1000)+guhtemp;
            //Time remaining in seconds
            //Convert seconds into minutes and seconds
            minutes = Math.floor(me.timeElapsed / 60);
            seconds = Math.floor(me.timeElapsed) - (60 * minutes);
            min = minutes * 60
            sec = seconds
            geh = min + sec
            //Display minutes, add a 0 to the start if less than 10
            var result = (minutes < 10) ? "0" + minutes : minutes;
            //Display seconds, add a 0 to the start if less than 10
            result += (seconds < 10) ? ":0" + seconds : ":" + seconds;
            restemp = result
            me.timeLabel.text = result;
      }
        
   }); 