$(document).ready(function() {
	$('#header input.tipsvalue').focus(function(){
		$(this).val('').removeClass('tipsvalue');
	});
	$('#header input').blur(function(){
		if($(this).val()==''){
			$(this).val($(this).attr('tipsvalue')).addClass('tipsvalue');
		}
	});
});

function addScript (src) {
	var tag = document.createElement('script');
	tag.src = src;
	tag.type = 'text/javascript';
	document.getElementsByTagName('head')[0].appendChild(tag);
}

function padding(s,l) { return( l.substr(0, (l.length-s.length) )+s ); }

/* UTENTE */
// http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/
var emailRe = /^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i;

function check_registrazione(){
	var errs=0; 
	
	// campi obbligatori
	$('#registrazione .required input, #registrazione .required select').each(function (i) {
		if ($(this).val()=='') {
			if (errs++==0) $(this).focus();
			$(this).parent().addClass('error');
		}
		else{
			$(this).parent().removeClass('error');
		}
	});
	if (errs>0) return msg_utente('warning','Compilare tutti i dati obbligatori per procedere.');

	// campi email
	if (errs==0) {
		$('#registrazione .email input').each(function (i) {
			if (!emailRe.test($(this).val())) {
				$(this).parent().addClass('error');
				if (errs++==0) $(this).focus();
			}
		});
	};
	if (errs>0) return msg_utente('error','Indirizzo email non valido.');

	// campi codice fiscale o partita iva
	if (errs==0) {
		$('#registrazione .fiscal_code_vat input').each(function (i) {
			msg = ControllaCF($(this).val());
			if ($(this).val()!='' && msg!='') {
				msg2=ControllaPIVA($(this).val());
				if ($(this).val()!='' && msg2!=''){
					$(this).parent().addClass('error');
					if (errs++==0) $(this).focus();
				}
				else{
					$(this).parent().removeClass('error');
				}
			}
		});
	};
	if (errs>0) return msg_utente('error','Codice fiscale non valido.');

	// campi codice fiscale
	if (errs==0) {
		$('#registrazione .fiscal_code input').each(function (i) {
			msg = ControllaCF($(this).val());
			if ($(this).val()!='' && msg!='') {
				$(this).parent().addClass('error');
				if (errs++==0) $(this).focus();
			}
			else{
				$(this).parent().removeClass('error');
			}
		});
	};
	if (errs>0) return msg_utente('error','Codice fiscale non valido.');

	// campi partita iva
	if (errs==0) {
		$('#registrazione .vat_number input').each(function (i) {
			msg = ControllaPIVA($(this).val());
			if ($(this).val()!='' && msg!='') {
				$(this).parent().addClass('error');
				if (errs++==0) $(this).focus();
			}
			else{
				$(this).parent().removeClass('error');
			}
		});
	};
	if (errs>0) return msg_utente('error','Partita Iva non valida.');
	
	if (errs==0) return true;
	return false;
}

