/*
*	Funzioni di supporto per la gestione
*	dell'integrazione con il server EldasoftWSDM.
*
*/

var tempo = 400;
var _fascicolazioneAbilitata=0;
var _tipoWSDM;
var _fascicoliPresenti=0;
var _delegaInvioMailDocumentaleAbilitata=0;
var _ufficioIntestatario;
var _genereGara;
var _codiceGara;
var _logincomune;
var _indirizzoMittente;
var _abilitazioneGare;
var _oggettoGara;
var _gestioneStrutturaCompetente=0;
var _bloccoModificaIndirizzoMittenteAbilitata=0;
var _associazioneDocumentiProtocolloAbilitata=0;

/*
 * Funzione di attesa
 */
function _wait() {
	document.getElementById('bloccaScreen').style.visibility='visible';
	$('#bloccaScreen').css("width",$(document).width());
	$('#bloccaScreen').css("height",$(document).height());
	document.getElementById('wait').style.visibility='visible';
	$("#wait").offset({ top: $(window).height() / 2, left: ($(window).width() / 2) - 200});
}


/*
 * Nasconde l'immagine di attesa
 */
function _nowait() {
	document.getElementById('bloccaScreen').style.visibility='hidden';
	document.getElementById('wait').style.visibility='hidden';
}


/*
 * Creazione tabella con le credenziali per il collegamento 
 * al servizio remoto.
 * Richiede la presenta di un oggetto <div id="wslogincontainer"/>
 */
function _creaWSLogin() {
	
	var _form = $("<form/>",{"id":"formwslogin", "name":"formwslogin"});
	
	var _table = $("<table/>", {"id": "wslogin", "class": "wsdmscheda", "cellspacing": "0", "width" : "100%"});
	var _tbody = $("<tbody/>");
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Utente", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"username", "name":"username", "title":"Utente", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Password", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"password", "name":"password", "title":"Password", "class":"testo", "type":"password", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Ruolo", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _select = $("<select/>",{"id":"ruolo", "name":"ruolo"});
	var _input = $("<input/>",{"id":"ruolovisualizza", "name":"ruolovisualizza", "title":"Ruolo", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_select);
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);	
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Nome", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"nome", "name":"nome", "title":"Nome", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Cognome", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"cognome", "name":"cognome", "title":"Cognome", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);

	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Codice UO", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _select = $("<select/>",{"id":"codiceuo", "name":"codiceuo"});
	var _input = $("<input/>",{"id":"codiceuovisualizza", "name":"codiceuovisualizza", "title":"Codice UO", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_select);
	_td.append(_input);
	_tr.append(_td);
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Identificativo utente", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"idutente", "name":"idutente", "title":"Identificativo utente", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);
	
	var _tr = $("<tr/>");
	var _td = $("<td/>",{"text":"Unit&agrave; operativa", "class":"etichetta"});
	_tr.append(_td);
	var _td = $("<td/>",{"class":"valore"});
	var _input = $("<input/>",{"id":"idutenteunop", "name":"idutenteunop", "title":"Unit&agrave; operativa", "class":"testo", "type":"text", "size":"24", "maxlength":"20"});
	_td.append(_input);
	_tr.append(_td);
	_tbody.append(_tr);	
	
	_tbody.append(_tr);
	_table.append(_tbody);
	_form.append(_table);
	
	$("#wslogincontainer").append(_form);
	
	_popolaTabellato("ruolo","ruolo");
	_popolaTabellato("codiceuo","codiceuo");
	_popolaTabellato("idutente","idutente");
	_popolaTabellato("idutenteunop","idutenteunop");
	_popolaTabellato("classifica","classificadocumento");
	_popolaTabellato("tipodocumento","tipodocumento");
	_popolaTabellato("mittenteinterno","mittenteinterno");
	_popolaTabellato("indirizzomittente","indirizzomittente");
	_popolaTabellato("mezzo","mezzoinvio");
	_popolaTabellato("mezzo","mezzo");
	_popolaTabellato("supporto","supporto");
	
	_getWSLogin();
	_gestioneWSLogin();	
}


/*
 * Validazione del form con le credenziali
 * per il collegamento al servizio remoto
 */
function _validateWSLogin() {
	$("#formwslogin").validate({
		rules: {
			username: "required",
			password: "required",
			ruolo: "required",
			ruolovisualizza: "required",
			nome: "required",
			cognome: "required",
			codiceuo: "required",
			codiceuovisualizza: "required",
			idutente: "required",
			idutenteunop: "required"
		},
		messages: {
			username: "Specificare l'utente",
			password: "Specificare la password",
			ruolo: "Specificare il ruolo",
			ruolovisualizza: "Specificare il ruolo",
			nome: "Specificare il nome",
			cognome: "Specificare il cognome",
			codiceuo: "Specificare il codice dell'unit&agrave organizzativa",
			codiceuovisualizza: "Specificare il codice dell'unit&agrave organizzativa",
			idutente: "Specificare l'identificativo dell'utente",
			idutenteunop: "Specificare l'identificativo dell'unit&agrave; operativa"
		},
		errorPlacement: function (error, element) {
			error.insertAfter($(element));
			error.css("margin-right","5px");
			error.css("float", "right");
			error.css("vertical-align", "top");
		}
	});
}



	


/*
 * Lettura dell'utente e degli attributi per la connessione al servizio remoto.
 */
function _getWSLogin() {
	var syscon = $("#syscon").val();
	var servizio = $("#servizio").val();
	
	/*
	 * Lettura delle informazioni di login memorizzati nella 
	 * tabella WSLogin.
	 */
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSLogin.do",
		data: "syscon=" + syscon + "&servizio=" + servizio,
		success: function(data){
			if (data) {
				$.map( data, function( item ) {
					$("#username").val(item[0]);
					$("#password").val(item[1]);
					if(item[2]!=null && item[2]!=""){
						$("#ruolo").val(item[2]).attr("selected", "selected");
						$("#ruolovisualizza").val(item[2]);
					}
					$("#nome").val(item[3]);
					$("#cognome").val(item[4]);
					if(item[5]!=null && item[5]!=""){
						$("#codiceuo").val(item[5]).attr("selected", "selected");
						$("#codiceuovisualizza").val(item[5]);
					}
					$("#idutente").val(item[6]);
					$("#idutenteunop").val(item[7]);
					_logincomune=item[8];
				});
        	}
		},
		error: function(e){
			alert("Errore durante la lettura dell'utente e dei suoi attributi");
		}
	});
	
}


/*
 * Gestione del modo di apertura.
 * Se in visualizzazione e' necessario impostare alcuni 
 * campi in modalita' di sola lettura.
 */	
function _gestioneWSLogin() {
	var modoapertura = $("#modoapertura").val();
	var tiposistemaremoto = $("#tiposistemaremoto").val();
	
	if (tiposistemaremoto == "IRIDE" || tiposistemaremoto == "JIRIDE") {
		$("#password").hide();
		$("#password").closest('tr').hide();
		$("#nome").hide();
		$("#nome").closest('tr').hide();
		$("#cognome").hide();
		$("#cognome").closest('tr').hide();
		$("#codiceuo").hide();
		$("#codiceuo").closest('tr').hide();
		$("#idutente").hide();
		$("#idutente").closest('tr').hide();
		$("#idutenteunop").hide();
		$("#idutenteunop").closest('tr').hide();
	}

	if (tiposistemaremoto == "ENGINEERING") {
		$("#ruolo").hide();
		$("#ruolo").closest('tr').hide();
		$("#nome").hide();
		$("#nome").closest('tr').hide();
		$("#cognome").hide();
		$("#cognome").closest('tr').hide();
		$("#codiceuo").hide();
		$("#codiceuo").closest('tr').hide();
	}
	
	if (tiposistemaremoto == "ENGINEERINGDOC") {
		$("#ruolo").hide();
		$("#ruolo").closest('tr').hide();
		$("#nome").hide();
		$("#nome").closest('tr').hide();
		$("#cognome").hide();
		$("#cognome").closest('tr').hide();
		$("#codiceuo").hide();
		$("#codiceuo").closest('tr').hide();
		$("#idutente").hide();
		$("#idutente").closest('tr').hide();
		$("#idutenteunop").hide();
		$("#idutenteunop").closest('tr').hide();
	}
	
	if (tiposistemaremoto == "PALEO") {
		$("#idutente").hide();
		$("#idutente").closest('tr').hide();
		$("#idutenteunop").hide();
		$("#idutenteunop").closest('tr').hide();
	}
	
					
	if (tiposistemaremoto == "FOLIUM" || tiposistemaremoto == "ARCHIFLOWFA" || tiposistemaremoto == "EASYDOC" || tiposistemaremoto == "SMAT" || tiposistemaremoto == "TITULUS" || tiposistemaremoto == "ARCHIFLOW" || tiposistemaremoto == "PRISMA"
		|| tiposistemaremoto == "INFOR" || tiposistemaremoto == "URBI" || tiposistemaremoto == "PROTSERVICE" || tiposistemaremoto == "JPROTOCOL" || tiposistemaremoto == "ITALPROT") {
		$("#ruolo").hide();
		$("#ruolo").closest('tr').hide();
		$("#nome").hide();
		$("#nome").closest('tr').hide();
		$("#cognome").hide();
		$("#cognome").closest('tr').hide();
		$("#codiceuo").hide();
		$("#codiceuo").closest('tr').hide();
		$("#idutente").hide();
		$("#idutente").closest('tr').hide();
		$("#idutenteunop").hide();
		$("#idutenteunop").closest('tr').hide();
		
		if (tiposistemaremoto == "INFOR" || tiposistemaremoto == "PROTSERVICE" || tiposistemaremoto == "JPROTOCOL"){
			$("#password").hide();
			$("#password").closest('tr').hide();
		}
	}
	
		
	if (modoapertura == "VISUALIZZA") {
		$("#username").prop("readonly", true);
		$("#username").addClass("readonly");
		$("#password").prop("readonly", true);
		$("#password").addClass("readonly");
		$("#ruolovisualizza").show();
		$("#ruolovisualizza").prop("readonly", true);
		$("#ruolovisualizza").addClass("readonly");
		$("#ruolo").hide();
		$("#nome").prop("readonly", true);
		$("#nome").addClass("readonly");
		$("#cognome").prop("readonly", true);
		$("#cognome").addClass("readonly");
		$("#codiceuovisualizza").show();
		$("#codiceuovisualizza").prop("readonly", true);
		$("#codiceuovisualizza").addClass("readonly");
		$("#codiceuo").hide();
		$("#idutente").prop("readonly", true);
		$("#idutente").addClass("readonly");
		$("#idutenteunop").prop("readonly", true);
		$("#idutenteunop").addClass("readonly");
	} else {
		$("#username").prop("readonly", false);
		$("#username").removeClass("readonly");
		$("#password").prop("readonly", false);
		$("#password").removeClass("readonly");
		$("#ruolovisualizza").hide();
		$("#ruolovisualizza").prop("readonly", false);
		$("#ruolovisualizza").removeClass("readonly");
		$("#ruolo").show();
		$("#nome").prop("readonly", false);
		$("#nome").removeClass("readonly");
		$("#cognome").prop("readonly", false);
		$("#cognome").removeClass("readonly");
		$("#codiceuovisualizza").hide();
		$("#codiceuovisualizza").prop("readonly", false);
		$("#codiceuovisualizza").removeClass("readonly");
		$("#codiceuo").show();
		$("#idutente").prop("readonly", false);
		$("#idutente").removeClass("readonly");
		$("#idutenteunop").prop("readonly", false);
		$("#idutenteunop").removeClass("readonly");
	}
	
	if(_logincomune=="1"){
		bloccaCampiLoginComune();
	}
}


