// JavaScript Document
//Author MySirt 28/05/2017 
var app = angular.module('QuestionarioApp', []);

app.controller('QuestionarioCtrl', function($scope, $http, $window, $location) {
	// INIT FUNCTION 
	$scope.init=function(seq){
		$scope.messageError=true;
		$scope.status = 'done';
		
		$scope.urlQuestionarioService='servlet/Maat.servlet.QuestionarioServices';
		$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8";
		
		$scope.questionario={
				data:'',
				Indirizzo:'',
				titolare:'Si',
				numDipendenti:'',
				fatturato:'',
				numPersDati:'',
				sede:'',
				business:'',
				attivita:'',
				portali:'',
				rischi:'',
				politica_gestione:'Si',
				nomina_responsabile:'Si',
				cotitolare:'Si',
				categoria:'Si',
				dati_sensibili:'Si',
				dati_giudiziari:'Si',
				dati_biometrici:'Si',
				finalita:'Si',
				conservazione:'Si',
				elenco_archivi:'Si',
				accesso:'Si',
				sottochiave:'Si',
				profilazione:'Si',
				sito:'Si',
				riservate:'Si',
				newsletter:'Si',
				cookies:'Si',
				cookies_info:'Si',
				informativa:'Si',
				consenso:'Si',
				richieste:'Si',
				storicizzazione:'Si',
				interazione:'Si',
				nomina:'Si',
				formazione:'Si',
				amministratori:'Si',
				apparecchiature:'Si',
				accesso_con_password:'Si',
				regole_password:'Si',
				modifica_password:'Si',
				procedura_copia:'Si',
				dismessi:'Si',
				cloud:'Si',
				antivirus:'Si',
				malaware:'Si',
				firewall:'Si',
				software:'Si',
				analisi_rischi:'Si',
				videosorveglianza:'Si',
				specifica:'Si',
				preposto:'Si',
				termini:'Si',
				documentazione:'Si',
				sequentialUniqueNbr:''
		};

		if (seq!='null'&seq!='0'&seq!=null&seq!=''){
			$scope.action='updateQuestionario';
			$scope.titleForm='Aggiornamento  Questionario';
			$scope.titleButton='Aggiorna';
			$scope.getQuestionario(seq);
		} else{
			$scope.action='insertQuestionario';
			$scope.titleForm='Inserimento Questionario';
			$scope.titleButton='Inserire';
			    $scope.IndirizzoCopy=$scope.questionario.Indirizzo;
			//in fase di init riempi tutte le combo che non hanno condizioni
		}
	}
	$scope.getQuestionario = function (seq) {

		document.body.style.cursor = "wait";
		$http({
	            url : $scope.urlQuestionarioService,
	            method : "GET",
	            params: {
	            	actionToDo: 'getQuestionario',
	            	SU: seq
	            }
	        }).then(function (response) {
	        	$scope.questionario = response.data.Questionario[0];
			    $scope.data=$scope.questionario.data;
			    $scope.IndirizzoCopy=$scope.questionario.Indirizzo;
           document.body.style.cursor = "default";
	        }, function(response) {
	            //fail case
	        	$scope.requestResult=response;
           	document.body.style.cursor = "default";
	        });	
	};	

	$scope.checkUnique = function (name,value) {
	if (value==null || value=='') {
	 	return;
	}
		document.body.style.cursor = "wait";
        $http({
        url: $scope.urlQuestionarioService,
        method: 'POST',
        params: {
			actionToDo: 'checkUnique',
			fieldToVerify: name,
			valueToVerify: value
        },
        data: $scope.questionario
    	}).success(function (data) {
    	if (data.indexOf('<Message>OK')==-1){
		   if (data.indexOf('<Error>')!=-1) {
			   $window.alert(data.substring(data.indexOf('<Error>')+7,data.indexOf('</Error>')));
		   } else{
    			$window.alert(data.substring(data.indexOf('<Message>')+9,data.indexOf('</Message>')));
           }
    	} 
           	document.body.style.cursor = "default";
    }, function(response) {
               document.body.style.cursor = "default";
        //fail case
    	$window.alert(data);
    });	
   };
     
	$scope.submitQuestionario = function(){
      if ($scope.allRequiredFieldsAreValued()){
		$scope.status = 'running';
		document.body.style.cursor = "wait";
        $http({
            url: $scope.urlQuestionarioService,
            method: 'POST',
            params: {
            	actionToDo: $scope.action
           },
            data: $scope.questionario
        }).then(function (response) {
        	if (response.data.indexOf('<Error>')!=-1){
        		$window.alert(response.data.substring(response.data.indexOf('<Error>')+7,response.data.indexOf('</Error>')));
        	} else {
        		$window.alert('Operazione avvenuta con successo');

		$window.location.href= 'QuestionarioSearch.jsp';
        	}
           	document.body.style.cursor = "default";
				$scope.status = 'done';
	        }, function(response) {
	            //fail case
     			$scope.requestResult=response;
           	document.body.style.cursor = "default";
				$scope.status = 'done';
	        });		
	   };		
	};
      $scope.isValidEmail = function(valid,fieldName) {
          var value='';
          if (fieldName=='Indirizzo'){
              value=$scope.questionario.Indirizzo;
          };
          if (!valid && value!='') {
            window.alert('Indirizzo email non valido!');
            if (fieldName=='Indirizzo'){
                $scope.questionario.Indirizzo="";
            };
            };
        }; 
      $scope.allRequiredFieldsAreValued = function (){
	var vdata = angular.element('#data').val();
	$scope.questionario.data=vdata;
       	 if ($scope.questionario.Indirizzo!=$scope.IndirizzoCopy){
            	$window.alert('Verifichi Indirizzo. I due dati non sono uguali.');
      	    	$scope.IndirizzoCopy='';	
      	    	return (false);
      	 }
      	return (true);	
      };
      $scope.back = function(){
    	  $window.history.go(-1);
      };
   
});
