angular.module('app.controllers', [])

.controller('ceitificatorCtrl', function($scope, $ionicPlatform, EventsService) {
    $ionicPlatform.ready(function() {
        $scope.events = EventsService.getEvents();
    });
    $scope.doRefresh = function() {
        $scope.events = EventsService.getEvents();
        $scope.$broadcast('scroll.refreshComplete');
        $scope.$apply();
  };
})

.controller('novoEventoCtrl', function($scope, EventsService) {
    $scope.formData = {};
    $scope.addNewEvent = function() {
        // insere um novo evento no banco
        if ((!$scope.formData.eventName || $scope.formData.eventName.length === 0 || !$scope.formData.eventName.trim()) ||
            (!$scope.formData.eventDesc || $scope.formData.eventDesc.length === 0 || !$scope.formData.eventDesc.trim()) ||
            (!$scope.formData.eventDate || $scope.formData.eventDate.length === 0 || !$scope.formData.eventDate.trim()) ||
            (!$scope.formData.eventPlace || $scope.formData.eventPlace.length === 0 || !$scope.formData.eventPlace.trim()) ||
            (!$scope.formData.eventHours || $scope.formData.eventHours.length === 0 || !$scope.formData.eventHours.trim()))
            alert("WTF?"); // se deixou algum campo em branco, leva um alert na cara
        else // se tá tudo certo, manda inserir o novo evento no banco
        	EventsService.addNewEvent({eventName: $scope.formData.eventName, eventDesc: $scope.formData.eventDesc, eventDate: $scope.formData.eventDate, eventPlace: $scope.formData.eventPlace, eventHours: $scope.formData.eventHours});
    };
    $scope.showCertText = function() {
        // mostra o texto final (ou quase) que ficará no certificado
        alert("Certificamos que !NOME! participou " + $scope.formData.eventDesc + " " + $scope.formData.eventName + ", realizada " + $scope.formData.eventDate + " na Universidade Federal do Paraná, " + $scope.formData.eventPlace + ", em Curitiba – PR, com a carga horária total de " + $scope.formData.eventHours + ".");
    };
})

.controller('listaDePresenAEventoXCtrl', function($scope, PeopleService, eventX) {
	$scope.eventX = eventX;
    $scope.people = PeopleService.getPeople(eventX.id);
    $scope.scan = function() {
        // faz o scan do qr code e marca a presença da pessoa
        cordova.plugins.barcodeScanner.scan(
            function (result) {
                if (result && result.text.split(',').length == 3) {
                    // pega o que veio do scanner, separa nos devidos campos e insere no banco
                    PeopleService.addPersonInEvent({name: result.text.split(',')[0].trim(), grr: result.text.split(',')[1].trim(), email: result.text.split(',')[2].trim()}, eventX.id)
                    .then(function(result) {
                        // atualiza a view
                        $scope.people = PeopleService.getPeople(eventX.id);
                    }, function(err){
                        // se deu erro, não precisa atualizar a view
                        console.log(err);
                    });
                }
            },
            function (error) {
                alert("Scanning failed: " + error);
            }
        );
    };
});