function bloccaCampiLoginComune(){
	$("#username").prop("readonly", true);
	$("#username").addClass("readonly");
	$("#password").prop("readonly", true);
	$("#password").addClass("readonly");
	$("#nome").prop("readonly", true);
	$("#nome").addClass("readonly");
	$("#cognome").prop("readonly", true);
	$("#cognome").addClass("readonly");
	$("#idutente").prop("readonly", true);
	$("#idutente").addClass("readonly");
	$("#idutenteunop").prop("readonly", true);
	$("#idutenteunop").addClass("readonly");
	$("#ruolovisualizza").show();
	$("#ruolovisualizza").prop("readonly", true);
	$("#ruolovisualizza").addClass("readonly");
	$("#ruolo").hide();
	$("#codiceuovisualizza").show();
	$("#codiceuovisualizza").prop("readonly", true);
	$("#codiceuovisualizza").addClass("readonly");
	$("#codiceuo").hide();
}

/*
 * Salva l'utente e gli attributi attributi per la connessione ai servizi remoti,
 * i dati vengono presi dai campi nelle pagine
 */
function _setWSLogin() {
	var syscon = $("#syscon").val();
	var servizio = $("#servizio").val();
	var username = $("#username").val();
	var password = $("#password").val();
	var ruolo = $("#ruolo option:selected").val();
	var nome = $("#nome").val();
	var cognome = $("#cognome").val();
	var codiceuo = $("#codiceuo option:selected").val();
	var idutente = $("#idutente").val();
	var idutenteunop = $("#idutenteunop").val();
	
	$.ajax({
		type: "GET",
		async: false,
		url: "pg/SetWSLogin.do",
		data: {
            syscon: syscon ,
            servizio: servizio,
            username: username,
            password: password,
            ruolo: ruolo,
            nome: nome,
            cognome: cognome,
            codiceuo: codiceuo,
            idutente: idutente,
            idutenteunop: idutenteunop
		}
	});
}

/*
 * Salva l'utente e gli attributi attributi per la connessione ai servizi remoti,
 * i dati vengono passati come parametri
 */
function setWSLogin(syscon, servizio, username, password, ruolo, nome, cognome, codiceuo, idutente, idutenteunop) {
		
	$.ajax({
		type: "GET",
		async: false,
		url: "pg/SetWSLogin.do",
		data: {
            syscon: syscon ,
            servizio: servizio,
            username: username,
            password: password,
            ruolo: ruolo,
            nome: nome,
            cognome: cognome,
            codiceuo: codiceuo,
            idutente: idutente,
            idutenteunop: idutenteunop
		}
	});
}

/*
 * Lettura del tabellato identificato da "nome".
 * Richiede che nel DOM sia gia' presente un oggetto
 * di tipo "select" con "id" e "name" uguale a "id" 
 */
function _popolaTabellato(nome,id) {
	var servizio = $("#servizio").val();
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMTabellato.do",
		data: "nome=" + nome + "&servizio=" + servizio,
		success: function(data){
			if (data) {
				$("#" + id).append($("<option/>", {value: "" ,text: "" }));
				$.map( data, function( item ) {
					$("#" + id).append($("<option/>", {value: item[0], text: item[1] }));
				});
				
				//Se è presente un solo valore nel tabellato allora lo si seleziona
				if($("#" + id + " option").length == 2 ){
					$("#" + id + " option").eq(1).prop('selected', true);
				}
			}
		},
		error: function(e){
			alert("Errore durante la lettura del tabellato " + nome);
		}
	});
}

/*
 * Lettura del tabellato identificato da "nome".
 * Viene fornito in input l'url di configurazione dell'url
 * Richiede che nel DOM sia gia' presente un oggetto
 * di tipo "select" con "id" e "name" uguale a "id" 
 */
function _popolaTabellatoByUrl(nome,id, url) {
		
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMTabellatoByUrl.do",
		data: "nome=" + nome + "&url=" + url,
		success: function(data){
			if (data) {
				$("#" + id).append($("<option/>", {value: "" ,text: "" }));
				$.map( data, function( item ) {
					$("#" + id).append($("<option/>", {value: item[0], text: item[1] }));
				});
				
				//Se è presente un solo valore nel tabellato allora lo si seleziona
				if($("#" + id + " option").length == 2 ){
					$("#" + id + " option").eq(1).prop('selected', true);
				}
			}
		},
		error: function(e){
			alert("Errore durante la lettura del tabellato " + nome);
		}
	});
}
	

/*
 * Verifica se � abilitata la gestione dei fascicoli
 */
function _controlloPresenzaFascicolazione() {
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetW_CONFIGProperty.do",
		data : {
			codapp : $("#idprg").val(),
			chiave : "pg.wsdm.applicaFascicolazione"
		}, 
		success: function(data){
			if (data) {
				_fascicolazioneAbilitata=data.propertyW_CONFIG;
        	}
		},
		error: function(e) {
			alert("Errore durante la lettura della configurazione per stabilire se � impostata la fascicolazione");
		}
	});
}

/*
 * Verifica se e' abilitata la gestione dell'invio mail dal documentale
 */
function _controlloDelegaInvioMailAlDocumentale() {
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetW_CONFIGProperty.do",
		data : {
			codapp : $("#idprg").val(),
			chiave : "pg.wsdm.invioMailPec"
		}, 
		success: function(data){
			if (data) {
				_delegaInvioMailDocumentaleAbilitata=data.propertyW_CONFIG;
        	}
		},
		error: function(e) {
			alert("Errore durante la lettura della configurazione per stabilire se e' impostata la delega invio mail al documentale");
		}
	});
}

function _inizializzazioni(){
	//Caricamento del codice della gara e del genere
	_caricamentoCodiceGenereGara();
	
	if(_fascicolazioneAbilitata==0){
		$("#inserimentoinfascicolo").val("NO");
	}else if (_fascicolazioneAbilitata==1 && _fascicoliPresenti>0){
		$("#inserimentoinfascicolo").val("SI_FASCICOLO_ESISTENTE");
	}else{
		$("#inserimentoinfascicolo").val("SI_FASCICOLO_NUOVO");
		_inizializzazioneDaOggettoGara();
	}
	
	_caricamentoCodiceUfficioIntestatario();
	$("#societa").val(_ufficioIntestatario);
	_valorizzazioneCodiceGaraLotto();
	if(_genereGara!=10 && _genereGara!=20)
		_caricamentoCodiceCig();
	
	if (_tipoWSDM == "ARCHIFLOW") {
		//Si valorizza il campo mittente col codice dell'ufficio intestatario
		var optionvalue = "<option value='" + _ufficioIntestatario +"'>" + _ufficioIntestatario + "</option>";
		$("#mittenteinterno").append(optionvalue);
    	$("#mittenteinterno").val(_ufficioIntestatario);
    }
	
	if (_tipoWSDM == "JIRIDE"){
		_controlloGestioneStrutturaCompetente();
		if(_gestioneStrutturaCompetente==1){
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
		}
		if (_genereGara == 10 || _genereGara == 11 || _genereGara == 20){
			$("#livelloriservatezza").hide();
			$("#livelloriservatezza").closest('tr').hide();
		}
	}
	
	$('#inserimentoinfascicolo').trigger('change');
	if(_fascicolazioneAbilitata==1 || _tipoWSDM == "PALEO" || _tipoWSDM == "TITULUS" || _tipoWSDM == "ARCHIFLOW" || _tipoWSDM == "SMAT" || _tipoWSDM == "URBI"){
		$("#classificadocumento").hide();
		$("#classificadocumento").closest('tr').hide();
		$("#idtitolazione").hide();
		$("#idtitolazione").closest('tr').hide();
	}

	
	if (_tipoWSDM == "TITULUS") {
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#indirizzomittente").hide();
		$("#indirizzomittente").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
		var password = $("#password").val();
		var username = $("#username").val();
		if(username!=null && password!=null && username!="" && password!="" && $("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
			_popolaTabellatoCodiceAoo();
		}
		if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
			_inizializzaCodiceAooFiltrato();
			_inizializzaCodiceUfficioFiltrato();
		}
	}
	
	if (_tipoWSDM == "ARCHIFLOW") {
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#mezzo").closest('tr').show();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
		
	}
	
	if (_tipoWSDM == "SMAT") {
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#indirizzomittente").hide();
		$("#indirizzomittente").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
	}
	
	if (_tipoWSDM == "FOLIUM" || _tipoWSDM == "EASYDOC") {
		$("#idtitolazione").hide();
		$("#idtitolazione").closest('tr').hide();
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#indirizzomittente").hide();
		$("#indirizzomittente").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
	}
	
	if (_tipoWSDM == "ARCHIFLOWFA") {
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#mezzo").closest('tr').show();
		$("#trSupporto").show();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
				
		if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_ESISTENTE"){
			_getWSDMFascicolo(false,600);
			_setDescrizioneCodiceTabellato("classificafascicolo",$("#classificafascicolonuovo").val(),"classificafascicolodescrizione",2);
		}
			
		
	}
	
	if (_tipoWSDM == "PRISMA") {
		$("#idtitolazione").hide();
		$("#idtitolazione").closest('tr').hide();
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#indirizzomittente").hide();
		$("#indirizzomittente").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		
	}
	
	if(_tipoWSDM == "ARCHIFLOWFA" || _tipoWSDM == "ARCHIFLOW" || _tipoWSDM == "JIRIDE"){
		if(_delegaInvioMailDocumentaleAbilitata==1){
			_caricamentoIndirizzoMittenteGara();
			if(_indirizzoMittente!=null && _indirizzoMittente!=""){
				$("#indirizzomittente").val(_indirizzoMittente);
				if($("#indirizzomittente :selected").text()!="" && $("#indirizzomittente :selected").text() !=null){
					_abilitazioneGare=$("#abilitazioneGare").val();
					_controlloBloccoModificaIndirizzoMittente();
					if(_abilitazioneGare=="U" && _bloccoModificaIndirizzoMittenteAbilitata==1){
						$("#indirizzomittente").hide();
						$("#indirizzomittenteisualizza").show();
						$("#indirizzomittenteisualizza").text($("#indirizzomittente :selected").text());
					}
				}
			}
		}
	}
	
	if (_tipoWSDM == "INFOR") {
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
	}
	
	if (_tipoWSDM == "URBI") {
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#mezzo").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
		
	}
	
	if (_tipoWSDM == "PROTSERVICE" || _tipoWSDM == "ITALPROT") {
		$("#idtitolazione").hide();
		$("#idtitolazione").closest('tr').hide();
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#mezzo").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
	}
	
	if (_tipoWSDM == "JPROTOCOL") {
		$("#tipodocumento").hide();
		$("#tipodocumento").closest('tr').hide();
		$("#idtitolazione").hide();
		$("#idtitolazione").closest('tr').hide();
		$("#codiceregistrodocumento").hide();
		$("#codiceregistrodocumento").closest('tr').hide();
		$("#mittenteinterno").hide();
		$("#mittenteinterno").closest('tr').hide();
		$("#mezzoinvio").hide();
		$("#mezzoinvio").closest('tr').hide();
		$("#mezzoinvio").val('');
		$("#mezzo").closest('tr').hide();
		$("#idindice").hide();
		$("#idindice").closest('tr').hide();
		$("#idunitaoperativamittente").hide();
		$("#idunitaoperativamittente").closest('tr').hide();
	}
	
	if($("#classificafascicolonuovo option").length == 2 || (_tipoWSDM == "PRISMA" && $("#classificafascicolonuovo option").length == 1) ){
		$('#classificadocumento').val($('#classificafascicolonuovo').val());
		$('#idtitolazione').val($('#classificafascicolonuovo').val());
		
	}
}