function ControllaCF(cf){
	var validi, i, s, set1, set2, setpari, setdisp;
	if( cf == '' )  return '';
	cf = cf.toUpperCase();
	if( cf.length != 16 )
		return "La lunghezza del codice fiscale non e'\n"
		+"corretta: il codice fiscale dovrebbe essere lungo\n"
		+"esattamente 16 caratteri.\n";
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ ){
		if( validi.indexOf( cf.charAt(i) ) == -1 )
			return "Il codice fiscale contiene un carattere non valido `" +
				cf.charAt(i) +
				"'.\nI caratteri validi sono le lettere e le cifre.\n";
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	if( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
		return "Il codice fiscale non e' corretto:\n"+
			"il codice di controllo non corrisponde.\n";
	return "";
}

function ControllaPIVA(pi){
	if( pi == '' )  return '';
	if( pi.length != 11 )
		return "La lunghezza della partita IVA non e'\n" +
			"corretta: la partita IVA dovrebbe essere lunga\n" +
			"esattamente 11 caratteri.\n";
	validi = "0123456789";
	for( i = 0; i < 11; i++ ){
		if( validi.indexOf( pi.charAt(i) ) == -1 )
			return "La partita IVA contiene un carattere non valido `" +
				pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
		return "La partita IVA non e' valida:\n" +
			"il codice di controllo non corrisponde.\n";
	return '';
}

function ControllaEmail(value){
	return emailRe.test(value);
}

function msg_utente(msg_class, msg_text){
	//alert(msg_class+','+msg_text);
	$('.msg').removeClass('msg_error');
	$('.msg').removeClass('msg_warning');

	$('.msg').addClass('msg_'+msg_class);
	$('.msg p').html('<span></span>'+msg_text);
	$('.msg').removeClass('msg_off');

	return false;
}

function geturl(req) {
	var url=''
	url +=$('body').data('baseUrl');
	url += req;
	url +='&htr='+ Math.random();
	return url;
}

function messaggi_list_initialize(){
	var pageCurrent = $('body').data('pageCurrent');
	var pageAll = $('body').data('pageAll');

	$('.button_prev').unbind('click');
	$('.button_next').unbind('click');

	if (pageCurrent<pageAll){
		$('.button_next').removeClass('disabled');
		$('.button_next').click(function(){
			var p = parseInt($('body').data('pageCurrent'))+1;
			$.get(geturl('utente/messaggi.action?page='+p));
		});
	}
	else{
		$('.button_next').addClass('disabled');
	}

	if (pageCurrent>1){
		$('.button_prev').removeClass('disabled');
		$('.button_prev').click(function(){
			var p = parseInt($('body').data('pageCurrent'))-1;
			$.get(geturl('utente/messaggi.action?page='+p));
		});
	}
	else{
		$('.button_prev').addClass('disabled');
	}

	$('.messaggi li a').click(function(){
		var message_uid = $(this).attr('message_uid');
		$.get(geturl('utente/messaggi.action?message_uid='+message_uid));
		return false;
	});
	
	$('.sidebox .msg_nuovi strong').html($('body').data('msgUnread'));
	$('.toolbar .msg_nuovi strong').html($('body').data('msgUnread'));
	$('.toolbar .msg_totale strong').html($('body').data('msgAll'));
}

function messaggi_list_refresh(){
	var pageCurrent = $('body').data('pageCurrent');
	$.get(geturl('utente/messaggi.action?page='+pageCurrent));
}


function collegate_list_initialize(){
	$('.button_iscrivi').unbind('click');
	$('.button_rimuovi').unbind('click');
	$('.button_add').unbind('click');

	$('.button_rimuovi').click(function(){
		var nome = $(this).attr('nome');
		if (confirm('Confermi la rimozione di '+nome+' dalla lista delle persone collegate alla scuola?')){
			var child = $(this).attr('persona');
			$.get(geturl('collegate/unlink.action?child_uid='+child));
		}
		return false;
	});

	$('.button_add').click(function(){
		$.get(geturl('collegate/aggiungi.action?step=1'));
	});
}

function collegate_list_refresh(){
}

function check_aggiungi_collegate(){
	var errs=0; 
	
	// campi obbligatori
	$('#aggiungi_collegate .required input').each(function (i) {
		if ($(this).val()=='') {
			if (errs++==0) $(this).focus();
			$(this).parent().addClass('error');
		}
		else{
			$(this).parent().removeClass('error');
		}
	});
	if (errs>0) return msg_utente('warning','Compilare tutti i dati obbligatori per procedere.');

	// campi email
	if (errs==0) {
		$('#aggiungi_collegate .email input').each(function (i) {
			if (!emailRe.test($(this).val())) {
				$(this).parent().addClass('error');
				if (errs++==0) $(this).focus();
			}
		});
	};
	if (errs>0) return msg_utente('error','Indirizzo email non valido.');

	// campi codice fiscale
	if (errs==0) {
		$('#aggiungi_collegate .fiscal_code input').each(function (i) {
			msg = ControllaCF($(this).val());
			if ($(this).val()!='' && msg!='') {
				$(this).parent().addClass('error');
				if (errs++==0) $(this).focus();
			}
			else{
				$(this).parent().removeClass('error');
			}
		});
	};
	if (errs>0) return msg_utente('error','Codice fiscale non valido.');

	if (errs==0) {
		$.post(geturl('collegate/aggiungi.action?step=1'), $('#aggiungi_collegate').serialize());
		return false;		
	};
	return false;
}

function AbilitaVNFC(){
	var v=$(this).val();
	if (v=='VN'){
		$('#field_partitaiva').removeClass('disabled');
		$('#field_partitaiva').removeAttr('disabled');
		$('#field_partitaiva').focus();
	}
	else{
		$('#field_partitaiva').val('');
		$('#field_partitaiva').addClass('disabled');
		$('#field_partitaiva').attr('disabled','disabled');
	}
}

function moduliSetMessage(msg_pointer,msg_class,msg_title,msg_text){
	$('#'+msg_pointer+' div').removeClass();
	$('#'+msg_pointer+' div').addClass(msg_class);
	$('#'+msg_pointer+' div').html(msg_text);
	$('input[name='+msg_pointer+']').val(msg_text);
	return;
}

function moduliShowMessage(msg_class,msg_text){
	fullOverlay('hide','');
	alert(msg_text);
	return false;
}

function check_modulo_cessazione(){
	fullOverlay('show','Verifica in corso...');
	var errs=0; 
	
	// Nominativo dipendente
	if($('#cessazione select[name=dipendente]').length>0){
		if($('#cessazione select[name=dipendente]').val()==''){
			$('#cessazione select[name=dipendente]').focus();
			return moduliShowMessage('warning','Selezionare il Nominativo del dipendente');
		}
		if($('#cessazione select[name=dipendente]').val()=='ALTRO' && $('#cessazione input[name=nominativo]').val()==''){
			$('#cessazione input[name=nominativo]').focus();
			return moduliShowMessage('warning','Inserire Cognome e Nome del dipendente non in elenco');
		}
	}
	else{
		if($('#cessazione input[name=nominativo]').val()==''){
			$('#cessazione input[name=nominativo]').focus();
			return moduliShowMessage('warning','Inserire il nominativo del dipendente');
		}
	}

	// Titolo
	if($('#cessazione select[name=titolo]').val()==''){
		$('#cessazione select[name=titolo]').focus();
		return moduliShowMessage('warning','Selezionare il Titolo di Studio.');
	}

	// Data
	if($('#cessazione input[name=data_cessazione]').val()==''){
		$('#cessazione input[name=data_cessazione]').focus();
		return moduliShowMessage('warning','Inserire la data di cessazione');
	}

	// Motivazione
	if($('#cessazione select[name=causa]').val()==''){
		$('#cessazione select[name=causa]').focus();
		return moduliShowMessage('warning','Selezionare la Motivazione.');
	}
	if($('#cessazione select[name=causa]').val()=='ALTRO' && $('#cessazione input[name=motivazione]').val()==''){
		$('#cessazione input[name=motivazione]').focus();
		return moduliShowMessage('warning','Inserire la Motivazione non compresa nella lista');
	}

	// Compilato da
	if($('#cessazione input[name=compilatore]').val()==''){
		$('#cessazione input[name=compilatore]').focus();
		return moduliShowMessage('warning','Inserire il nominativo di chi ha compilato il modulo');
	}
	
	fullOverlay('show','Invio in corso...');
	return true;
}


function check_modulo_assunzione(){
	fullOverlay('show','Verifica in corso...');
	var errs=0;
	var frm='#assunzione';

	// campi obbligatori
	var errs=0;
	$('#assunzione .required input, #assunzione .required select').each(function (i) {
		if ($(this).val()=='') {
			errs++;
			$(this).focus();
			return moduliShowMessage('warning','Inserire "'+$(this).attr('title')+'"');
		}
	});
	if (errs>0) return false;

	// Codice Fiscale
	if(ControllaCF($('#assunzione input[name=codice_fiscale]').val())!=''){
		$('#assunzione input[name=codice_fiscale]').focus();
		return moduliShowMessage('warning','Codice fiscale non valido');
	}

	if (!ControllaRichiesto(frm,'select[name=titolo]','Selezionare il Titolo di Studio')) return false;
	if (!ControllaRichiesto(frm,'input[name=data_assunzione]','Inserire la Data di assunzione')) return false;
	if (!ControllaRichiesto(frm,'input[name=qualifica_mansioni]','Inserire la Qualifica e le Mansioni')) return false;
	if (!ControllaRichiesto(frm,'select[name=assunzione]','Selezionare il Tipo di assunzione')) return false;

	// Tipo di assunzione
	switch ($(frm+' select[name=assunzione]').val()){
		case "SOS-01":
		case "SOS-02":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da sostituire')) return false;
			}
			break;			 
		case "SOS-03":
		case "SOS-04":
		case "SOS-05":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da sostituire')) return false;
			}
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "SOS-06":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da sostituire')) return false;
			}
		case "DET-03":
			if (!ControllaRichiesto(frm,'#inputAltro input','Inserire il motivo')) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "DET-01":
			if (!ControllaRichiesto(frm,'#inputSperimentale input',"Inserire la attivita' sperimentale")) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "DET-02":
			if (!ControllaRichiesto(frm,'#inputDisabile select',"Selezionare genere e anno del disabile")) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
	} 

	// Orario di lavoro
	var orario_lavoro=$(frm+' input[name=orario_lavoro]:checked').val();
	if(orario_lavoro==undefined){
		$(frm+' input[name=orario_lavoro]:first').focus();
		return moduliShowMessage('warning','Selezionare l\'orario di lavoro');
	}

	// Distribuzione orario settimanale
	var ore=$(frm+' .numero_ore').html();
	if(ore=='' || ore=='0'){
		$(frm+' input[name=ore_01]').focus();
		return moduliShowMessage('warning','Inserire la distribuzione dell\'orario settimanale');
	}
	
	// Orario settimanale
	if (!ControllaRichiesto(frm,'input[name=assunzione]','Inserire l\'orario settimanale')) return false;
	
	// Utilizzo mezzo
	if (!ControllaRichiesto(frm,'select[name=trasporto]','Indicare se il dipendente utilizza un mezzo di trasporto durante l\'orario di lavoro')) return false;
	switch ($(frm+' select[name=trasporto]').val()){
		case "TRA-01":
		case "TRA-02":
			if (!ControllaRichiesto(frm,'#inputMezzi input',"Inserire i mezzi di trasporto utilizzati durante l'orario di lavoro")) return false;
			break;
		case "TRA-03":
			if (!ControllaRichiesto(frm,'#inputTrasporto input',"Inserire il motivo di utilizzo dei mzzi di trasporto durante l'orario di lavoro")) return false;			 
			if (!ControllaRichiesto(frm,'#inputMezzi input',"Inserire i mezzi di trasporto utilizzati durante l'orario di lavoro")) return false; 
			break;
	} 

	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;
	fullOverlay('show','Invio in corso...');
	
	return true;
}

