//manage tasks Controller
app.controller('taskCtrl', function($scope, $date, ErrorSvc, $task) {
  $scope.taskTypes = [];

  $scope.getError = function(task, tasks) {
    if (!task) {
      return ErrorSvc.validationArgs(true);
    }

    if (!task.name) {
      return ErrorSvc.validationArgs(true, "Indique um nome para a tarefa");
    }

    if (task.name.trim() === "") {
      return ErrorSvc.validationArgs(true, "Indique um nome para a tarefa");
    }

    if (!task.type) {
      return ErrorSvc.validationArgs(true, "Escolha um tipo de tarefa");
    }

    if (!task.criteria) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    if (!task.criteria.month) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    if (!task.criteria.monthday) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    if (!task.criteria.weekday) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    if (!task.criteria.hour) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    if (!task.criteria.minute) {
      return ErrorSvc.validationArgs(true, "Complete o critério de periodicidade");
    }

    return ErrorSvc.validationArgs(false);
  };

  $scope.formatDatetime = $date.formatDatetime;

  $scope.calculateTimespan = $date.calculateTimespan;

  $scope.toggleState = $task.toggleState;

  $scope.run = $task.run;

  $task.getTypes(function(types) {
    $scope.taskTypes = types;
  });
});