/*
 * Caricamento Oggetto della gara nei vari campi
 */
function _inizializzazioneDaOggettoGara() {
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetOggettoGara.do",
		data : {
			chiave1 : $("#chiaveOriginale").val(),
			codiceGara: _codiceGara,
			genereGara: _genereGara
		}, 
		success: function(data){
			if (data) {
				_oggettoGara = data.oggettoGara;
				var testoFascicolo = _getCodiceDellaGara($("#chiaveOriginale").val());
				/*
				if(_genereGara==1 || _genereGara==3){
					testoFascicolo = _codiceGara;
				}else{
					testoFascicolo = $("#chiaveOriginale").val();
				}
				*/
				
				testoFascicolo += " - " + data.oggettoGara;
				$("#oggettofascicolonuovo").val(testoFascicolo);
				$("#descrizionefascicolonuovo").val(testoFascicolo);
				$("#oggettofascicolo").text(testoFascicolo);
        	}
		},
		error: function(e) {
			alert("Errore durante il controllo dell'esistenza di fascicoli associati");
		}
	});
}

/*
 * Validazione wslogin
 */
function _validazioneWSLogin() {
	$("#richiestawslogin").validate({
		rules: {
			username: "required",
			password: "required",
			ruolo: "required",
			ruolovisualizza: "required",
			nome: "required",
			cognome: "required",
			codiceuo: "required",
			codiceuovisualizza: "required",
			idutente: "required",
			idutenteunop: "required"
		},
		messages: {
			username: "Specificare l'utente",
			password: "Specificare la password",
			ruolo: "Specificare il ruolo",
			ruolovisualizza: "Specificare il ruolo",
			nome: "Specificare il nome",
			cognome: "Specificare il cognome",
			codiceuo: "Specificare il codice dell'unit&agrave; organizzativa",
			codiceuovisualizza: "Specificare il codice dell'unit&agrave organizzativa",
			idutente: "Specificare l'identificativo utente",
			idutenteunop: "Specificare l'identificativo utente dell'unit&agrave operativa"
		},
		errorPlacement: function (error, element) {
			error.insertAfter($(element));
			error.css("margin-right","5px");
			error.css("float", "right");
			error.css("vertical-align", "top");
		}
	});
}

function _getTipoWSDM(){
	var servizio = $("#servizio").val();
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMRemote.do",
		data: "servizio=" + servizio,
		success: function(data){
			if (data) {
				$.map( data, function( item ) {
					_tipoWSDM = item[0];
				});
        	}
		}
	});
}

/*
 * Gestione associazione al fascicolo
 */
function _gestioneInserimentoInFascicolo() {
	var inserimentoinfascicolo = $("#inserimentoinfascicolo option:selected").val();
	if (inserimentoinfascicolo == "NO" || inserimentoinfascicolo == "") {
		$("#codicefascicolo").parent().parent().hide();
		$("#annofascicolo").parent().parent().hide();
		$("#numerofascicolo").parent().parent().hide();
		$("#oggettofascicolo").parent().parent().hide();
		$("#oggettofascicolonuovo").parent().parent().hide();
		$("#classificafascicolodescrizione").parent().parent().hide();
		$("#classificafascicolonuovo").parent().parent().hide();
		$("#descrizionefascicolo").parent().parent().hide();
		$("#descrizionefascicolonuovo").parent().parent().hide();
		$("#sezionedatifascicolo").hide();
		
		/*
		if ($('#tiposistemaremoto').val() == 'IRIDE' || $('#tiposistemaremoto').val() == 'JIRIDE' || $('#tiposistemaremoto').val() == 'PALEO' || $('#tiposistemaremoto').val() == 'ENGINEERING'
		  ||  $('#tiposistemaremoto').val() == 'ARCHIFLOW' || $('#tiposistemaremoto').val() == 'SMAT' || $('#tiposistemaremoto').val() == 'FOLIUM') {
			$("#codiceaoonuovo").parent().parent().hide();
			$("#codiceufficionuovo").parent().parent().hide();
			$("#sezioneamministrazioneorganizzativa").hide();
		}
		*/
		if($('#tiposistemaremoto').val() =="TITULUS"){
			$("#sezioneamministrazioneorganizzativa").show();
			$("#sezionecodiceaoo").show();
						
		}
		
		if($('#tiposistemaremoto').val() == "ARCHIFLOWFA"){
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
		}
		
		if($('#tiposistemaremoto').val() == "FOLIUM"){
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
		}
	} 
	
	if (inserimentoinfascicolo == "SI_FASCICOLO_ESISTENTE") {
		if($('#tiposistemaremoto').val() != 'FOLIUM' && $('#tiposistemaremoto').val() != 'INFOR' && $('#tiposistemaremoto').val() != 'JPROTOCOL')
			$("#codicefascicolo").parent().parent().show();
		else 
			$("#codicefascicolo").parent().parent().hide();
		
		if ($('#tiposistemaremoto').val() == 'IRIDE' || $('#tiposistemaremoto').val() == 'JIRIDE' || $('#tiposistemaremoto').val() == 'ENGINEERING' || $('#tiposistemaremoto').val() == 'ARCHIFLOW' 
			|| $('#tiposistemaremoto').val() == 'PRISMA' || $('#tiposistemaremoto').val() == 'INFOR' || $('#tiposistemaremoto').val() == 'JPROTOCOL') {
			$("#annofascicolo").parent().parent().show();
			$("#numerofascicolo").parent().parent().show();
			if( $('#tiposistemaremoto').val() == 'JIRIDE' ||  $('#tiposistemaremoto').val() == 'JPROTOCOL'){
				$("#oggettofascicolo").parent().parent().hide();
			}else{
				$("#oggettofascicolo").parent().parent().show();
			}
			$("#oggettofascicolonuovo").parent().parent().hide();
			if($('#tiposistemaremoto').val() == 'ARCHIFLOW' || $('#tiposistemaremoto').val() == 'JIRIDE')
				$("#classificafascicolodescrizione").parent().parent().hide();
			else
				$("#classificafascicolodescrizione").parent().parent().show();
			$("#classificafascicolonuovo").parent().parent().hide();
			if( $('#tiposistemaremoto').val() != 'PRISMA' && $('#tiposistemaremoto').val() != 'INFOR' && $('#tiposistemaremoto').val() != 'JIRIDE' && $('#tiposistemaremoto').val() != 'JPROTOCOL')
				$("#descrizionefascicolo").parent().parent().show();
			else
				$("#descrizionefascicolo").parent().parent().hide();
			$("#descrizionefascicolonuovo").parent().parent().hide();
		}else{
			$("#annofascicolo").parent().parent().hide();
			$("#numerofascicolo").parent().parent().hide();
			if($('#tiposistemaremoto').val() != 'TITULUS' && $('#tiposistemaremoto').val() != 'SMAT' && $('#tiposistemaremoto').val() != 'ARCHIFLOWFA')
				$("#oggettofascicolo").parent().parent().hide();
			$("#oggettofascicolonuovo").parent().parent().hide();
			if($('#tiposistemaremoto').val() != 'ARCHIFLOWFA' && $('#tiposistemaremoto').val() != 'FOLIUM')
				$("#classificafascicolodescrizione").parent().parent().hide();
			$("#classificafascicolonuovo").parent().parent().hide();
			$("#descrizionefascicolo").parent().parent().hide();
			$("#descrizionefascicolonuovo").parent().parent().hide();
		}
		
		$("#codicefascicolo").prop("readonly", true);
		$("#codicefascicolo").addClass("readonly");
		if ($('#tiposistemaremoto').val() == 'IRIDE' || $('#tiposistemaremoto').val() == 'JIRIDE' || $('#tiposistemaremoto').val() == 'ENGINEERING' || $('#tiposistemaremoto').val() == 'ARCHIFLOW' || $('#tiposistemaremoto').val() == 'PRISMA'
			|| $('#tiposistemaremoto').val() == 'INFOR' || $('#tiposistemaremoto').val() == 'JPROTOCOL') {
			$("#annofascicolo").prop("readonly", true);
			$("#annofascicolo").addClass("readonly");
			$("#numerofascicolo").prop("readonly", true);
			$("#numerofascicolo").addClass("readonly");
		}
		
		if($('#tiposistemaremoto').val() != 'SMAT'){
			_getWSFascicolo($('#tiposistemaremoto').val());
		}else{
			$("#oggettofascicolo").parent().parent().hide();
			$("#codicefascicolo").val($("#key1").val());
		}
		
		if ($('#tiposistemaremoto').val() == 'TITULUS'){
			_inizializzazioneDaOggettoGara();
			$('#codiceaoo').text($("#codiceaoonuovo").val());
			$('#codiceaoonuovo').hide();
			$('#codiceaoo').show();
			$('#codiceufficio').text($("#codiceufficionuovo").val());
			$('#codiceufficionuovo').hide();
			$('#codiceufficio').show();
			$("#sezioneamministrazioneorganizzativa").show();
			$("#sezionecodiceaoo").show();
			$("#sezionecodiceufficio").show();
		}else if($('#tiposistemaremoto').val() == 'ARCHIFLOWFA'){
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			$('#struttura').text($("#strutturaonuovo").val());
			$('#strutturaonuovo').hide();
			$('#struttura').show();
		}else {
			if($('#tiposistemaremoto').val() != 'SMAT' && $('#tiposistemaremoto').val() != 'FOLIUM' && $('#tiposistemaremoto').val() != 'JIRIDE' && $('#tiposistemaremoto').val() != 'JPROTOCOL')
				_getAltriDatiFascicolo();
		}
		if($('#tiposistemaremoto').val() == 'FOLIUM'){
			$("#codicefascicolo").parent().parent().hide();
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			$('#struttura').text($("#strutturaonuovo").val());
			$('#strutturaonuovo').hide();
			$('#struttura').show();
		}
		
		if($('#tiposistemaremoto').val() == 'JIRIDE'){
			$("#sezionestruttura").hide();
			$("#sezionestrutturacompetente").hide();
		}
		
		
		if($('#tiposistemaremoto').val() == 'PRISMA'){
			$("#codicefascicolo").parent().parent().hide();
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			$('#struttura').text($("#strutturaonuovo").val());
			$('#strutturaonuovo').hide();
			$('#struttura').show();
			//_getWSDMDescrizioneTabellatoPrisma();
		}
		
		if($('#tiposistemaremoto').val() == 'INFOR'){
			_setDescrizioneCodiceTabellato("classificafascicolo",$("#classificafascicolonuovo").val(),"classificafascicolodescrizione",2);
		}
		
		if($('#tiposistemaremoto').val() == 'JPROTOCOL'){
			_setDescrizioneCodiceTabellato("classificafascicolo",$("#classificafascicolonuovo").val(),"classificafascicolodescrizione",2);
		}
	}
	
	if (inserimentoinfascicolo == "SI_FASCICOLO_NUOVO") {
		if($('#tiposistemaremoto').val() != 'SMAT' && $('#tiposistemaremoto').val() != 'ARCHIFLOWFA' )
			$("#codicefascicolo").parent().parent().hide();
		if ($('#tiposistemaremoto').val() == 'TITULUS' || $('#tiposistemaremoto').val() == 'SMAT')
			$("#codicefascicolo").val($("#key1").val());
		if($('#tiposistemaremoto').val() != 'PRISMA'){
			$("#annofascicolo").parent().parent().hide();
			$("#numerofascicolo").parent().parent().hide();
		}
		if($('#tiposistemaremoto').val() != 'ARCHIFLOWFA')
			$("#oggettofascicolo").parent().parent().hide();
		else
			$("#oggettofascicolo").text('');
		$("#classificafascicolodescrizione").parent().parent().hide();
		if ($('#tiposistemaremoto').val() == 'TITULUS' || $('#tiposistemaremoto').val() == 'ARCHIFLOW' || $('#tiposistemaremoto').val() == 'SMAT')
			$("#classificafascicolonuovo").parent().parent().hide();
		$("#descrizionefascicolo").parent().parent().hide();
		if ($('#tiposistemaremoto').val() == 'TITULUS')
			$("#descrizionefascicolonuovo").parent().parent().hide();
		if( $('#tiposistemaremoto').val() == 'SMAT'){
			$("#codicefascicolo").prop("readonly", true);
			$("#codicefascicolo").addClass("readonly");
			$("#oggettofascicolonuovo").parent().parent().hide();
			$("#descrizionefascicolonuovo").parent().parent().hide();
		}
								
		if($('#tiposistemaremoto').val() =="TITULUS"){
			$("#sezioneamministrazioneorganizzativa").show();
			$("#sezionecodiceaoo").show();
			$("#sezionecodiceufficio").show();
			$("#codiceaoonuovo").hide();
			$("#codiceufficionuovo").hide();
		}
		
		if($('#tiposistemaremoto').val() =="ARCHIFLOWFA"){
			$("#linkleggifascicolo").show();
			$("#oggettofascicolo").parent().parent().hide();
			$("#oggettofascicolonuovo").val(null);
			$("#oggettofascicolonuovo").prop("readonly", true);
			$("#oggettofascicolonuovo").addClass("readonly");
			$('#classificafascicolonuovo').attr('disabled', 'disabled');
			$("#descrizionefascicolonuovo").parent().parent().hide();
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			_popolaTabellato("struttura","strutturaonuovo");
		}
		
		if($('#tiposistemaremoto').val() =="FOLIUM"){
			$("#oggettofascicolonuovo").parent().parent().hide();
			$('#classificafascicolonuovo').parent().parent().hide();
			$("#descrizionefascicolonuovo").parent().parent().hide();
			$("#categoria").parent().parent().show();
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			_popolaTabellato("struttura","strutturaonuovo");
		}
		
		if($('#tiposistemaremoto').val() == "PRISMA"){
			$("#sezionestruttura").show();
			$("#sezionestrutturacompetente").show();
			$("#classificafascicolonuovo").hide();
			$("#classificafascicolonuovoPrisma").show();
			_popolaTabellato("struttura","strutturaonuovo");
			$("#descrizionefascicolonuovo").parent().parent().hide();
			$("#oggettofascicolonuovo").val(null);
			$("#oggettofascicolonuovo").prop("readonly", true);
			$("#oggettofascicolonuovo").addClass("readonly");
			$("#linkleggifascicoloPrisma").show();
		}
		
		if($('#tiposistemaremoto').val() == "JIRIDE"){
			_popolaTabellato("tipofascicolo","tipofascicolonuovo");
			var numElementi = $('#tipofascicolonuovo > option').length;
			if(numElementi > 1){
				$("#trtipofascicolo").show();
			}
			if(_gestioneStrutturaCompetente==1)
				_popolaTabellatoStrutturaDaServizio();
		}
		
		if ($('#tiposistemaremoto').val() == 'INFOR' ) {
			$("#descrizionefascicolonuovo").parent().parent().hide();
		}
		
	}
	
	if ((inserimentoinfascicolo == "SI_FASCICOLO_ESISTENTE" || inserimentoinfascicolo == "SI_FASCICOLO_NUOVO") && $('#tiposistemaremoto').val() =="ARCHIFLOWFA") {
		if(inserimentoinfascicolo == "SI_FASCICOLO_ESISTENTE")
			_inizializzazioneDaOggettoGara();
		var testoOggettoDocumento=_getCodiceDellaGara($("#chiaveOriginale").val()) + " - ";
		testoOggettoDocumento += $('#oggettodocumento').val() + " - " + _oggettoGara;
		if(testoOggettoDocumento.length>4000)
			testoOggettoDocumento=testoOggettoDocumento.substr(0,4000);
		$('#oggettodocumento').val(testoOggettoDocumento);
	}
	
}