function check_modulo_variazione(){
	fullOverlay('show','Verifica in corso...');
	var errs=0;
	var frm='#variazione';

	// Nominativo dipendente
	if($(frm+' select[name=dipendente]').length>0){
		if (!ControllaRichiesto(frm,'select[name=dipendente]','Selezionare il Nominativo del dipendente')) return false;
		if($(frm+' select[name=dipendente]').val()=='ALTRO'){
			if (!ControllaRichiesto(frm,'input[name=nominativo]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
		}
	}
	else{
		if (!ControllaRichiesto(frm,'input[name=nominativo]','Inserire il nominativo del dipendente')) return false;
	}

	if (!ControllaRichiesto(frm,'select[name=titolo]','Selezionare il Titolo di Studio')) return false;
	if (!ControllaRichiesto(frm,'input[name=data_variazione]','Inserire la Data di decorrenza della variazione')) return false;
	if (!ControllaRichiesto(frm,'select[name=selTipo]','Selezionare il tipo di variazione')) return false;

	// Tipo di assunzione
	switch ($(frm+' select[name=selTipo]').val()){
		case "SOS-01":
		case "SOS-02":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da sostituire')) return false;
			}
			break;			 
		case "SOS-03":
		case "SOS-04":
		case "SOS-05":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da dipendente da sostituire')) return false;
			}
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "SOS-06":
			if($(frm+' select[name=sostituto]').length>0){
				if (!ControllaRichiesto(frm,'select[name=sostituto]','Selezionare il Nominativo del dipendente da sostituire')) return false;
				if($(frm+' select[name=sostituto]').val()=='ALTRO'){
					if (!ControllaRichiesto(frm,'input[name=inputSostituto]','Inserire Cognome e Nome del dipendente non in elenco')) return false;
				}
			}
			else{
				if (!ControllaRichiesto(frm,'#inputDipendenteSostituto input','Inserire il dipendente da sostituire')) return false;
			}
		case "DET-03":
			if (!ControllaRichiesto(frm,'#inputAltro input','Inserire il motivo')) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "DET-01":
			if (!ControllaRichiesto(frm,'#inputSperimentale input',"Inserire la attivita' sperimentale")) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
		case "DET-02":
			if (!ControllaRichiesto(frm,'#inputDisabile select',"Selezionare genere e anno del disabile")) return false;
			if (!ControllaRichiesto(frm,'#inputDataFine input','Inserire la data di termine della assunzione')) return false;
			break;
	} 

	var variacounter=0;
	if($(frm+' input[name=tipo_variazione_orario]').attr('checked')){
		variacounter++;
		if (!ControllaRichiesto(frm,'input[name=ore_settimanali_prec]','Inserire le ore settimanali precedenti')) return false;
		if (!ControllaRichiesto(frm,'input[name=ore_settimanali]','Inserire le ore settimanali a cui variare')) return false;
		var ore=$(frm+' .numero_ore').html();
		if(ore=='' || ore=='0'){
			$(frm+' input[name=ore_01]').focus();
			return moduliShowMessage('warning','Inserire la nuova distribuzione dell\'orario settimanale');
		}
	}

	if($(frm+' input[name=tipo_variazione_mansioni]').attr('checked')){
		variacounter++;
		if (!ControllaRichiesto(frm,'#selMansioni',"Selezionare il tipo di variazione della mansione")) return false;
		if (!ControllaRichiesto(frm,'#inputMansione input',"Inserire la mansione")) return false;
	}

	if($(frm+' input[name=tipo_variazione_contratto]').attr('checked')){
		variacounter++;
		if (!ControllaRichiesto(frm,'#selContratti',"Selezionare il tipo di variazione del contratto")) return false;
	}

	if($(frm+' input[name=conferma_indeterminato]').attr('checked')){
		variacounter++;
	}

	if($(frm+' input[name=proroga_scadenza]').attr('checked')){
		variacounter++;
		if (!ControllaRichiesto(frm,'input[name=proroga_dal]',"Inserire la data di inizio della proroga di scadenza")) return false;
		if (!ControllaRichiesto(frm,'input[name=proroga_al]',"Inserire la data di fine della proroga di scadenza")) return false;
	}
	
	if (variacounter==0){
		moduliShowMessage('warning','Selezionare almeno una Variazione');
		return false;
	}

	var variazione_richiesta=$(frm+' input[name=variazione_richiesta]:checked').val();
	if(variazione_richiesta==undefined){
		$(frm+' input[name=variazione_richiesta]:first').focus();
		return moduliShowMessage('warning','Selezionare chi ha richiesto la variazione');
	}


	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;
	
	fullOverlay('show','Invio in corso...');
	return true;
}


