var divSignatura;
var divTSA;
var MostraOnlyNom;
 
function VerificaCarrega(divid) {
	// Mostra el requadre d'espera
	$('.VerificaTxt',divid).hide();
	$('.VerificaWait',divid).show();
	$('.VerificaResposta',divid).html('');
	$(divid).removeClass("signaErr");
	$(divid).removeClass("signaOk");
	$(divid).show("normal");
}

function VerificaMostraResposta(divid, text, ok) {
	$('.VerificaWait',divid).hide();
	$(divid).removeClass("signaErr");
	$(divid).removeClass("signaOk");
	
	if (ok)
		$(divid).addClass("signaOk"); // Mostra les dades i canvia el color de la finestra a verd
	else
		$(divid).addClass("signaErr"); // Mostra un missateg d'error i canvia el color de la finestra a vermell
		
	$('.VerificaResposta',divid).html(text);
	$('.VerificaTxt',divid).show();
}

/* Parametres:	divSignatura_param -> Div que conté el retorn de la Signatura
				divTSA_param -> Div que conté el retorn del TSA
				MostraOnlyNom_param -> Si true en la resposta de la signatura només mostra el nom del signatari
*/
function Verifica(divSignatura_param, divTSA_param, MostraOnlyNom_param) {
	divSignatura = divSignatura_param;
	divTSA = divTSA_param;
	MostraOnlyNom = MostraOnlyNom_param;
	
	// Validació de la Signatura Digital
	var formSigna = window.document.forms["formSigna"];
	if (formSigna) {
		// Comprova que el registre tingui Signatura
		if (formSigna.Signatura) {
			if (formSigna.Signatura.value!="") {
				VerificaCarrega($("#" + divSignatura).get(0));			
				var optionsValidaSignatura = {
					success:  ValidaSignatura_Retorn, 
					dataType:  'xml',
					type: 'POST'
				};
				$('#formSigna').ajaxSubmit(optionsValidaSignatura);
			}
		}
	}
	
	// Validació del TSA
	var formTSA = window.document.forms["formTSA"];
	if (formTSA) {
		// Comprova que el registre tingui Signatura
		if (formTSA.Segell) {
			if (formTSA.Segell.value!="") {
				VerificaCarrega($("#" + divTSA).get(0));
				var optionsValidaTSA = {
					success:  ValidaTSA_Retorn, 
					dataType:  'xml',
					type: 'POST'
				};
				$('#formTSA').ajaxSubmit(optionsValidaTSA);
			}
		}
	}
	
	return false;
}

// Recupera el resultat de la validació de la signatura
function ValidaSignatura_Retorn(responseXML) {
	// Obté les dades de la persona que ha signat el document
	var Signador = $(responseXML).find('dss\\:SignerIdentity').get(0);
	if (Signador) {
		var Signatura = $(Signador).text().replace(/,/g, "<br/>");
		if (MostraOnlyNom) {
			Signatura = Signatura.substring(Signatura.indexOf('CN=')+3	,Signatura.indexOf('<br/>'));
		}
		VerificaMostraResposta($("#" + divSignatura).get(0), Signatura, true);
	} else 
		VerificaMostraResposta($("#" + divSignatura).get(0), txt_msg_Err_Signatura, false);
}

// Obte la resposta de la validació
function ValidaTSA_Retorn(responseXML) {
	// Obté les dades del temps del TSA
	var TSA = $('dss\\:SigningTime',responseXML).text();
	if (TSA!="") {
		var data = DateFromISOString(TSA); // Funció de la llibreria ostynscormtime.js
		var data_txt = data.getUTCDate() + "/" + data.getUTCMonth() + "/" + data.getUTCFullYear() + " " + data.getUTCHours() + ':' + data.getUTCMinutes() + ' GMT' + (-(data.getTimezoneOffset()/60)>0?'+':'') + -(data.getTimezoneOffset()/60);
		
		VerificaMostraResposta($("#" + divTSA).get(0), data_txt, true);
	} else
		VerificaMostraResposta($("#" + divTSA).get(0), txt_msg_Err_TSA, false);
}