/*
 * Lettura di altri dati del fascicolo direttamente dal servizio remoto
 */
function _getAltriDatiFascicolo() {
	if( $("#tipoPagina").val()=="COMUNICAZIONE"){
		$("#richiestawslogin").validate().form();
		$("#richiestainserimentoprotocollo").validate();
	}
	_getWSDMFascicolo(false,600);
}

/*
 * Controllo valorizzazione dei campi obbligatori
 */
function controlloCampiObbligatori(){
	var errori=false;
	clearMsg();
	var arrayCampi = new Array("#username", "#password", "#ruolo", "#nome", "#cognome", "#codiceuo", "#idutente", "#idutenteunop", "#classificadocumento", "#codiceregistrodocumento", 
			"#tipodocumento", "#oggettodocumento","#mittenteinterno", "#indirizzomittente", "#mezzoinvio", "#idindice", "#idtitolazione", "#idunitaoperativamittente",
			"#oggettofascicolonuovo", "#classificafascicolonuovo", "#descrizionefascicolonuovo", "#codiceaoo_filtro","#mezzo");
	var messaggiErrori = new Array("l'utente", "la password", "il ruolo", "il nome", "il cognome", "il codice unit&agrave; organizzativa",
			"l'identificativo dell'utente", "l'identificativo utente dell'unit&agrave operativa",	
			"la classifica del documento", "il codice registro del documento", " il tipo documento", "l'oggetto del documento","il mittente interno",
			"l'indirizzo mittente", "il mezzo invio", "l'indice", "la classifica del documento", "l'unit&agrave operativa mittente",
			"l'oggetto del fascicolo", "la classifica del fascicolo", "la descrizione del fascicolo", "il codice AOO", "il mezzo");
	for(var i=0; i < arrayCampi.length; i++){
		//nel caso di ARCHIFLOW si deve controllare che sia valorizzata la stazione appaltante della gara,
		//il cui valore viene riportato nel campo #mittenteinterno che però è nascosto
		if((_tipoWSDM=='ARCHIFLOW' || $('#tiposistemaremoto').val() == 'ARCHIFLOW') && i==12){
			var valore = $(arrayCampi[i]).val();
			if(valore==null || valore==""){
				outMsg("Non e' possibile procedere poiche' non e' specificata la Stazione appaltante della gara", "ERR");
				onOffMsg();
				errori=true;
			}
			
		}
		
		//Nel caso di TITULUS il campo mezzoinvio non è obbligatorio, quindi va saltato il controllo
		if(!((_tipoWSDM=='TITULUS' || $('#tiposistemaremoto').val() == 'TITULUS') && i==14) && !((_tipoWSDM=='ARCHIFLOWFA' || $('#tiposistemaremoto').val() == 'ARCHIFLOWFA') && (i==18 || i==19))
				&& !((_tipoWSDM=='PRISMA' || $('#tiposistemaremoto').val() == 'PRISMA') && i==18)){
			if(verificaCampo(arrayCampi[i],messaggiErrori[i]))
				errori=true;
		}
		
		//nel caso di ARCHIFLOWFA l'oggetto e la classifica del fascicolo vengono caricati dal servizio 
		if((_tipoWSDM=='ARCHIFLOWFA' || $('#tiposistemaremoto').val() == 'ARCHIFLOWFA') && (i==18 || i==19)){
			var msg="";
			if(i==18)
				msg="Per valorizzare l'oggetto del fascicolo si deve leggere il fascicolo";
			else
				msg="Per valorizzare la classifica del fascicolo si deve leggere il fascicolo";
			var valore = $(arrayCampi[i]).val();
			if(valore==null || valore==""){
				outMsg(msg, "ERR");
				onOffMsg();
				errori=true;
			}
		}
		if((_tipoWSDM=='PRISMA' || $('#tiposistemaremoto').val() == 'PRISMA') && i==18){
			var msg="Per valorizzare l'oggetto del fascicolo si deve leggere il fascicolo";
			var valore = $(arrayCampi[i]).val();
			if(valore==null || valore==""){
				outMsg(msg, "ERR");
				onOffMsg();
				errori=true;
			}
		}
		
	}
	
	//nel caso di ENGINEERING la descrizione del fascicolo deve essere < 75 caratteri
	if(_tipoWSDM=='ENGINEERING' || $('#tiposistemaremoto').val() == 'ENGINEERING'){
		if( $('#descrizionefascicolonuovo').is(':visible') ) {
			var valore = $('#descrizionefascicolonuovo').val();
			if(valore.length>75){
				errori=true;
				outMsg("La descrizione del fascicolo non deve essere superiore a 75 caratteri", "ERR");
				onOffMsg();
			}
		}
	}
	
	//nel caso di ENGINEERING la descrizione del fascicolo deve essere < 75 caratteri
	if(_tipoWSDM=='TITULUS' || $('#tiposistemaremoto').val() == 'TITULUS'){
		if( $('#oggettodocumento').is(':visible') ) {
			var valore = $('#oggettodocumento').val();
			if(valore.length<30){
				errori=true;
				outMsg("L'oggetto dell'elemento documentale deve avere una lunghezza di almeno 30 caratteri", "ERR");
				onOffMsg();
			}
		}
	}
	
	//ARCHIFLOWA 
	if(_tipoWSDM=='ARCHIFLOWFA' || $('#tiposistemaremoto').val() == 'ARCHIFLOWFA'){
		//il campo supporto è obbligatorio
		if( $('#supporto').is(':visible') ) {
			var valore = $('#supporto').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare il supporto", "ERR");
				onOffMsg();
			}
		}
		
		//il campo codice fascicolo è obbligatorio
		if( $('#codicefascicolo').is(':visible') ) {
			var valore = $('#codicefascicolo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare il codice fascicolo", "ERR");
				onOffMsg();
			}
		}
		
		//il campo struttura è obbligatorio
		if( $('#strutturaonuovo').is(':visible') ) {
			var valore = $('#strutturaonuovo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare la struttura", "ERR");
				onOffMsg();
			}
		}
	}
	
	//PRISMA 
	if(_tipoWSDM=='PRISMA' || $('#tiposistemaremoto').val() == 'PRISMA'){
		//il campo struttura è obbligatorio
		
		
		if( $('#annofascicolo').is(':visible') ) {
			var valore = $('#annofascicolo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare l'anno del fascicolo", "ERR");
				onOffMsg();
			}
		}
		
		if( $('#numerofascicolo').is(':visible') ) {
			var valore = $('#numerofascicolo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare il numero del fascicolo", "ERR");
				onOffMsg();
			}
		}
		
		if( $('#classificafascicolonuovoPrisma').is(':visible') ) {
			var valore = $('#classificafascicolonuovoPrisma').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare la classifica del fascicolo", "ERR");
				onOffMsg();
			}
		}
						
		if( $('#strutturaonuovo').is(':visible') ) {
			var valore = $('#strutturaonuovo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare la struttura", "ERR");
				onOffMsg();
			}
		}
		
	}
	
	if((_tipoWSDM=='FOLIUM' || $('#tiposistemaremoto').val() == 'FOLIUM') && $('#categoria').parent().parent().is(':visible')){
		var categoria=$("#categoria").val();
		var classe=$("#classe").val();
		var sottoclasse=$("#sottoclasse").val();
		var sottosottoclasse=$("#sotto-sottoclasse").val();
		var fascicoloFolium=$("#fascicoloFolium").val();
		var titolare=$("#titolare").val();
		if(categoria==null)
			categoria="";
		if(classe==null)
			classe="";
		if(sottoclasse==null)
			sottoclasse="";
		if(sottosottoclasse==null)
			sottosottoclasse="";
		if(fascicoloFolium==null)
			fascicoloFolium="";
		if(titolare==null)
			titolare="";
				
		if(categoria==""){
			errori=true;
			outMsg("Specificare almeno il primo livello della classifica del fascicolo", "ERR");
			onOffMsg();
		}else
			popolaClassificaFoliumDaCampi(categoria,classe,sottoclasse,sottosottoclasse,fascicoloFolium,titolare);
		
	}
	
	if(_tipoWSDM=='JIRIDE' || $('#tiposistemaremoto').val() == 'JIRIDE'){
		//var numElementi = $('#tipofascicolonuovo > option').length;
		//if(numElementi > 1){
		if( $('#tipofascicolonuovo').is(':visible') ){
			var valore = $('#tipofascicolonuovo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare il tipo del fascicolo", "ERR");
				onOffMsg();
			}
		}
		if( $('#strutturaonuovo').is(':visible') ) {
			var valore = $('#strutturaonuovo').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare la struttura", "ERR");
				onOffMsg();
			}
		}
		if( $('#livelloriservatezza').is(':visible') ) {
			var valore = $('#livelloriservatezza').val();
			if(valore==null || valore==""){
				errori=true;
				outMsg("Specificare il livello riservatezza", "ERR");
				onOffMsg();
			}
		}
	}
	
	//nel caso di INFOR la descrizione del fascicolo deve essere < 75 caratteri
	if(_tipoWSDM=='INFOR' || $('#tiposistemaremoto').val() == 'INFOR'){
		if( $('#oggettofascicolonuovo').is(':visible') ) {
			var valore = $('#oggettofascicolonuovo').val();
			if(valore.length>255){
				errori=true;
				outMsg("L'oggetto del fascicolo non deve essere superiore a 255 caratteri", "ERR");
				onOffMsg();
			}
		}
	}
	
	return errori;
}