function check_modulo_coordinatrice(){
	fullOverlay('show','Verifica in corso...');
	var errs=0;
	var frm='#coordinatrice';

	// Sezioni
	var materna=$(frm+' input[name=sezioni_materna]').val();
	var nido=$(frm+' input[name=sezioni_nido]').val();
	if ( (materna=='' || materna=='0') && (nido=='' || nido=='0')){
		$(frm+' input[name=sezioni_materna]').focus()
		moduliShowMessage('warning','Inserire il numero di sezione per nido, materna o entrambi');
		return false;
	}
	
	// Nominativo dipendente
	if($(frm+' select[name=dipendente]').length>0){
		if (!ControllaRichiesto(frm,'select[name=dipendente]','Selezionare un Nominativo')) return false;
		if ($(frm+' select[name=dipendente]').val()=='ALTRO'){
			if (!ControllaRichiesto(frm,'input[name=nominativo]','Inserire Cognome e Nome')) return false;
		}
	}
	else{
		if (!ControllaRichiesto(frm,'input[name=nominativo]','Inserire Cognome e Nome')) return false;
	}

	// Stato
	var stato=$(frm+' input[name=stato]:checked').val();
	if(stato==undefined){
		$(frm+' input[name=stato]:first').focus();
		return moduliShowMessage('warning','Selezionare se la coordinatrice e\' Religiosa o Laica');
	}

	// Insegnamento
	var insegnamento=$(frm+' input[name=insegnamento]:checked').val();
	if(insegnamento==undefined){
		$(frm+' input[name=insegnamento]:first').focus();
		return moduliShowMessage('warning','Selezionare se la coordinatrice ha anche l\'insegnamento');
	}

	// Coordina
	var coordina=$(frm+' input[name=coordina]:checked').val();
	if(coordina==undefined){
		$(frm+' input[name=coordina]:first').focus();
		return moduliShowMessage('warning','Selezionare se la coordinatrice Coordina nido, materna o entrambe');
	}

	// Decorrenza
	if (!ControllaRichiesto(frm,'select[name=selDecorrenza]','Selezionare la decorrenza dell\'incarico')) return false;
	if ($(frm+' select[name=selDecorrenza]').val()=='DEC-02'){
		if (!ControllaRichiesto(frm,'input[name=inputDataDecorrenza]','Inserire la data di decorrenza dell\'incarico')) return false;
	}

	// Temporaneo
	if (!ControllaRichiesto(frm,'select[name=selTemporaneo]','Selezionare de l\'incarico e\' temporaneo')) return false;
	if ($(frm+' select[name=selTemporaneo]').val()=='TEM-01'){
		if (!ControllaRichiesto(frm,'input[name=inputTemporaneo]','Inserire il motivo per cui l\'incarico e\' temporaneo')) return false;
	}

	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;
	
	fullOverlay('show','Invio in corso...');
	return true;
}

