'use strict'

angular.module('EXAM').controller('Exam002', ['$scope', '$http', 'EXAMSERVICES', '$filter', function($scope, $http, EXAMSERVICES, $filter){
   $scope.questset2= {
      'question_type': '0',
      'total_score': parseFloat(0).toFixed(2)
   };

   $scope.questset2ch = [];

   // 2 ตัวนี้ใช้เก็บเป็น Tmp เวลามีการเปลี่ยน type $scope.questset3ch จะถูกเคลียร์ค่าแต่จะมีการเก็บค่าก่อนเคลียร์ไว้ก่อน
   $scope.tmpquestset3 = [];
   $scope.tmpquestion = [];

   $scope.queryByKey = function(keyname, keyvalue){
      EXAMSERVICES.ManageExam002.query({examid: keyvalue, querytype: 'ex02'})
      .$promise.then(function(data){
         $scope.questset2 = data.mquestionset2;
         $scope.questset2ch = data.mquestionset2ch;
         $scope.calScore();
      });
   };

   $scope.calScore = function(){
      var result = parseFloat(0.00);

      $scope.questset2ch.forEach(function(data){
         result += parseFloat(data.score);
      });

      $scope.questset2.total_score = parseFloat(result).toFixed(2);
   };

   $scope.putNewChild = function(arrchild){
      arrchild.forEach(function(data){
         var isFound = $filter('findWithAttr')($scope.questset2ch, 'questionid', data.questionid);
         if (!isFound) {
            $scope.questset2ch.push(data);
         }
      });
      console.log("DEBUG:: questset2ch", $scope.questset2ch);
      $scope.calScore();
   };

   $scope.putNewQuestion = function(objquestion){
      var isFound = $filter('findWithAttr')($scope.questset2ch, 'questionid', objquestion.questionid);
      if (!isFound) {
         $scope.questset2ch.push(objquestion);
      }
      console.log("DEBUG:: questset2ch", $scope.questset2ch);
      $scope.calScore();
   };

   $scope.selectAll = function(){
      $scope.questset2ch.forEach(function(data){
         data.ischeck = true;
      });
   };

   $scope.deSelectAll = function(){
      $scope.questset2ch.forEach(function(data){
         data.ischeck = false;
      });
   };

   $scope.delSelect = function(){
      var listindex = [];

      $scope.questset2ch.forEach(function(data, index){
         if (data.ischeck){
            listindex.push(index);
         }
      });

      while (listindex.length > 0){
         $scope.questset2ch.splice(listindex.pop(), 1);
      }
   };

   $scope.save = function(){
      $scope.calScore();

      var allobj = {
         'questionset2': $scope.questset2,
         'questionset2ch': $scope.questset2ch
      };
      console.log("DEBUG:: allobj", allobj);

      EXAMSERVICES.ManageExam002.save(allobj)
      .$promise.then(function(data){
         alert(MyCode[18]);
      });
   };

   $scope.delete = function(){
      if ($scope.questset2.questionset2id!= undefined && $scope.questset2.questionset2id != ''){
         EXAMSERVICES.ManageExam002.delete({examid: $scope.questset2.questionset2id})
         .$promise.then(function(data){
            alert(MyCode[19]);
            window.location.reload();
         });
      }
   }

   $scope.checkBeforeChange = function(){
      if ($scope.questset2.question_type == '0'){
         $scope.tmpquestset3 = $scope.questset2ch;
         $scope.questset2ch = $scope.tmpquestion;
      }else if ($scope.questset2.question_type == '1'){
         $scope.tmpquestion = $scope.questset2ch;
         $scope.questset2ch = $scope.tmpquestset3;
      }
   }







}]);