/*
 * Controllo valorizzazione del campo obbligatori
 *
 */
function verificaCampo(campo, messaggio){
	if( $(campo).is(':visible') ) {
			if(_fascicoliPresenti>0 && campo=="#descrizionefascicolonuovo")
				return true;
			var valore =  $(campo).val();
			if(valore==null || valore==""){
				outMsg("Specificare " + messaggio, "ERR");
				onOffMsg();
				 return true;
			}
	}
	return false;
}

function _testURL(url, tns) {
	var _URLvalido = false;
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		timeout: 3000,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetURL.do",
		data: "url=" + url + "?wsdl&tns=" + tns, 
		success: function(data){
			if (data == true) {
				_URLvalido = true;
			} 
		}
	});
	return _URLvalido;
}

function _inizializzazioneCodiceFascicoloENGINEERINGDOC(nome) {
	var servizio = $("#servizio").val();
	var messaggio = "Non e' stato trovato il codice del fascicolo nel file di configurazione";
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMTabellato.do",
		data: "nome=" + nome + "&servizio=" + servizio,
		success: function(data){
			if (data!=null && data!="") {
				$.map( data, function( item ) {
					$("#codicefascicolo").val(item[0]);
					
				});
			}else{
				
				$('#documentifascicolomessaggio').text(messaggio);
				$('#documentifascicolomessaggio').show(tempo);
			}
		},
		error: function(e) {
			$('#documentifascicolomessaggio').text(messaggio);
			$('#documentifascicolomessaggio').show(tempo);
		}
	});
}

function _popolaTabellatoCodiceAoo(){
	_wait();
	$.ajax({
		type: "POST",
		async: false,
		dataType: "json",
		url: "pg/GetWSDMListaAmministrazioniAoo.do",
		data : {
			username: $("#username").val(),
			password: $("#password").val(),
			ruolo: $("#ruolo option:selected").val(),
			nome : $("#nome").val(),
			cognome : $("#cognome").val(),
			codiceuo : $("#codiceuo option:selected").val(),
			idutente : $("#idutente").val(),
			idutenteunop : $("#idutenteunop").val(),
			servizio: $("#servizio").val()
			
		},
		success: function(json) {
			if (json) {
				if (json.esito == true) {
					//json.data contiene la lista dei valori della AOO
					if (json.data != null) {
						var numElementi = json.iTotalRecords;
						var vettoreDati = new Array(numElementi);
						$("#codiceaoonuovo").append($("<option/>", {value: "" ,text: "" }));
						$("#codiceaoonuovo_filtro").append($("<option/>", {value: "" ,text: "" }));
						$.map( json.data, function( item ) {
							//$("#codiceaoonuovo").append($("<option/>", {value: item.codiceaoo, text: item.codiceaoo + " - " + item.descrizioneaoo }));
							vettoreDati.push(item.codiceaoo + " - " + item.descrizioneaoo);
						});
						//Ordinamento dei valori
						vettoreDati.sort();
						var codiceaoo;
						vettoreDati.forEach(function (item, index, array) {
							codiceaoo = item.split(" - ")[0];
							$("#codiceaoonuovo").append($("<option/>", {value: codiceaoo, text: item }));
							$("#codiceaoonuovo_filtro").append($("<option/>", {value: codiceaoo, text: item }));
						});
						
						//Se è presente un solo valore nel tabellato allora lo si seleziona
						if($("#codiceaoonuovo option").length == 2 ){
							$("#codiceaoonuovo option").eq(1).prop('selected', true);
							$("#codiceaoonuovo_filtro option").eq(1).prop('selected', true);
							
							//popolamento del tabellato degli uffici
							if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
								_popolaTabellatoUffici();
							}
						}
						
						$('#amministrazioneorganizzativamessaggio').hide();
						_nowait();
					}
				} else {
					//var messaggio = "Non e' stato possibile caricare i valori del codice AOO dal servizio";
					var messaggio = json.messaggio;
					$('#amministrazioneorganizzativamessaggio').text(messaggio);
					$('#amministrazioneorganizzativamessaggio').show(tempo);	
					_nowait();
					$('#codiceaoonuovo').find('option').not('[value=123]').remove();
					$('#codiceaoonuovo_filtro').empty();
					$('#codiceaoo_filtro').val('');
					$('#codiceaoo_filtro').attr('title','');
				}
			}
		},
		error: function(e) {
			var messaggio = "Non e' stato possibile caricare i valori del codice AOO dal servizio";
			$('#amministrazioneorganizzativamessaggio').text(messaggio);
			$('#amministrazioneorganizzativamessaggio').show(tempo);	
			_nowait();
			$('#codiceaoonuovo').find('option').not('[value=123]').remove();
			$('#codiceaoonuovo_filtro').empty();
			$('#codiceaoo_filtro').val('');
			$('#codiceaoo_filtro').attr('title','');
		}
	});
}


function _popolaTabellatoUffici(){
	_wait();
	$.ajax({
		type: "POST",
		async: false,
		dataType: "json",
		url: "pg/GetWSDMListaUffici.do",
		data : {
			username: $("#username").val(),
			password: $("#password").val(),
			codiceaoo: $("#codiceaoonuovo option:selected").val(),
			ruolo: $("#ruolo option:selected").val(),
			servizio: $("#servizio").val()
			
		},
		success: function(json) {
			if (json) {
				if (json.esito == true) {
					//json.data contiene la lista dei valori degli uffici
					if (json.data != null) {
						var numElementi = json.iTotalRecords;
						var vettoreDati = new Array(numElementi);
						$("#codiceufficionuovo").append($("<option/>", {value: "" ,text: "" }));
						$("#codiceufficionuovo_filtro").append($("<option/>", {value: "" ,text: "" }));
						$.map( json.data, function( item ) {
							//$("#codiceufficionuovo").append($("<option/>", {value: item.codiceufficio, text: item.codiceufficio + " - " + item.descrizioneufficio }));
							vettoreDati.push(item.codiceufficio + " - " + item.descrizioneufficio);
						});
						
						//Ordinamento dei valori
						vettoreDati.sort();
						var codiceufficio;
						vettoreDati.forEach(function (item, index, array) {
							codiceufficio = item.split(" - ")[0];
							$("#codiceufficionuovo").append($("<option/>", {value: codiceufficio, text: item }));
							$("#codiceufficionuovo_filtro").append($("<option/>", {value: codiceufficio, text: item }));
						});
						
						//Se è presente un solo valore nel tabellato allora lo si seleziona
						if($("#codiceufficionuovo option").length == 2 ){
							$("#codiceufficionuovo option").eq(1).prop('selected', true);
							$("#codiceufficionuovo_filtro option").eq(1).prop('selected', true);
							$('#codiceufficio_filtro').val($("#codiceufficionuovo option").eq(1).text());
						}
						
						$('#amministrazioneorganizzativamessaggio').hide();
						_nowait();
					}
				} else {
					//var messaggio = "Non e' stato possibile caricare i valori del codice AOO dal servizio";
					var messaggio = json.messaggio;
					$('#amministrazioneorganizzativamessaggio').text(messaggio);
					$('#amministrazioneorganizzativamessaggio').show(tempo);	
					_nowait();
					$('#codiceufficionuovo').find('option').not('[value=123]').remove();
					$('#codiceufficionuovo_filtro').empty();
					$('#codiceufficio_filtro').val('');
					$('#codiceufficio_filtro').attr('title','');
				}
			}
		},
		error: function(e) {
			var messaggio = "Non e' stato possibile caricare i valori degli uffici dal servizio";
			$('#amministrazioneorganizzativamessaggio').text(messaggio);
			$('#amministrazioneorganizzativamessaggio').show(tempo);	
			_nowait();
			$('#codiceufficionuovo').find('option').not('[value=123]').remove();
			$('#codiceufficionuovo_filtro').empty();
			$('#codiceufficio_filtro').val('');
			$('#codiceufficio_filtro').attr('title','');
		}
	});
}