function check_modulo_richiestabilancio(){
	var errs=0;
	var frm='#richiestabilancio';
	if (!ControllaRichiesto(frm,'input[name=attivita]','Inserire la attivita\' per la quale si richiede la elaborazione')) return false;
	if (!ControllaRichiesto(frm,'select[name=selRichiesta]','Selezionare il bilancio che si vuole richiedere')) return false;
	var v=$(frm+' select[name=selRichiesta]').val();
	if(v.substr(0,3)=='PRE'){
		if (!ControllaRichiesto(frm,'input[name=mesi]','Inserire la durata dell\'anno scolastico')) return false;
		if (!ControllaRichiesto(frm,'input[name=bambini]','Inserire il numero di bambini previsti')) return false;
		if (!ControllaRichiesto(frm,'input[name=sezioni]','Inserire il numero di sezioni previste')) return false;
		if (!ControllaRichiesto(frm,'input[name=contributo]','Inserire il contributo previsto dal comune')) return false;
		if (!ControllaRichiesto(frm,'input[name=retta_attuale]','Inserire la retta ATTUALE')) return false;
		if (!ControllaRichiesto(frm,'input[name=retta_prevista]','Inserire la retta PREVISTA')) return false;
	}
	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;
	return true;
}

function check_modulo_calcoloretta(){
	var errs=0;
	var frm='#calcoloretta';
	if (!ControllaRichiesto(frm,'input[name=costi]','Inserire i costi')) return false;
	if (!ControllaRichiesto(frm,'input[name=ricavi]','Inserire i ricavi')) return false;
	if (!ControllaRichiesto(frm,'input[name=mesi]','Inserire i mesi')) return false;
	if (!ControllaRichiesto(frm,'input[name=bambini]','Inserire i bambini')) return false;
	return true;
}

