'use strict'

angular.module('EXAM').controller('Exam004', ['$scope', '$http', 'EXAMSERVICES', '$filter', function($scope, $http, EXAMSERVICES, $filter){
   $scope.examobj;
   $scope.examchild = [];
   $scope.employee;

   /*EXAMSERVICES.ManageExam004.query({examid: "0"})
   .$promise.then(function(data){
      $scope.examobj = JSON.parse(data.result);
      console.log($scope.examobj);
   });*/

   $scope.queryByKey = function(keyname, keyval){
      EXAMSERVICES.ManageExam004.query({examid: keyval})
      .$promise.then(function(data){
         $scope.examobj = JSON.parse(data.resultexam);
         $scope.examchild = JSON.parse(data.resultchild);
      })
   };
   $scope.renderHtmlCode = function(strobj, index){
      var html = $.parseHTML(strobj);
      $('#'+index).html(html);
   };
   $scope.addQuestion = function(questobj){
      var tmpobj = {
         'questionid': questobj.questionid,
         'line_no': '0',
         'questionset4_detailid': questobj.questionid,
         'questionset4id': $scope.examobj.questionset4id,
         'questiondata': {
            'question_name': questobj.question_name,
            'score': questobj.score
         }
      };
      var isFound = $filter('findWithAttr')($scope.examchild, 'questionid', questobj.questionid);
      if (!isFound) {
         $scope.examchild.push(tmpobj);
      }
   };

   $scope.calScore = function(){
      var result = 0.00;
      $scope.examchild.forEach(function(data){
         result += parseFloat(data.questiondata.score);
      });
      return parseFloat(result).toFixed(2);
   };

   $scope.delSelect = function(){
      var listindex = [];
      $scope.examchild.forEach(function(data, index){
         if (data.ischeck){
            listindex.push(index);
         }
      });
      while (listindex.length > 0){
         $scope.examchild.splice(listindex.pop(), 1);
      }
   };

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

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

   $scope.save = function(){
      $scope.examobj.total_score = $scope.calScore();
      var allobj = {
         'questionset4': $scope.examobj,
         'questionchild': $scope.examchild
      };
      EXAMSERVICES.ManageExam004.save(allobj)
      .$promise.then(function(data){
         alert(MyCode[18]);
      });
   }

   $scope.delete = function(){
      EXAMSERVICES.ManageExam004.delete({examid: $scope.examobj.questionset4id})
      .$promise.then(function(data){
         alert(MyCode[19]);
         window.location.reload();
      });
   }
}]);