function caricamentoCodiceAooTITULUS(){
	if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
		var password = $("#password").val();
		var username = $("#username").val();
		if(username!=null && password!=null && username!="" && password!=""){
			_popolaTabellatoCodiceAoo();
		}else{
			$('#codiceaoonuovo').find('option').not('[value=123]').remove();
			$('#codiceaoonuovo_filtro').empty();
			$('#codiceaoo_filtro').val('');
			$('#codiceaoo_filtro').attr('title','');
		}
	}
}

function caricamentoUfficioTITULUS(){
	if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
		var codiceaoo = $("#codiceaoonuovo option:selected").val();
		$('#codiceufficionuovo').find('option').not('[value=123]').remove();
		$('#codiceufficionuovo_filtro').empty();
		$('#codiceufficio_filtro').val('');
		if(codiceaoo!=null && codiceaoo!=""){
			_popolaTabellatoUffici();
		}else{
			$('#codiceufficionuovo').find('option').not('[value=123]').remove();
			$('#codiceufficionuovo_filtro').empty();
			$('#codiceufficio_filtro').val('');
			$('#codiceufficio_filtro').attr('title','');
			
		}
	}
}


/*
 * Caricamento codice ufficio intestatario 
 */
function  _caricamentoCodiceUfficioIntestatario(){
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetCodiceUfficioIntestatario.do",
		data : {
			codiceGara: _codiceGara
		}, 
		success: function(data){
			if (data) {
				_ufficioIntestatario = data.cenint;
			}
		},
		error: function(e) {
			alert("Errore nella lettura del codice dell'ufficio intestatario");
		}
	});
}

/*
 * Caricamento codice ufficio intestatario 
 */
function  _caricamentoIndirizzoMittenteGara(){
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetIndirizzoMittenteGara.do",
		data : {
			chiave1 : $("#chiaveOriginale").val()
		},  
		success: function(data){
			if (data) {
				_indirizzoMittente = data.committ;
			}
		},
		error: function(e) {
			alert("Errore nella lettura dell'indirizzo mittente");
		}
	});
}

/*
 * Caricamento codice e genere della gara/elenco 
 */
function _caricamentoCodiceGenereGara() {
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetCodiceGenereGara.do",
		data : {
			chiave1 : $("#chiaveOriginale").val()
		}, 
		success: function(data){
			if (data) {
				_genereGara = data.genereGara;
				_codiceGara = data.codiceGara;
			}
		},
		error: function(e) {
			alert("Errore nella lettura del codice gara e del genere della gara");
		}
	});
}

function _valorizzazioneCodiceGaraLotto(){
	var tmpCodiceGara = _codiceGara;
	if(_genereGara!=1){
		tmpCodiceGara=$("#chiaveOriginale").val();
	}
	$("#codicegaralotto").val(tmpCodiceGara);
}

/*
 * Caricamento codice ufficio intestatario 
 */
function  _caricamentoCodiceCig(){
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetCodiceCig.do",
		data : {
			codiceGara: _codiceGara,
			genereGara: _genereGara
		}, 
		success: function(data){
			if (data) {
				$("#cig").val(data.cig);
			}
		},
		error: function(e) {
			alert("Errore nella lettura del codice cig");
		}
	});
}

function gestioneCampiLoginConfigurazione(azione, tipoCampi, tipoWSDM){
	var visibile=false;
	if(azione=="nascondi"){
		$("#parametri" + tipoCampi + "Riga").hide();
		$("#utente" + tipoCampi + "Riga").hide();
		$("#pwd" + tipoCampi + "Riga").hide();
		$("#ruolo" + tipoCampi + "Riga").hide();
		$("#nome" + tipoCampi + "Riga").hide();
		$("#cognome" + tipoCampi + "Riga").hide();
		$("#cuo" + tipoCampi + "Riga").hide();
		$("#idUtente" + tipoCampi + "Riga").hide();
		$("#iduo" + tipoCampi + "Riga").hide();
	}else{
		$("#parametri" + tipoCampi + "Riga").show();
		$("#utente" + tipoCampi + "Riga").show();
		//Password visibile per PALEO/ENGINEERING/TITULUS/ARCHIFLOW/ENGINEERINGDOC
		if(tipoWSDM!="IRIDE" && tipoWSDM!="JIRIDE" && tipoWSDM!="INFOR" && tipoWSDM!="PROTSERVICE"  && tipoWSDM!="JPROTOCOL")
			visibile=true;
		gestioneVisualizzazioneCampo("#pwd" + tipoCampi + "Riga", visibile);
		
		//ruolo visibile solo per PALEO/IRIDE/JIRIDE
		if(tipoWSDM=="PALEO" || tipoWSDM=="IRIDE" || tipoWSDM=="JIRIDE")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#ruolo" + tipoCampi + "Riga", visibile);
		
		//nome visibile solo per PALEO
		if(tipoWSDM=="PALEO")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#nome" + tipoCampi + "Riga", visibile);
		
		//cognome visibile solo per PALEO
		if(tipoWSDM=="PALEO")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#cognome" + tipoCampi + "Riga", visibile);
		
		//cuo visibile solo per PALEO
		if(tipoWSDM=="PALEO")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#cuo" + tipoCampi + "Riga", visibile);
		
		//idUtente visibile solo per ENGINEERING
		if(tipoWSDM=="ENGINEERING")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#idUtente" + tipoCampi + "Riga", visibile);
		
		//iduo visibile solo per ENGINEERING
		if(tipoWSDM=="ENGINEERING")
			visibile=true;
		else
			visibile=false;
		gestioneVisualizzazioneCampo("#iduo" + tipoCampi + "Riga", visibile);
		
	}
}

function gestioneVisualizzazioneCampo(campo, visibile){
	if(visibile)
		$(campo).show();
	else
		$(campo).hide();
}

/*
 * Lettura del sistema remoto di protocollazione passando come parametro l'url
 * di configurazione del sistema remoto
 */
function getWSTipoSistemaRemoto(urlConfigurazione) {
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMRemoteByUrlConfigurazione.do",
		data: "urlConfiruazione=" + urlConfigurazione,
		success: function(data){
			if (data) {
				$.map( data, function( item ) {
					$("#tiposistemaremoto").val(item[0]);
				});
        	}
		},
		error: function(e){
			alert("Errore durante la lettura della tipologia di sistema remoto");
		}
	});	
	
}

/*
 * Lettura del sistema remoto di protocollazione
 */
function _getWSTipoSistemaRemoto() {
	var servizio = $("#servizio").val();
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMRemote.do",
		data: "servizio=" + servizio,
		success: function(data){
			if (data) {
				$.map( data, function( item ) {
					$("#tiposistemaremoto").val(item[0]);
				});
        	}
		},
		error: function(e){
			alert("Errore durante la lettura della tipologia di sistema remoto");
		}
	});
}


/*
 * Lettura dell'utente e degli attributi per la connessione al servizio remoto
 * nella pagina di configurazione.
 */
function _getWSLoginConfigurazione(syscon,servizio,modo) {
		
	/*
	 * Lettura delle informazioni di login memorizzati nella 
	 * tabella WSLogin.
	 */
	var suffisso="Prot";
	if(servizio=="DOCUMENTALE")
		suffisso="Doc";
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSLogin.do",
		data: "syscon=" + syscon + "&servizio=" + servizio,
		success: function(data){
			if (data) {
				$.map( data, function( item ) {
					if(modo=="VIS")
						$("#username" + suffisso).html(item[0]);
					else
						$("#username" + suffisso).val(item[0]);
					
					if(item[1]!=null && item[1]!=""){
						var len = item[1].length;
						if(modo=="VIS"){
							if(len>0){
								var str="";
								for(var i=0;i<len;i++)
									str += "*";
								$("#pwd" + suffisso).html(str);
							}else{
								$("#pwd" + suffisso).html(item[1]);
							}
						}else{
							$("#pwd" + suffisso).val(item[1]);
						}
					}
					
					if(item[2]!=null && item[2]!=""){
						if(modo=="VIS"){
							//Il campo è tabellato, quindi si deve prendere la descrizione dal campo select nascosto
							$("#ruolo"+ suffisso + "Select").val(item[2]).attr("selected", "selected");
							$("#ruolo"+ suffisso).html($("#ruolo"+ suffisso + "Select option:selected").text());
						}else
							$("#ruolo"+ suffisso).val(item[2]).attr("selected", "selected");
					}
					
					if(modo=="VIS")
						$("#nome" + suffisso).html(item[3]);
					else
						$("#nome" + suffisso).val(item[3]);
					
					if(modo=="VIS")
						$("#cognome" + suffisso).html(item[4]);
					else
						$("#cognome" + suffisso).val(item[4]);	
					
					if(item[5]!=null && item[5]!=""){
						if(modo=="VIS"){
							//Il campo è tabellato, quindi si deve prendere la descrizione dal campo select nascosto
							$("#cuo"+ suffisso + "Select").val(item[5]).attr("selected", "selected");
							$("#cuo"+ suffisso).html($("#cuo"+ suffisso + "Select option:selected").text());
						}else
							$("#cuo" + suffisso).val(item[5]).attr("selected", "selected");
					}
					
					if(modo=="VIS")
						$("#idUtente" + suffisso).html(item[6]);
					else
						$("#idUtente" + suffisso).val(item[6]);
					
					if(modo=="VIS")
						$("#iduo" + suffisso).html(item[7]);
					else
						$("#iduo" + suffisso).val(item[7]);
				});
        	}
		},
		error: function(e){
			alert("Errore durante la lettura dell'utente e dei suoi attributi");
		}
	});
	
}

/*
 * Validazione del form della pagina di configurazionecon le credenziali 
 * per il collegamento al servizio remoto
 */
function _validateWSLoginConfigurazione() {
	$('form[name="formProprieta"]').validate({
		rules: {
			usernameProt: "required",
			pwdProt: "required",
			ruoloProt: "required",
			nomeProt: "required",
			cognomeProt: "required",
			cuoProt: "required",
			idUtenteProt: "required",
			iduoProt: "required",
			usernameDoc: "required",
			pwdDoc: "required",
			ruoloDoc: "required",
			nomeDoc: "required",
			cognomeDoc: "required",
			cuoDoc: "required",
			idUtenteDoc: "required",
			iduoDoc: "required"
		},
		messages: {
			usernameProt: "Specificare l'utente",
			pwdProt: "Specificare la password",
			ruoloProt: "Specificare il ruolo",
			nomeProt: "Specificare il nome",
			cognomeProt: "Specificare il cognome",
			cuoProt: "Specificare il codice dell'unit&agrave organizzativa",
			idUtenteProt: "Specificare l'identificativo dell'utente",
			iduoProt: "Specificare l'identificativo dell'unit&agrave; operativa",
			usernameDoc: "Specificare l'utente",
			pwdDoc: "Specificare la password",
			ruoloDoc: "Specificare il ruolo",
			nomeDoc: "Specificare il nome",
			cognomeDoc: "Specificare il cognome",
			cuoDoc: "Specificare il codice dell'unit&agrave organizzativa",
			idUtenteDoc: "Specificare l'identificativo dell'utente",
			iduoDoc: "Specificare l'identificativo dell'unit&agrave; operativa"
		},
		errorPlacement: function (error, element) {
			error.insertAfter($(element));
			error.css("margin-right","5px");
			error.css("float", "right");
			error.css("vertical-align", "top");
		}
	});
	
}

