# .functions

export TITLE_TXT TITLE_HTML SSI_HEAD SSI_BODY BODY_STYLE \
		 tipo TIPO TMP_FORM_FILE SET_COOKIE CONNECTION_CLOSE NUM_START NUM_END NUM_DOC FOR_PAGE pagina_corrente link_paginazione

write_SSI() {

	if [ ! -d $DIR_SSI ]; then
		mkdir -p $DIR_SSI
	fi

   EXIT_VALUE=0

	if [ -z "$BODY_SHTML" ]; then
		TITLE_TXT="Bad Request"
		TITLE_HTML="Bad Request"

		HEAD_HTML=""
		BODY_SHTML="<p>Your browser sent a request that this server could not understand<br></p>"

      EXIT_VALUE=1
	fi

	echo -n -e "$SSI_HEAD" > $SSI_FILE_HEAD
	echo -n -e "$SSI_BODY" > $SSI_FILE_BODY

	echo	  -e "TITLE_TXT=$TITLE_TXT\nTITLE_HTML=$TITLE_HTML\nBODY_STYLE=$BODY_STYLE"

	exit $EXIT_VALUE
}

view_menu() {

   TITLE_TXT="RA station"
   TITLE_HTML="RA station"

   HEAD_HTML=""
   BODY_SHTML="
<blockquote>
<h2>Choose policy</h2>
<blockquote>
  <a href=\"/card-generation\">Generazione carte</a>
</blockquote>
<blockquote>
  <a href=\"/registrazione-business\">Registrazione utente business</a>
</blockquote>
<blockquote>
  <a href=\"/registrazione-residenziale-con-cpe\">Registrazione utente residenziale con CPE</a>
</blockquote>
</blockquote>"
}

card_generation() {

   TITLE_TXT="RA station"
   TITLE_HTML="GENERAZIONE CARTE<br>T-UNWIRED FLAT"

   HEAD_HTML="<script type=\"text/javascript\" src=\"/js/livevalidation_standalone.js\"></script>"
   BODY_SHTML="<!--#include direct=$DIR_TEMPLATE/card-generation.body -->"
}