function check_modulo_richiestaretta(){
	var errs=0;
	var frm='#richiestaretta';

	if (!ControllaRichiesto(frm,'input[name=mesi]','Inserire la durata dell\'anno scolastico')) return false;
	if (!ControllaRichiesto(frm,'input[name=bambini]','Inserire il numero di bambini previsti')) return false;
	if (!ControllaRichiesto(frm,'input[name=sezioni]','Inserire il numero di sezioni previste')) return false;
	if (!ControllaRichiesto(frm,'input[name=contributo]','Inserire il contributo previsto dal comune')) return false;
	if (!ControllaRichiesto(frm,'input[name=retta]','Inserire la retta attuale')) return false;

	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;

	return true;
}

function check_modulo_denuncia(){
	fullOverlay('show','Verifica in corso...');
	var errs=0;
	var frm='#denuncia';

	if (!ControllaRichiesto(frm,'input[name=data_sinistro]','Inserire la data del sinistro')) return false;
	if (!ControllaRichiesto(frm,'input[name=ora_sinistro]','Inserire l\'ora del sinistro')) return false;
	if (!ControllaRichiesto(frm,'textarea[name=luogo_sinistro]','Inserire il luogo del sinistro')) return false;
	if (!ControllaRichiesto(frm,'textarea[name=descrizione_sinistro]','Inserire la descrizione del sinistro')) return false;
	if (!ControllaRichiesto(frm,'textarea[name=testimoni_sinistro]','Inserire i testimoni del sinistro')) return false;
	
	if (!ControllaRichiesto(frm,'input[name=nominativo_cognome]','Inserire il cognome del danneggiato')) return false;
	if (!ControllaRichiesto(frm,'input[name=nominativo_nome]','Inserire il nome del danneggiato')) return false;
	if (!ControllaRichiesto(frm,'input[name=nato_il]','Inserire la data di nascita del danneggiato')) return false;
	if (!ControllaRichiesto(frm,'input[name=nominativo_codice_fiscale]','Inserire il codice fiscale del danneggiato')) return false;

	msg = ControllaCF($(frm+' input[name=nominativo_codice_fiscale]').val());
	if (msg!=''){
		$(frm+' input[name=nominativo_codice_fiscale]').focus()
		moduliShowMessage('warning','Codice fiscale del danneggiato non valido');
		return false;
	}	

	if (!ControllaRichiesto(frm,'input[name=residenza_comune]','Inserire il comune di residenza del danneggiato')) return false;
	if (!ControllaRichiesto(frm,'input[name=residenza_provincia]','Inserire la provincia di residenza del danneggiato')) return false;
	if (!ControllaRichiesto(frm,'input[name=residenza_cap]','Inserire il cap di residenza del danneggiato')) return false;	
	if (!ControllaRichiesto(frm,'input[name=residenza_indirizzo]','Inserire l\'indirizzo del danneggiato')) return false;	
	if (!ControllaRichiesto(frm,'input[name=telefono]','Inserire il telefono')) return false;
	if (!ControllaRichiesto(frm,'input[name=email]','Inserire la email')) return false;

	if (!ControllaRichiesto(frm,'select[name=qualita]','Inserire la qualita del danneggiato')) return false;
	// Tipo di assunzione
	switch ($(frm+' select[name=qualita]').val()){
		case "QUA-01":
			if (!ControllaRichiesto(frm,'input[name=genitore_cognome]','Inserire il cognome del genitore')) return false;
			if (!ControllaRichiesto(frm,'input[name=genitore_nome]','Inserire il nome del genitore')) return false;
			if (!ControllaRichiesto(frm,'input[name=genitore_codice_fiscale]','Inserire il codice fiscale del genitore')) return false;		
			msg = ControllaCF($(frm+' input[name=genitore_codice_fiscale]').val());
			if (msg!=''){
				$(frm+' input[name=genitore_codice_fiscale]').focus()
				moduliShowMessage('warning','Codice fiscale del genitore non valido');
				return false;
			}	
			break;
		case "QUA-04":
			if (!ControllaRichiesto(frm,'input[name=inputAltro]','Inserire la qualita\' del danneggiato')) return false;
			break;
	}


	// Eventuale liquidazione
	var liquidazione=$(frm+' input[name=liquidazione]:checked').val();
	if(liquidazione==undefined){
		$(frm+' input[name=liquidazione]:first').focus();
		return moduliShowMessage('warning','Selezionare la modalita\' della eventuale liquidazione');
	}

	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;

	fullOverlay('show','Invio in corso...');
	return true;
}