/*
 * Lettura del tabellato tipodocumento
 * I valori restituiti vengono filtrati in base al genere 
 */
function _popolaTabellatoTipodocumentoFiltrato() {
	var servizio = $("#servizio").val();
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMTabellato.do",
		data: "nome=tipodocumento&servizio=" + servizio +"&genereGara=" + _genereGara,
		success: function(data){
			if (data) {
				$("#" + id).append($("<option/>", {value: "" ,text: "" }));
				$.map( data, function( item ) {
					$("#" + id).append($("<option/>", {value: item[0], text: item[1] }));
				});
				
				//Se è presente un solo valore nel tabellato allora lo si seleziona
				if($("#" + id + " option").length == 2 ){
					$("#" + id + " option").eq(1).prop('selected', true);
				}
				
			}
		},
		error: function(e){
			alert("Errore durante la lettura del tabellato " + nome);
		}
	});
}

/*
 * Si determina, in base al genere della gara, il codice della gara
 */
function _getCodiceDellaGara(codice){
	var ret;
	if(_genereGara==1 || _genereGara==3){
		ret = _codiceGara;
	}else{
		ret = codice;
	}
	return ret;
}

/*
 * Lettura della descrione del tabellato identificato da "nome".
 * Viene valorizzato l'oggetto identificato da id, che può essere 
 * una select(tipo=1) oppure uno span(id=2)
 * 
 */
function _setDescrizioneCodiceTabellato(nome,valore, id, tipo) {
	var servizio = $("#servizio").val();
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetWSDMDescrizioneCodiceTabellato.do",
		data: "nome=" + nome + "&servizio=" + servizio + "&valore=" + valore,
		success: function(data){
			if (data) {
				if(tipo==1)
					$("#"+id).val(data.descrizione);
				else if(tipo==2)
					$("#"+id).text(data.descrizione);
				return data.descrizione;
			}
		},
		error: function(e){
			alert("Errore durante la lettura del tabellato " + nome);
		}
	});
}

function gestionemodificacampofascicolo(){
	$('#oggettofascicolonuovo').val('');
	$('#oggettofascicolo').text('');
	$('#classificafascicolonuovo').val('');
}

function gestioneletturafascicolo(){
	var codice = $("#codicefascicolo").val();
	if(codice!=null && codice!=""){
		_getWSDMFascicolo(false,0);
	}else{
		alert("Valorizzare il codice fascicolo");
	}
	
}

function gestioneletturafascicoloPrisma(){
	var anno = $("#annofascicolo").val();
	var numero = $("#numerofascicolo").val();
	var classifica = $("#classificafascicolonuovoPrisma").val();
	if(anno!=null && anno!="" && numero!=null && numero!="" && classifica!=null && classifica!=""){
		_getWSDMFascicolo(false,0);
	}else{
		alert("Valorizzare anno, numero e classifica del fascicolo");
	}
	
}

function gestionemodificacampoannofascicolo(){
	if($('#oggettofascicolo').text()!=null && $('#oggettofascicolo').text()!=""){
		$('#oggettofascicolonuovo').val('');
		$('#oggettofascicolo').text('');
		$('#classificafascicolonuovoPrisma').val('');
		$('#numerofascicolo').val('');
	}
	
}

function gestionemodificacamponumerofascicolo(){
	if($('#oggettofascicolo').text()!=null && $('#oggettofascicolo').text()!=""){
		$('#oggettofascicolonuovo').val('');
		$('#oggettofascicolo').text('');
		$('#classificafascicolonuovoPrisma').val('');
		$('#annofascicolo').val('');
	}
	
}

function gestionemodificacampoclassificafascicolo(){
	if($('#oggettofascicolo').text()!=null && $('#oggettofascicolo').text()!=""){
		$('#oggettofascicolonuovo').val('');
		$('#oggettofascicolo').text('');
		$('#annofascicolo').val('');
		$('#numerofascicolo').val('');
	}
}

function popolaClassificaFoliumDaCampi(categoria,classe,sottoclasse,sottosottoclasse,fascicoloFolium,titolare){
	var classifica=categoria+"."+classe+"."+sottoclasse+"."+sottosottoclasse+"."+fascicoloFolium+"."+titolare;
	$('#classificafascicolonuovo').find('option').not('[value=123]').remove();
	$("#classificafascicolonuovo").append($("<option/>", {value: classifica, text: classifica }));
	$("#classificafascicolonuovo option").eq(1).prop('selected', true);
	$('#classificadocumento').find('option').not('[value=123]').remove();
	$("#classificadocumento").append($("<option/>", {value: classifica, text: classifica }));
	$("#classificadocumento option").eq(1).prop('selected', true);
}

function _popolaTabellatoStrutturaDaServizio(){
	_wait();
	$.ajax({
		type: "POST",
		async: false,
		dataType: "json",
		url: "pg/GetWSDMListaUffici.do",
		data : {
			username: $("#username").val(),
			password: $("#password").val(),
			codiceaoo: $("#codiceaoonuovo option:selected").val(),
			ruolo: $("#ruolo option:selected").val(),
			servizio: $("#servizio").val()
			
		},
		success: function(json) {
			if (json) {
				if (json.esito == true) {
					//json.data contiene la lista dei valori degli uffici
					if (json.data != null) {
						$("#strutturaonuovo").append($("<option/>", {value: "" ,text: "" }));
						$.map( json.data, function( item ) {
							$("#strutturaonuovo").append($("<option/>", {value: item.codiceufficio, text: item.codiceufficio + " - " + item.descrizioneufficio }));
						});
						
						//Se è presente un solo valore nel tabellato allora lo si seleziona
						if($("#strutturaonuovo option").length == 2 ){
							$("#strutturaonuovo option").eq(1).prop('selected', true);
						}
						
						$('#strutturacompetentemessaggio').hide();
						_nowait();
					}
				} else {
					//var messaggio = "Non e' stato possibile caricare i valori del codice AOO dal servizio";
					var messaggio = json.messaggio;
					$('#strutturacompetentemessaggio').text(messaggio);
					$('#strutturacompetentemessaggio').show(tempo);	
					_nowait();
					$('#strutturaonuovo').empty();
				}
			}
		},
		error: function(e) {
			var messaggio = "Non e' stato possibile caricare i valori degli uffici dal servizio";
			$('#strutturacompetentemessaggio').text(messaggio);
			$('#strutturacompetentemessaggio').show(tempo);	
			_nowait();
			$('#strutturaonuovo').empty();
		}
	});
}

/*
 * Verifica se e' abilitata la gestione della struttura competente
 */
function _controlloGestioneStrutturaCompetente() {
	var ret;
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetW_CONFIGProperty.do",
		data : {
			codapp : $("#idprg").val(),
			chiave : "wsdm.gestioneStrutturaCompetente"
		}, 
		success: function(data){
			if (data) {
				_gestioneStrutturaCompetente=data.propertyW_CONFIG;
				ret = data.propertyW_CONFIG;
        	}
		},
		error: function(e) {
			alert("Errore durante la lettura della configurazione per stabilire se e' impostata la gestione della struttura competente");
		}
	});
	return ret;
}

function caricamentoStrutturaJIRIDE(){
	if($("#inserimentoinfascicolo").val()=="SI_FASCICOLO_NUOVO"){
		var ruolo = $("#ruolo option:selected").val();
		var username = $("#username").val();
		$('#strutturaonuovo').empty();
		if(ruolo!=null && ruolo!="" && username!=null && username!=""){
			_popolaTabellatoStrutturaDaServizio();
		}else{
			$('#codiceufficionuovo').empty();
		}
	}
}

function _getDescrizioneTabellatoStrutturaDaServizio(){
	_wait();
	$.ajax({
		type: "POST",
		async: false,
		dataType: "json",
		url: "pg/GetWSDMListaUffici.do",
		data : {
			username: $("#username").val(),
			password: $("#password").val(),
			codiceaoo: $("#strutturaonuovo option:selected").val(),
			ruolo: $("#ruolo option:selected").val(),
			servizio: $("#servizio").val()
			
		},
		success: function(json) {
			if (json) {
				if (json.esito == true) {
					//json.data contiene la lista dei valori degli uffici
					if (json.data != null) {
						
						$('struttura').text( json.data.descrizioneufficio);
						
						$('#strutturacompetentemessaggio').hide();
						_nowait();
					}
				} else {
					//var messaggio = "Non e' stato possibile caricare i valori del codice AOO dal servizio";
					var messaggio = json.messaggio;
					$('#strutturacompetentemessaggio').text(messaggio);
					$('#strutturacompetentemessaggio').show(tempo);	
					_nowait();
					
				}
			}
		},
		error: function(e) {
			var messaggio = "Non e' stato possibile caricare i valori degli uffici dal servizio";
			$('#strutturacompetentemessaggio').text(messaggio);
			$('#strutturacompetentemessaggio').show(tempo);	
			_nowait();
			
		}
	});
	
	

}

/*
 * Verifica se e' abilitato il blocco in modifica dell'indirizzo mittente
 */
function _controlloBloccoModificaIndirizzoMittente() {
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetW_CONFIGProperty.do",
		data : {
			codapp : $("#idprg").val(),
			chiave : "wsdm.bloccoIndirizzoMittente"
		}, 
		success: function(data){
			if (data) {
				_bloccoModificaIndirizzoMittenteAbilitata=data.propertyW_CONFIG;
        	}
		},
		error: function(e) {
			alert("Errore durante la lettura della configurazione per stabilire se e' impostatil blocco per la modifica dell'indirizzo mittente");
		}
	});
}

/*
 * Verifica se e' abilitata la gestione dell'associazione documento al protocollo
 */
function _controlloAssociaDocumentiProtocollo() {
	
	$.ajax({
		type: "POST",
		dataType: "json",
		async: false,
		beforeSend: function(x) {
			if(x && x.overrideMimeType) {
				x.overrideMimeType("application/json;charset=UTF-8");
			}
		},
		url: "pg/GetW_CONFIGProperty.do",
		data : {
			codapp : $("#idprg").val(),
			chiave : "wsdm.associaDocumentiProtocollo"
		}, 
		success: function(data){
			if (data) {
				_associazioneDocumentiProtocolloAbilitata=data.propertyW_CONFIG;
        	}
		},
		error: function(e) {
			alert("Errore durante la lettura della configurazione per stabilire se e' impostata l'associazione documenti al protocollo");
		}
	});
}

/*
 * La funzione viene adoperata per gestire i campi della pagina wslogin in modalità contratta,
 * quindi viene richiamata ogni volta che si espande o contrae il dettaglio.
 * Nel caso di login comune i campi devono essere bloccati; tale operazione non viene fatta all'interno
 * di questa funzione, poichè verrebbe eseguita ogni volta che si espande o contrae il dettaglio.
 * Quindi al caricamento della pagina in cui è inserita la wslogin si deve effettuare la chiamata a bloccaCampiLoginComune()
 * prima di questa funzione se è attivo il login comune 
 */