load_value_session() {

	if [ -f "$1" ]; then
		i=0
		while read LINE
		do
			LINE=${LINE//\"/\\\"}

			eval v$i=\"$LINE\"

			let "i = i + 1"
		done < $1
	fi
}

load_value_session_with_xml_escape() {

	if [ -f "$1" ]; then
		i=0
		while read LINE
		do
			LINE=${LINE//&/&amp;}
			LINE=${LINE//</&lt;}
			LINE=${LINE//>/&gt;}
			LINE=${LINE//\'/&apos;}
			LINE=${LINE//\"/&quot;}

			eval v$i=\"$LINE\"

			let "i = i + 1"
		done < $1
	fi
}

send_MAIL() {

	# 1 -> NAME
	# 2 -> DIR_SCAN (opt)

	if [ ! -f /tmp/$1.eml ]; then
		exit 1
	fi

	if [ ! -d $DIR_MAIL ]; then
		mkdir -p $DIR_MAIL
	fi

	cd $DIR_MAIL

	  TO=`head /tmp/$1.eml | grep To   | cut -d' ' -f2 | tr -d "[:space:]"`
	FROM=`head /tmp/$1.eml | grep From | cut -d' ' -f2 | tr -d "[:space:]"`

	if [ ! -f $1.p7m ]; then
		openssl smime -in /tmp/$1.eml -sign -signer $RA_OPERATOR_CERTIFICATE -inkey $RA_OPERATOR_KEY -nodetach -binary -outform SMIME >$1.p7m 2>/dev/null

		if [ $? -eq 0 ]; then
			rm -f /tmp/$1.eml

			if [ -n "$2" ]; then
				rm -f $2/*.tiff $2/*.png $2/*.pdf $2/*.pnm $2/*.jpg
			fi
		fi

		# command for extract mail
		# openssl smime -verify -noverify -in $1.p7m > /tmp/$1.eml
	fi

	# --------------------------------------------
	# smtp configuration
	# --------------------------------------------
	# TEST
	# openssl s_client -connect $SMTP_HOST:$SMTP_PORT -starttls smtp
	# exit 0
	# --------------------------------------------

	msmtp --tls=on --tls-certcheck=off --tls-min-dh-prime-bits=512 \
			--host="$SMTP_HOST" --port="$SMTP_PORT" --from="$FROM" -- "$TO" < $1.p7m >/dev/null 2>&1

	if [ $? -eq 0 ]; then
		#rm -f $1.p7m
		exit 0
	fi

	exit 1
}

send_MAIL_and_goto_MAIN_MENU() {

	# 1 -> NAME
	# 2 -> DIR_SCAN (opt)

	coproc send_MAIL $1 $2 &

	view_menu
}

save_value_session() {

	DIR_DATA=`dirname $TMP_FORM_FILE`

	if [ ! -d $DIR_DATA ]; then
		mkdir -p $DIR_DATA
	fi

	cat <<END >$TMP_FORM_FILE
$1
$2
$3
$4
$5
$6
$7
$8
$9
${10}
${11}
${12}
${13}
${14}
${15}
${16}
${17}
${18}
${19}
${20}
${21}
${22}
${23}
${24}
${25}
${26}
${27}
${28}
${29}
${30}
${31}
${32}
${33}
${34}
END
}

set_TIPO() {

	if [ -z "$TIPO" ]; then
		case "$REQUEST_URI" in
			 *business)
				tipo="business"
				TIPO="BUSINESS"
				TMP_FORM_FILE="$DIR_FORM_DATA/registrazione-business.curr"
			 ;;
			 *cpe)
				tipo="residenziale-con-cpe"
				TIPO="RESIDENZIALE CON CPE"
				TMP_FORM_FILE="$DIR_FORM_DATA/registrazione-residenziale-con-cpe.curr"
			 ;;
			 *)
			 exit 2
			 ;;
		esac
	fi

	if [ -n "$1" ]; then
		printf -v TITLE_HTML "$1" "$TIPO"
	fi
}

view_form_input() {

	TITLE_TXT="RA station"

	# eventuali dati pre form input

	load_value_session $HOME/etc/$REQUEST_URI.default

	load_value_session /tmp/$REQUEST_URI.prev

	set_TIPO "MODULO DI ADESIONE<br>ABBONAMENTO %s<br>T-UNWIRED FLAT"

	if [ "$TIPO" = "BUSINESS" ]; then

		HEAD_HTML="
<script type=\"text/javascript\" src=\"/js/livevalidation_standalone.js\"></script>
<script type=\"text/javascript\"> function compose_cn()				{ document.form.cn.value = document.form.rappresentante_legale.value; }</script>
<script type=\"text/javascript\"> function compose_destinazione() {
	document.form.spedizione_destinazione.value = document.form.ragione_sociale.value + \" \" + document.form.rappresentante_legale.value; }</script>"

		# --------------------------------------
		# value to skip: (input type select)
		# --------------------------------------
		# "contratto_profilo	= $v23"
		# --------------------------------------

		printf -v BODY_SHTML "`cat $DIR_TEMPLATE/registrazione-business.tmpl`" \
									"$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" "${v14}" \
									"${v15}" "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}"          "${v24}"

	else

		HEAD_HTML="
<script type=\"text/javascript\" src=\"/js/livevalidation_standalone.js\"></script>
<script type=\"text/javascript\"> function compose_email() {
	document.form.cpe_emailAddress.value = document.form.dati_utente_nome.value.toLowerCase() + \".\" +
	document.form.dati_utente_cognome.value.toLowerCase() + \"@\" + document.form.dominio.value; }</script>
<script type=\"text/javascript\"> function compose_email_spedizione_fattura() {
	if (document.form.spedizione_emailAddress.value == '')
		document.form.spedizione_emailAddress.value = document.form.dati_utente_nome.value.toLowerCase() + \".\" +
		document.form.dati_utente_cognome.value.toLowerCase() + \"@\" + document.form.dominio.value; }</script>
<script type=\"text/javascript\"> function compose_destinazione() {
	document.form.spedizione_destinazione.value = document.form.dati_utente_nome.value + \" \" + document.form.dati_utente_cognome.value; }</script>"

		# --------------------------------------
		# value to skip: (input type select)
		# --------------------------------------
		# "dati_utente_sesso					= $v5"
		# "dati_utente_tipo_di_documento = $v11"
		# "dominio								= $v29"
		# --------------------------------------

		printf -v BODY_SHTML "`cat $DIR_TEMPLATE/registrazione-residenziale-con-cpe.tmpl`" \
									"$v1" "$v2" "$v3" "$v4"       "$v6" "$v7" "$v8" "$v9" "${v10}"          "${v12}" "${v13}" "${v14}" \
									"${v15}" "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" \
									"${v25}" "${v26}" "${v27}" "${v28}"          "${v30}"

	fi
}

visualizza_contratto() {

	set_TIPO "MODULO DI ADESIONE<br>ABBONAMENTO %s<br>T-UNWIRED FLAT"

	if [ $# -ge 25 ]; then
		save_value_session "" "$@"
	fi

	load_value_session $TMP_FORM_FILE

	case "$REQUEST_URI" in
		/stampa-contratto-*)
         BODY_STYLE='onload="printpage()"'
			HEAD_HTML="<script type=\"text/javascript\"> function printpage() { window.print(); window.close(); }</script>"
		;;
		*)
			HEAD_HTML="<script type=\"text/javascript\" src=\"/js/stampa.js\"></script>"

			if [ ! -f $DIR_SCAN/page01.tiff ]; then
				DISABLE=disabled
			fi

			printf -v FORM_BOTTONI "`cat $DIR_TEMPLATE/contratto-bottoni.tmpl`" $REQUEST_URI "$ATTIVA_SCANSIONE_MULTIPLA" "$DISABLE" $tipo "$DISABLE"
		;;
	esac

	if [ "$TIPO" = "BUSINESS" ]; then

		TITLE_TXT="Contratto business"

		# --------------------------------------
		# value to skip
		# --------------------------------------
		# "cn				= $11"
		# "email_altro = $12"
		# --------------------------------------

		printf -v BODY_SHTML "`cat $DIR_TEMPLATE/contratto-registrazione-business.tmpl`" \
									"$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}"                   "${v13}" \
									"${v14}" "${v15}" "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" \
									"$FORM_BOTTONI"

	else

		TITLE_TXT="Contratto residenziale con cpe"

		printf -v BODY_SHTML "`cat $DIR_TEMPLATE/contratto-registrazione-residenziale-con-cpe.tmpl`" \
									"$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" \
									"${v14}" "${v15}" "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" \
									"${v25}" "${v26}" "${v27}" "${v28}" \
									"$FORM_BOTTONI"

	fi
}

visualizza_rid() {

	set_TIPO "R.I.D.<br>AUTORIZZAZIONE PERMANENTE DI ADDEBITO IN CONTO PER RICHIESTE DI INCASSO"

	load_value_session $TMP_FORM_FILE

	TITLE_TXT="RID"

	case "$REQUEST_URI" in
		/stampa-rid-business)
         BODY_STYLE='onload="printpage()"'
			HEAD_HTML="<script type=\"text/javascript\"> function printpage() { window.print(); window.close(); }</script>"

			CODICE=$v7
		;;
		/stampa-rid-residenziale-con-cpe)
         BODY_STYLE='onload="printpage()"'
			HEAD_HTML="<script type=\"text/javascript\"> function printpage() { window.print(); window.close(); }</script>"

			CODICE=$v6
		;;
		*business)
			HEAD_HTML="<script type=\"text/javascript\" src=\"/js/stampa.js\"></script>"

			CODICE=$v7

			printf -v FORM_BOTTONI "`cat $DIR_TEMPLATE/rid-bottoni.tmpl`" $REQUEST_URI $tipo
		;;
		*cpe)
			HEAD_HTML="<script type=\"text/javascript\" src=\"/js/stampa.js\"></script>"

			CODICE=$v6

			printf -v FORM_BOTTONI "`cat $DIR_TEMPLATE/rid-bottoni.tmpl`" $REQUEST_URI $tipo
		;;
	esac

	if [ "$TIPO" = "BUSINESS" ]; then
		printf -v BODY_SHTML	"`cat $DIR_TEMPLATE/rid.tmpl`" TRIMESTRALE "$CODICE" "$FORM_BOTTONI"
	else
		printf -v BODY_SHTML	"`cat $DIR_TEMPLATE/rid.tmpl`" MENSILE     "$CODICE" "$FORM_BOTTONI"
	fi
}

errore() {

	TITLE_TXT="Error"
	HEAD_HTML=""

	set_TIPO "MODULO DI ADESIONE<br>ABBONAMENTO %s<br>T-UNWIRED FLAT"

	printf -v BODY_SHTML "`cat $DIR_TEMPLATE/error.tmpl`" "$1" "$DEVICE_SCANNER" "$2" $REQUEST_URI
}

errore_scansione() {

	errore "Errore in scansione documento" "`scanimage -L 2>/dev/null`"
}

# ---------------------------------------------------------------------------------------------
# scanimage --help -d $DEVICE_SCANNER
# ---------------------------------------------------------------------------------------------
# Options specific to device `net:ra-station:hpaio:/usb/HP_LaserJet_3055?serial=00CNCK343927':
#  Scan mode:
#    --mode Lineart|Gray|Color [Color]
#        Selects the scan mode (e.g., lineart, monochrome, or color).
#    --resolution 75|100|150|200|300|600|1200dpi [75]
#        Sets the resolution of the scanned image.
#  Advanced:
#    --contrast 0..100 [inactive]
#        Controls the contrast of the acquired image.
#    --compression None|JPEG [JPEG]
#        Selects the scanner compression method for faster scans, possibly at
#        the expense of image quality.
#    --jpeg-quality 0..100 [10]
#        Sets the scanner JPEG compression factor. Larger numbers mean better
#        compression, and smaller numbers mean better image quality.
#    --batch-scan[=(yes|no)] [no]
#        Enables continuous scanning with automatic document feeder (ADF).
#    --source Auto|ADF [Auto]
#        Selects the scan source (such as a document-feeder).
#  Geometry:
#    --length-measurement Unknown|Unlimited|Approximate|Padded [Padded]
#        Selects how the scanned image length is measured and reported, which
#        is impossible to know in advance for scrollfed scans.
#    -l 0..228.6mm [0]
#        Top-left x position of scan area.
#    -t 0..381mm [0]
#        Top-left y position of scan area.
#    -x 0..228.6mm [228.6]
#        Width of scan-area.
#    -y 0..381mm [381]
#        Height of scan-area.
# ---------------------------------------------------------------------------------------------
# X=210
# Y=297
# SCANMODE=Lineart
# --------------------------------------------------
# RESOLUTION=75
# --------------------------------------------------
# 72K prova.tiff
# 20K prova.pdf
# 16K prova.png
# X=210 Y=297 Image Width: 621 Image Length: 876
#
# 96K prova.tiff
# 20K prova.pdf
# 20K prova.png
# X=228.6 Y=381 Image Width: 640 Image Length: 1125
# --------------------------------------------------
# RESOLUTION=200
# --------------------------------------------------
# 480K prova.tiff
#  64K prova.pdf
#  40K prova.png
# X=210 Y=297 Image Width: 1654 Image Length: 2338
# --------------------------------------------------
# RESOLUTION=300
# --------------------------------------------------
# 1.1M prova.tiff
#  76K prova.pdf
#  60K prova.png
# X=210 Y=297 Image Width: 2481 Image Length: 3507
# --------------------------------------------------
# RESOLUTION=600
# --------------------------------------------------
# 4.2M prova.tiff
# 84K  prova.pdf
# 56K  prova.png
# X=210 Y=297 Image Width: 4961 Image Length: 7015
# --------------------------------------------------

reset_scansione() {

	rm -f $DIR_SCAN/*.png  \
			$DIR_SCAN/*.jpg  \
			$DIR_SCAN/*.pnm  \
			$DIR_SCAN/*.tiff

	visualizza_contratto
}

rascan_image() {

	# $1 -> parametri scansione multipla (opt)

#	X=210				  # A4
#	Y=297				  # A4
#	RESOLUTION=$1	  # 75|100|150|200|300|600|1200dpi [75]
#	SCANMODE=Lineart # 1-bit multipage TIFF

# 	set -x

   if [ ! -d $DIR_SCAN ]; then
      mkdir -p $DIR_SCAN
   fi

	NUM_PAGE=`ls -f $DIR_SCAN/page[0-9]*.tiff 2>/dev/null | wc -l`

	let "NUM_DOC = $NUM_PAGE + 1"

	rm -f /tmp/scan.log

	if [ -n "$1" ]; then
		OUTPUT=/tmp/scan.log
		SCANIMAGE_PARAM="$SCANIMAGE_MULTI_PARAM --batch-start=$NUM_DOC"
	else
		printf -v OUTPUT "$DIR_SCAN/page%02d.tiff" $NUM_DOC
		SCANIMAGE_PARAM=$SCANIMAGE_SINGLE_PARAM
	fi

	scanimage -d $DEVICE_SCANNER --format=tiff --mode $SCANMODE --resolution $RESOLUTION -x $X -y $Y $1 $SCANIMAGE_PARAM > $OUTPUT 2>&1
	
	NUM_DOC=`ls -f $DIR_SCAN/page[0-9]*.tiff 2>/dev/null | wc -l`

	if [ $NUM_DOC -eq 0 ]; then
		errore_scansione
	else
		set_TIPO

		load_value_session $TMP_FORM_FILE

		save_value_session $NUM_DOC \
			 "$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" "${v14}" "${v15}" \
			 "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" "${v25}" "${v26}" "${v27}" "${v28}" "${v29}" "${v30}" "${v31}"

		FOR_PAGE=1

		set_paginazione 1

		view_page
	fi
}

rascan_image_multipla()
{
	rascan_image "--batch=$DIR_SCAN/page%02d.tiff --source ADF"
}

rascan_image_singola() {

	rascan_image
}

view_page() {

	printf -v FILE $DIR_SCAN/page%02d $pagina_corrente

	if [ ! -f $FILE.tiff ]; then
		errore_scansione
	fi

	if [ "$SCANMODE" = "Lineart" ]; then
		IMG_TYPE=png
	else
		IMG_TYPE=jpg
	fi

	if [ ! -f $FILE.$IMG_TYPE ]; then

		# Create the page PNG file
		#
		# Lineart|Gray|Color [Color] scan mode (e.g., lineart, monochrome, or color).

		if [ "$SCANMODE" = "Lineart" ]; then
			fax2png $FILE.tiff $FILE.png -w 621 -a >/dev/null 2>&1

			optimize_image_bin $FILE.png $FILE.png
		else
			tifftopnm				 $FILE.tiff >$FILE.pnm 2>/dev/null
			pnmtojpeg -quality=50 $FILE.pnm  >$FILE.jpg 2>/dev/null
		#	pnmtopng					 $FILE.pnm  >$FILE.png 2>/dev/null
		fi
	fi

	if [ ! -f $FILE.$IMG_TYPE ]; then
		errore "Errore in conversione formato immagine scansione"
	else
		TITLE_TXT="Risultato scansione"
		HEAD_HTML=""

		set_TIPO "RISULTATO SCANSIONE<br>ABBONAMENTO %s<br>T-UNWIRED FLAT"

		BODY_SHTML="<img src=\"${FILE:${#DOCUMENT_ROOT}}.$IMG_TYPE\">
<form method=\"post\" action=\"$REQUEST_URI\">
<table><tr><td><div class=\"paging\">$link_paginazione</div></td><td>
<input type=\"submit\" name=\"submit\" value=\"Visualizza contratto\"></td></tr></table></form>"
	fi
}

view_page_prepare() {

	set_TIPO

	load_value_session $TMP_FORM_FILE

	FOR_PAGE=1
	NUM_DOC=$v0

	if [ -z "$NUM_DOC" ]; then

		NUM_DOC=`ls -f $DIR_SCAN/page[0-9]*.tiff 2>/dev/null | wc -l`

		save_value_session $NUM_DOC \
			 "$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" "${v14}" "${v15}" \
			 "${v16}" "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" "${v25}" "${v26}" "${v27}" "${v28}" "${v29}" "${v30}" "${v31}"

	fi
}

view_page_image() {

# 	set -x

	view_page_prepare

	set_paginazione $1

	view_page
}

registrazione_contratto() {

# 	set -x

	set_TIPO

	load_value_session_with_xml_escape $TMP_FORM_FILE

	# load specific script env, for signing and sending message to workflow...

	. $HOME/etc/$REQUEST_URI.conf

	# create PDF...

	tiffcp -a $DIR_SCAN/page[0-9]*.tiff $DIR_SCAN/out.tiff >/dev/null 2>&1

	tiff2pdf -p A4 -q 30 -j $DIR_SCAN/out.tiff >$DIR_SCAN/out.pdf	2>/dev/null  # Creating PDF file...

	PDF=`openssl base64 -in $DIR_SCAN/out.pdf -e 2>/dev/null`						 # ...and convert in base64

	NAME=send_to_$$

	if [ "$TIPO" = "BUSINESS" ]; then

		printf "`cat $DIR_TEMPLATE/mail/mail-business.tmpl`"             "$WORKFLOW_SUBJECT" "$WORKFLOW_FROM_ADDRESS" "$WORKFLOW_TO_ADDRESS" \
			 "$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" "${v14}" "${v15}" "${v16}" \
			 "${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}"                                             "$NETWORK" \
			 "$PDF" > /tmp/$NAME.eml

	else

		printf "`cat $DIR_TEMPLATE/mail/mail-residenziale-con-cpe.tmpl`" "$WORKFLOW_SUBJECT" "$WORKFLOW_FROM_ADDRESS" "$WORKFLOW_TO_ADDRESS" \
			"$v1" "$v2" "$v3" "$v4" "$v5" "$v6" "$v7" "$v8" "$v9" "${v10}" "${v11}" "${v12}" "${v13}" "${v14}" "${v15}" "${v16}" \
			"${v17}" "${v18}" "${v19}" "${v20}" "${v21}" "${v22}" "${v23}" "${v24}" "${v25}" "${v26}" "${v27}" "${v28}" "${v30}" "$NETWORK" \
			"$PDF" > /tmp/$NAME.eml
	fi

	send_MAIL_and_goto_MAIN_MENU $NAME $DIR_SCAN
}

send_MAIL_for_card_generation() {

#  set -x

	# 1 -> dati_numero_carte	100
	# 2 -> tipo_validita			G
	# 3 -> dati_validita			30

	case "$2" in
		 M)
			let "VALIDITA = $3 * 60"
		 ;;
		 O)
			let "VALIDITA = $3 * 60 * 60"
		 ;;
		 G)
			let "VALIDITA = $3 * 24 * 60 * 60"
		 ;;
		 A)
			let "VALIDITA = $3 * 365 * 24 * 60 * 60"
		 ;;
		 *)
		 exit 2
		 ;;
	esac

	# load specific script env, for signing and sending message to workflow...

	. $HOME/etc/card-generation.conf

	NAME=send_to_$$

	printf "`cat $DIR_TEMPLATE/mail/card-generation.tmpl`" \
			 "$WORKFLOW_SUBJECT" "$WORKFLOW_FROM_ADDRESS" "$WORKFLOW_TO_ADDRESS" "$1" "$VALIDITA" > /tmp/$NAME.eml

	send_MAIL_and_goto_MAIN_MENU $NAME
}

# funzioni che creano i link alle pagine dei risultati
# ----------------------------------------------------

crea_link() {

	if [ $pagina_corrente -eq $1 ]; then
		ADD="<span class=\"pnow\">$1</span>"
	else
		ADD="<a href=\"?page=$1\" class=\"pnum\">$1</a>"
	fi

	link_paginazione=$link_paginazione$ADD" "
}

set_paginazione() {

	pagina_corrente=$1

	if [ $NUM_DOC -le $FOR_PAGE ]; then

		if [ $NUM_DOC -eq 0 ]; then
			NUM_START=0
		else
			NUM_START=1
		fi

		NUM_END=$NUM_DOC

 		link_paginazione="<span class=\"void\">PREV</span><span class=\"void\">NEXT</span>"

		return

	fi

	let "pagina_precedente = $pagina_corrente - 1"
	let "pagina_successiva = $pagina_corrente + 1"

	let "tot_pagine = $NUM_DOC / $FOR_PAGE"
	let "resto		 = $NUM_DOC % $FOR_PAGE"

	if [ $resto -ne 0 ]; then
		let "tot_pagine = $tot_pagine + 1"
	fi

	let "ultima_pagina = $tot_pagine - 1"
	let "penultima_pagina = $ultima_pagina - 1"

	# link alla pagina precedente

	if [ $pagina_corrente -eq 1 ]; then
		NUM_START=1

 		link_paginazione="<span class=\"void\">PREV</span> "
	else
		let "NUM_START = 1 + $pagina_precedente * $FOR_PAGE"

 		link_paginazione="<a href=\"?page=$pagina_precedente\" class=\"pnum\">PREV</a> "
	fi

	# mostriamo sempre il link alla prima pagina

	crea_link 1

	# se il prossimo link non  alla seconda pagina aggiungo dei puntini ... oppure la sola pagina mancante

	if [ $pagina_precedente -gt 2 ]; then

		if [ $pagina_precedente -eq 3 ]; then
			crea_link 2
		else
			link_paginazione=$link_paginazione" ... "
		fi

	fi

	# creo i link alla pagina corrente ed a quelle ad essa vicine

	for (( i=$pagina_precedente; i<=$pagina_successiva; i+=1 )); do

		# se tra quelle vicine c' la prima pagina (gi riportata)

		if [ $i -lt 2 ]; then
			continue
		fi

		# se tra quelle vicine c' l'ultima pagina (che mostrer con le prossime istruzioni)

		if [ $i -gt $ultima_pagina ]; then
			continue
		fi

		crea_link $i
	done

	# se il precedente link non era alla penultima pagina aggiungo dei puntini ... oppure la sola pagina mancante

	if [ $pagina_successiva -lt $ultima_pagina ]; then

		if [ $pagina_successiva -eq $penultima_pagina ]; then
			crea_link $ultima_pagina
		else
			link_paginazione=$link_paginazione" ... "
		fi

	fi

	# mostriamo il link all'ultima pagina se questa non coincide con la prima

	if [ $tot_pagine -ne 1 ]; then
		crea_link $tot_pagine
	fi

	# link alla pagina successiva

	if [ $pagina_corrente -eq $tot_pagine ]; then
		NUM_END=$NUM_DOC

		link_paginazione=$link_paginazione"<span class=\"void\">NEXT</span>"
	else
		let "NUM_END = $NUM_START + $FOR_PAGE - 1"

		link_paginazione=$link_paginazione"<a href=\"?page=$pagina_successiva\" class=\"pnum\">NEXT</a>"
	fi
}

# ------------------------------------------------------