function check_adesione(){
	fullOverlay('show','Verifica in corso...');
	var errs=0;
	var frm='#adesione';

	// Iscrizioni negative solo se non Š un operatore fism
	if($('input[name="operatore_fism"]',frm).length==0){
		if($('input.modulo_error',frm).length>0){
			moduliShowMessage('warning','Non e\' possibile diminuire il numero di assicurati tramite questo modulo online.\r\nContattare Punto FISM per questa operazione.');
			$('input.modulo_error:first',frm).focus();
			return false;		
		}
	}

	// Totale iscrizione
	var numero=0;
	$('.alunni_table input',frm).each(function(i){
		if ($(this).val()!=''){
			if (isNaN($(this).val())){
				$(this).val('');
			}
			else{
					numero += parseInt($(this).val(),10);
			}
		}	
	});
	if (numero==0){
		moduliShowMessage('warning','Inserire almeno un alunno o un addetto');
		return false;
	}

	// Compilato da
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato il modulo')) return false;

	fullOverlay('show','Invio in corso...');
	return true;
}

function ControllaRichiesto(frm,fld,msg){
	if($(frm+' '+fld).val()==''){
		$(frm+' '+fld).focus()
		moduliShowMessage('warning',msg);
		return false;
	}
	return true
}

function check_modulo_richiestaevacuazione(){
	var errs=0;
	var frm='#richiestaevacuazione';
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato la richiesta')) return false;
	return true;
}

function check_modulo_richiestavisita(){
	var errs=0;
	var frm='#richiestavisita';
	if (!ControllaRichiesto(frm,'input[name=compilatore]','Inserire il nominativo di chi ha compilato la richiesta')) return false;
	return true;
}

function fullOverlay(act,message){
	if (act=='show' || act==''){
		$('#fullOverlay').show();	
		$('#fullLoading span').html(message); 
		$('#fullLoading').show();
	}
	else{
		$('#fullOverlay').hide();	
		$('#fullLoading').hide();
	}
	return false;
}