function _gestioneWSLoginContratto(visibile) {
	var tiposistemaremoto = $("#tiposistemaremoto").val();
	
	if(!visibile){
		$("#username").hide();
		$("#username").closest('tr').hide();
		$("#ruolo").hide();
		$("#ruolo").closest('tr').hide();
		$("#password").hide();
		$("#password").closest('tr').hide();
		$("#nome").hide();
		$("#nome").closest('tr').hide();
		$("#cognome").hide();
		$("#cognome").closest('tr').hide();
		$("#codiceuo").hide();
		$("#codiceuo").closest('tr').hide();
		$("#idutente").hide();
		$("#idutente").closest('tr').hide();
		$("#idutenteunop").hide();
		$("#idutenteunop").closest('tr').hide();
	}else{
		$("#username").show();
		$("#username").closest('tr').show();
		if(tiposistemaremoto!="JIRIDE" && tiposistemaremoto!="INFOR" && tiposistemaremoto!="PROTSERVICE" && tiposistemaremoto!="JPROTOCOL"){
			$("#password").show();
			$("#password").closest('tr').show();
		}
		if(tiposistemaremoto=="JIRIDE" || tiposistemaremoto=="PALEO"){
			if(_logincomune=="1"){
				$("#ruolo").hide();
				$("#ruolovisualizza").show();
				
			}else{
				$("#ruolo").show();
				$("#ruolovisualizza").hide();
			}
			$("#ruolo").closest('tr').show();
		}
		if(tiposistemaremoto=="PALEO"){
			$("#nome").show();
			$("#nome").closest('tr').show();
			$("#cognome").show();
			$("#cognome").closest('tr').show();
			
			if(_logincomune=="1"){
				$("#codiceuo").hide();
				$("#codiceuovisualizza").show();
			}else{
				$("#codiceuo").show();
				$("#codiceuovisualizza").hide();
			}
			
			$("#codiceuo").closest('tr').show();
		}
		if(tiposistemaremoto=="ENGINEERING"){
			$("#idutente").show();
			$("#idutente").closest('tr').show();
			$("#idutenteunop").show();
			$("#idutenteunop").closest('tr').show();
		}
	}	
}

/**
 * Inizializzazione del widget per la gestione del filtro nella lista del codice AOO per TITULUS
 * viene sfruttato il plugin autocomplete
 */
function _inizializzaCodiceAooFiltrato() {
    $.widget( "custom.comboboxAoo", {
      _create: function() {
        this.wrapper = $( "<span>" )
          .addClass( "custom-combobox" )
          .insertAfter( this.element );
 
        this.element.hide();
        this._createAutocomplete();
        this._createShowAllButton();
      },
 
      _createAutocomplete: function() {
        var selected = this.element.children( ":selected" ),
          value = selected.val() ? selected.text() : "";
 
        this.input = $( "<input>" )
          .appendTo( this.wrapper )
          .val( value )
          .attr( {id: "codiceaoo_filtro" , name:  "codiceaoo_filtro", size: "45"})
          .addClass( "custom-combobox-input ui-widget ui-widget-content  ui-corner-left" )
          .autocomplete({
            delay: 0,
            minLength: 0,
            source: $.proxy( this, "_source" )
          })
          .tooltip({
            classes: {
              "ui-tooltip": "ui-state-highlight"
            }
          });
 
        this._on( this.input, {
          autocompleteselect: function( event, ui ) {
            ui.item.option.selected = true;
            this._trigger( "select", event, {
              item: ui.item.option
            });
            $('#codiceaoonuovo').val(ui.item.option.value);
            $('#codiceaoonuovo').trigger("change");
            $('#codiceaoo_filtro').attr( "title", ui.item.option.text );
          },
 
          autocompletechange: "_removeIfInvalid"
        });
      },
 
      _createShowAllButton: function() {
        var input = this.input,
          wasOpen = false;
 
        $( "<a>" )
          .attr( "tabIndex", -1 )
          .attr( "title", "Visualizza tutto" )
          .tooltip()
          .appendTo( this.wrapper )
          .button({
            icons: {
              primary: "ui-icon-triangle-1-s"
            },
            text: false
          })
          .removeClass( "ui-corner-all" )
          .addClass( "custom-combobox-toggle ui-corner-right" )
          .on( "mousedown", function() {
            wasOpen = input.autocomplete( "widget" ).is( ":visible" );
          })
          .on( "click", function() {
            input.trigger( "focus" );
 
            // Close if already visible
            if ( wasOpen ) {
              return;
            }
 
            // Pass empty string as value to search for, displaying all results
            input.autocomplete( "search", "" );
          });
      },
 
      _source: function( request, response ) {
        var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
        response( this.element.children( "option" ).map(function() {
          var text = $( this ).text();
          if ( this.value && ( !request.term || matcher.test(text) ) )
            return {
              label: text,
              value: text,
              option: this
            };
        }) );
      },
 
      _removeIfInvalid: function( event, ui ) {
 
        // Selected an item, nothing to do
        if ( ui.item ) {
        	return;
        }else{
        	$('#codiceaoonuovo').val('');
        	$('#codiceufficionuovo').empty();
        	$('#codiceaoo_filtro').attr( "title", "" );
            $('#codiceufficio_filtro').val('');
            $('#codiceufficio_filtro').attr( "title", "" );
        }
 
        // Search for a match (case-insensitive)
        var value = this.input.val(),
          valueLowerCase = value.toLowerCase(),
          valid = false;
        this.element.children( "option" ).each(function() {
          if ( $( this ).text().toLowerCase() === valueLowerCase ) {
            this.selected = valid = true;
            return false;
          }
        });
 
        // Found a match, nothing to do
        if ( valid ) {
        	return;
        }
 
        // Remove invalid value
        this.input
          .val( "" )
          .attr( "title", "Codice " + value + " non trovato nell'elenco" )
          .tooltip( "open" );
        this.element.val( "" );
        this._delay(function() {
          this.input.tooltip( "close" ).attr( "title", "" );
        }, 2500 );
        this.input.autocomplete( "instance" ).term = "";
        
        //Si deve sbiancare se valorizzato codice codiceaoonuovo
        $('#codiceaoonuovo').val("");
        $('#codiceufficionuovo').empty();
        $('#codiceaoo_filtro').attr( "title", "" );
        $('#codiceufficio_filtro').val('');
        $('#codiceufficio_filtro').attr( "title", "" );
    	
      },
 
      _destroy: function() {
        this.wrapper.remove();
        this.element.show();
      }
    });
 
    $( "#codiceaoonuovo_filtro" ).comboboxAoo();
    
    $('.codiceaoo_filtro').tooltip().click(function() {
        $('.codiceaoo_filtro').tooltip( "close");
    });

  }


/**
 * Inizializzazione del widget per la gestione del filtro nella lista del codice ufficio per TITULUS
 * viene sfruttato il plugin autocomplete
 */
function _inizializzaCodiceUfficioFiltrato(){
	$.widget( "custom.comboboxUffici", {
	      _create: function() {
	        this.wrapper = $( "<span>" )
	          .addClass( "custom-combobox" )
	          .insertAfter( this.element );
	 
	        this.element.hide();
	        this._createAutocomplete();
	        this._createShowAllButton();
	      },
	 
	      _createAutocomplete: function() {
	        var selected = this.element.children( ":selected" ),
	          value = selected.val() ? selected.text() : "";
	 
	        this.input = $( "<input>" )
	          .appendTo( this.wrapper )
	          .val( value )
	          .attr( {id: "codiceufficio_filtro" , name:  "codiceufficio_filtro", size: "45", height:"20px"})
	          .addClass( "custom-combobox-input ui-widget ui-widget-content ui-corner-left" )
	          .autocomplete({
	            delay: 0,
	            minLength: 0,
	            source: $.proxy( this, "_source" )
	          })
	          .tooltip({
	            classes: {
	              "ui-tooltip": "ui-state-highlight"
	            }
	          });
	 
	        this._on( this.input, {
	          autocompleteselect: function( event, ui ) {
	            ui.item.option.selected = true;
	            this._trigger( "select", event, {
	              item: ui.item.option
	            });
	            $('#codiceufficionuovo').val(ui.item.option.value);
	            $('#codiceufficio_filtro').attr( "title", ui.item.option.text );
	          },
	 
	          autocompletechange: "_removeIfInvalid",
	          
	          change: function (){
	        	  var value = $('#codiceufficio_filtro').val();
	        	  if(value==null || value==""){
	        		//E' stato sbiancato il contenuto del campo, si deve sbiancare il codice ufficio
	  	        	$('#codiceufficionuovo').val('');
	        	  }
	          }
	        });
	      },
	 
	      _createShowAllButton: function() {
	        var input = this.input,
	          wasOpen = false;
	 
	        $( "<a>" )
	          .attr( "tabIndex", -1 )
	          .attr( "title", "Visualizza tutto" )
	          .tooltip()
	          .appendTo( this.wrapper )
	          .button({
	            icons: {
	              primary: "ui-icon-triangle-1-s"
	            },
	            text: false
	          })
	          .removeClass( "ui-corner-all" )
	          .addClass( "custom-combobox-toggle ui-corner-right" )
	          .on( "mousedown", function() {
	            wasOpen = input.autocomplete( "widget" ).is( ":visible" );
	          })
	          .on( "click", function() {
	            input.trigger( "focus" );
	 
	            // Close if already visible
	            if ( wasOpen ) {
	              return;
	            }
	 
	            // Pass empty string as value to search for, displaying all results
	            input.autocomplete( "search", "" );
	          });
	      },
	 
	      _source: function( request, response ) {
	        var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
	        response( this.element.children( "option" ).map(function() {
	          var text = $( this ).text();
	          if ( this.value && ( !request.term || matcher.test(text) ) )
	            return {
	              label: text,
	              value: text,
	              option: this
	            };
	        }) );
	      },
	 
	      _removeIfInvalid: function( event, ui ) {
	 
	        // Selected an item, nothing to do
	        if ( ui.item ) {
	        	return;
	        }
	 
	        // Search for a match (case-insensitive)
	        var value = this.input.val(),
	          valueLowerCase = value.toLowerCase(),
	          valid = false;
	        
	        /*
	        if(value=="" || value==null){
	        	//E' stato sbiancato il contenuto del campo, si deve sbiancare il codice ufficio
	        	$('#codiceufficionuovo').val('');
	        	return;
            }
            */
	        
	        this.element.children( "option" ).each(function() {
	          if ( $( this ).text().toLowerCase() === valueLowerCase ) {
	            this.selected = valid = true;
	            return false;
	          }
	        });
	 
	        // Found a match, nothing to do
	        if ( valid ) {
	        	return;
	        }
	 
	        // Remove invalid value
	        this.input
	          .val( "" )
	          .attr( "title", "Codice " + value + " non trovato nell'elenco" )
	          .tooltip( "open" );
	        this.element.val( "" );
	        this._delay(function() {
	          this.input.tooltip( "close" ).attr( "title", "" );
	        }, 2500 );
	        this.input.autocomplete( "instance" ).term = "";
	        
	        //Si deve sbiancare il codice codiceufficio
	        $('#codiceufficionuovo').val('');
	      },
	 
	      _destroy: function() {
	        this.wrapper.remove();
	        this.element.show();
	      }
	    });
	 
	    $( "#codiceufficionuovo_filtro" ).comboboxUffici();
	    
	    $('.codiceufficio_filtro').tooltip().click(function() {
	        $('.codiceufficio_filtro').tooltip( "close");
	    });
	        

}