function refreshimage_login () {
	nd = new Date ();
	t = "?" + nd.getTime ();
	document.getElementById ("verifica_login").src = document.getElementById ("verifica_login").src + t;
}

function refreshimage_commenti () {
	nd = new Date ();
	t = "?" + nd.getTime ();
	document.getElementById ("verifica_commento").src = document.getElementById ("verifica_commento").src + t;
}

function viewimage(image_src) {
	document.getElementById ("View_Image").src = image_src;
}

function check_login (form) {
	if (form.login.value == "") {
		alert ("Non è stato immesso il nome utente.");
		form.login.focus ();
		return false;
	}
	if (form.password.value == "") {
		alert ("La password non può essere vuota.");
		form.password.focus ();
		return false;
	}
	if (form.captcha.value == "") {
		alert ("Non è stato inserito il codice di controllo.");
		form.captcha.focus ();
		return false;
	}
	return true;
}

function check_ins_commento (form) {
	if (form.testo.value == "") {
		alert ("Non è stato immesso il testo del commento.");
		form.testo.focus ();
		return false;
	}
	if (form.autore_id.value == "7" && form.name == "CommentForm") {
		if (form.captcha.value == "") {
			alert ("Non è stato inserito il codice di controllo.");
			form.captcha.focus ();
			return false;
		}
	}
	return true;
}

function check_ins_post (form) {
	if (form.titolo.value == "") {
		alert ("Non è stato inserito il titolo dell'intervento.");
		form.titolo.focus ();
		return false;
	}
	if (form.testo.value == "") {
		alert ("Non è stato inserito il testo dell'intervento.");
		form.testo.focus ();
		return false;
	}
	return true;
}

function check_ins_book (form) {
	var isbn_10 = form.isbn10.value;
	var isbn_13 = form.isbn13.value;
	var pagine = form.pagine.value;
	var prezzo = form.prezzo.value;
	var dt_ini = form.data_inizio_hidden.value;
	var dt_end = form.data_fine_hidden.value;
	var isbn_check = 0;
	var isbn_check_digit = "";
	var isbn_format = new RegExp("^[0-9]+[0-9X]$");
	var numeric_format = new RegExp("^[1-9]+[0-9]");
	var currency_format = new RegExp("^[0-9]+\.\[0-9]{2}$");
	isbn_10 = isbn_10.replace(/ /g, "");
	isbn_10 = isbn_10.replace(/-/g, "");
	isbn_10 = isbn_10.replace(/x/g, "X");
	isbn_13 = isbn_13.replace(/ /g, "");
	isbn_13 = isbn_13.replace(/-/g, "");
	isbn_13 = isbn_13.replace(/x/g, "X");
	prezzo = prezzo.replace(/,/g, ".");
	if (form.titolo.value == "") {
		alert ("Non è stato inserito il titolo del libro.");
		form.titolo.focus ();
		return false;
	}
	if (form.autore.value == "") {
		alert ("Non è stato inserito il autore del libro.");
		form.autore.focus ();
		return false;
	}
	if (form.editore.value == "") {
		alert ("Non è stato inserito l'editore del libro.");
		form.editore.focus ();
		return false;
	}
	if (form.trama.value == "") {
		alert ("Non è stata inserita la quarta di copertina.");
		form.trama.focus ();
		return false;
	}
	if (pagine != "") {
		if (!numeric_format.test(pagine)) {
			alert ("Il valore specificato come numero di pagine non è valido.\nI valori accettati sono numeri interi positivi maggiori di 0.");
			form.pagine.focus ();
			return false;
		}
	}
	if (prezzo != "") {
		if (!currency_format.test(prezzo)) {
			alert ("Il valore specificato come prezzo non è valido.");
			form.prezzo.focus ();
			return false;
		}
	}
	if (dt_ini != "") {
		var data_inizio = new Date(dt_ini.substr(6, 4), dt_ini.substr(3, 2) - 1, dt_ini.substr(0, 2));
		var data_fine = new Date();
		if (data_fine < data_inizio) {
			alert ("La data di inizio lettura non può essere successiva alla data odierna.");
			return false;
		}
	}
	if (dt_ini != "" && dt_end != "") {
		var data_inizio = new Date(dt_ini.substr(6, 4), dt_ini.substr(3, 2) - 1, dt_ini.substr(0, 2));
		var data_fine = new Date(dt_end.substr(6, 4), dt_end.substr(3, 2) - 1, dt_end.substr(0, 2));
		if (data_fine < data_inizio) {
			alert ("La data di fine lettura non può essere antecedente alla data di inizio lettura.");
			return false;
		}
	}
	if (isbn_10 != "") {
		if (!isbn_format.test(isbn_10)) {
			alert ("Il valore specificato di ISBN non è valido.\nNon è un formato valido di ISBN.");
			form.isbn10.focus ();
			return false;
		} else if (isbn_10.length != 10) {
			alert ("Il valore specificato di ISBN non è valido.\nLa lunghezza dell'ISBN deve essere di 10 caratteri.");
			form.isbn10.focus ();
			return false;
		} else {
			isbn_check = 0;
			for (var J = 10; J > 1; J--) {
				isbn_check = isbn_check + (isbn_10.substr(10 - J, 1) * J);
			}
			isbn_check = 11 - (isbn_check % 11);
			if (isbn_check == 11) {
				isbn_check_digit = 0;
			} else if (isbn_check == 10) {
				isbn_check_digit = "X";
			} else {
				isbn_check_digit = isbn_check;
			}
			if (isbn_check_digit != isbn_10.substr(9, 1)) {
				alert ("Il valore specificato di ISBN non è valido.\nIl carattere di controllo non è corretto.");
				form.isbn10.focus ();
				return false;
			}
		}
	}
	if (isbn_13 != "") {
		if (!isbn_format.test(isbn_13)) {
			alert ("Il valore specificato di EAN (ISBN-13) non è valido.\nNon è un formato valido di EAN.");
			form.isbn13.focus ();
			return false;
		} else if (isbn_13.length != 13) {
			alert ("Il valore specificato di EAN (ISBN-13) non è valido.\nLa lunghezza dell'EAN deve essere di 13 caratteri.");
			form.isbn13.focus ();
			return false;
		} else {
			isbn_check = 0;
			for (var J = 13; J > 1; J--) {
				if ((J % 2) == 0) {
					isbn_check = isbn_check + (isbn_13.substr(13 - J, 1) * 3);
				} else {
					isbn_check = isbn_check + (isbn_13.substr(13 - J, 1) * 1);
				}
			}
			isbn_check = 10 - (isbn_check % 10);
			if (isbn_check == 10) {
				isbn_check_digit = "0";
			} else if (isbn_check == 0) {
				isbn_check_digit = "X";
			} else {
				isbn_check_digit = isbn_check;
			}
			if (isbn_check_digit != isbn_13.substr(12, 1)) {
				alert ("Il valore specificato di EAN (ISBN-13) non è valido.\nIl carattere di controllo non è corretto.");
				form.isbn13.focus ();
				return false;
			}
		}
	}
	return true;
}

function check_ins_user (form) {
	if (form.login.value == "") {
		alert ("Non è stato immesso il nome utente.");
		form.login.focus ();
		return false;
	}
	if (form.usr_id.value != "" && form.old_pwd.value == "" && form.new_pwd.value != "") {
		alert ("Non è stata inserita la vecchia password.");
		form.old_pwd.focus ();
		return false;
	}
	if (form.usr_id.value == "" && form.new_pwd.value == "") {
		alert ("Non è stata specificata la password.");
		form.new_pwd.focus ();
		return false;
	}
	if (form.new_pwd.value != "" && form.new_pwd.value != form.conf_new_pwd.value) {
		alert ("La nuova password non è stata confermata.");
		form.conf_new_pwd.value = "";
		form.conf_new_pwd.focus ();
		return false;
	}
	if (form.question.value == "") {
		alert ("Non è stata formulata la domanda segreta per poter effettuare il reset della password.");
		form.question.focus ();
		return false;
	}
	if (form.answer.value == "") {
		alert ("Non è stata inserita la risposta alla domanda segrata.");
		form.answer.focus ();
		return false;
	}
	if (form.email.value != "") {
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(form.email.value)) {
			alert ("L'indirizzo email specificato non è in un formato corretto.");
			form.email.focus ();
			return false;
		}
	}
	if (form.provincia.value != "" && form.provincia.value.length != 2) {
		alert ("La provincia deve essere espressa con la propria sigla.");
		form.provincia.focus ();
		return false;
	}
	return true;
}

function check_ins_link (form) {
	if (form.titolo.value == "" && form.db_image_url.value == "" && form.image_url.value == "") {
		alert ("Il collegamento deve essere caratterizzato da un testo e/o da un'immagine.");
		form.titolo.focus ();
		return false;
	}
	var rad_val = "";
	for (var i=0; i < form.section.length; i++) {
		if (form.section[i].checked) {
			rad_val = form.section[i].value;
		}
	}
	if (rad_val == "" && form.sct_new.value == "") {
		alert ("Non è stata specificata la nuova sezione della pagina di appartenenza del collegamento.");
		form.sct_new.focus ();
		return false;
	}
	if (form.url.value == "") {
		alert ("Non è stato specificato l'url del collegamento.");
		form.url.focus ();
		return false;
	} else {
		var filter = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		if (!filter.test(form.url.value)) {
			alert ("La url del collegamento specificata non è in un formato corretto.");
			form.url.focus ();
			return false;
		}
	}
	if (form.posizione.value == "") {
		alert ("Non è stata specificata l'ordine di posizione in cui il collegamento deve essere visualizzato.");
		form.posizione.focus ();
		return false;
	} else {
		var filter = /[0-9]/;
		if (!filter.test(form.posizione.value)) {
			alert ("La posizione di visualizzazione del collegamento deve essere un valore numerico.");
			form.posizione.focus ();
			return false;
		}
	}
	if (form.img_width.value != "") {
		var filter = /([0-9])+(%|px)/;
		if (!filter.test(form.img_width.value)) {
			alert ("La larghezza dell'immagine deve essere specificata in percentuale(n%) o in pixels (px)");
			form.img_width.focus ();
			return false;
		}
	}
	if (form.img_height.value != "") {
		var filter = /([0-9])+(%|px)/;
		if (!filter.test(form.img_height.value)) {
			alert ("L'altezza dell'immagine deve essere specificata in percentuale(n%) o in pixels (px)");
			form.img_height.focus ();
			return false;
		}
	}
	if (form.img_border.value != "") {
		var filter = /[0-9]/;
		if (!filter.test(form.img_border.value)) {
			alert ("Il bordo dell'immagine è un valore numerico.");
			form.img_border.focus ();
			return false;
		}
	}
	return true;
}

function check_ins_note (form) {
	if (form.citazione.value == "") {
		alert ("Non è stato immesso il testo della nota.");
		form.citazione.focus ();
		return false;
	}
	if (form.sezione.value == "") {
		alert ("Non è stata specificata la sezione in cui deve essere visualizzata la nota.");
		form.sezione.focus ();
		return false;
	}
	if (form.autore.value == "") {
		alert ("Non è stato inserito l'autore della citazione.");
		form.autore.focus ();
		return false;
	}
	return true;
}

function check_ins_readchal (form) {

	var dt_ini = form.data_inizio_hidden.value;
	var dt_end = form.data_fine_hidden.value;
	var dt_ful = form.data_full_hidden.value;
	if (dt_ini != "") {var data_ini = new Date(dt_ini.substr(6, 4), dt_ini.substr(3, 2) - 1, dt_ini.substr(0, 2));}
	if (dt_end != "") {var data_end = new Date(dt_end.substr(6, 4), dt_end.substr(3, 2) - 1, dt_end.substr(0, 2));}
	if (dt_ful != "") {var data_ful = new Date(dt_ful.substr(6, 4), dt_ful.substr(3, 2) - 1, dt_ful.substr(0, 2));}

	if (form.titolo.value == "") {
		alert ("Non è stato immesso il titolo della sfida readers challange.");
		form.titolo.focus ();
		return false;
	}
	if (dt_ini == "") {
		alert ("Non è stata specificata la data di inizio della sfida letteraria.");
		form.data_inizio.focus ();
		return false;
	}
	if (dt_end == "") {
		alert ("Non è stata specificata la data di fine della sfida letteraria.");
		form.data_fine.focus ();
		return false;
	}
	if (form.db_image_url.value == "" && form.image_url.value == "") {
		alert ("Non è stato specificato il percorso dell'immagine del logo della sfida letteraria.");
		form.ImageFile.focus ();
		return false;
	}
	if (form.img_width.value == "") {
		alert ("Non è stata specificata la larghezza dell'immagine del logo.");
		form.img_width.focus ();
		return false;
	} else {
		var filter = /([0-9])+(%|px)/;
		if (!filter.test(form.img_width.value)) {
			alert ("La larghezza dell'immagine deve essere specificata in percentuale(n%) o in pixels (px)");
			form.img_width.focus ();
			return false;
		}
	}
	if (form.img_height.value == "") {
		alert ("Non è stata specificata l'altezza dell'immagine del logo.");
		form.img_height.focus ();
		return false;
	} else {
		var filter = /([0-9])+(%|px)/;
		if (!filter.test(form.img_height.value)) {
			alert ("L'altezza dell'immagine deve essere specificata in percentuale(n%) o in pixels (px)");
			form.img_height.focus ();
			return false;
		}
	}
	if (data_end < data_ini) {
		alert ("La data di fine della sfida non può essere antecedente alla data di inizio della sfida letteraria.");
		form.data_fine.focus ();
		return false;
	}
	if (dt_ful != "") {
		if (data_ful < data_ini) {
			alert ("La data di completamento della sfida non può essere antecedente alla data di inizio della sfida letteraria.");
			form.data_full.focus ();
			return false;
		}
	}
	return true;
}

function check_ins_cal (form) {

	var dt_ini = form.data_inizio_hidden.value;
	var dt_end = form.data_fine_hidden.value;
	var data_inizio = new Date(dt_ini.substr(6, 4), dt_ini.substr(3, 2) - 1, dt_ini.substr(0, 2));
	var data_fine = new Date(dt_end.substr(6, 4), dt_end.substr(3, 2) - 1, dt_end.substr(0, 2));

	if (form.titolo.value == "") {
		alert ("Non è stato immesso il titolo dell'impegno.");
		form.titolo.focus ();
		return false;
	}
	if (form.luogo.value == "") {
		alert ("Non è stato immesso il luogo dell'impegno.");
		form.luogo.focus ();
		return false;
	}
	if (form.calendario.value == "Blog") {
		var rad_val = "";
		for (var i=0; i < form.section.length; i++) {
			if (form.section[i].checked) {
				rad_val = form.section[i].value;
			}
		}
		if (rad_val == "" && form.cal_new.value == "") {
			alert ("Non è stato specificato il tipo di appuntamento.");
			form.cal_new.focus ();
			return false;
		}
	}
	if (form.data_inizio.value == "") {
		alert ("Non è stata specificata la data di inizio.");
		form.data_inizio.focus ();
		return false;
	}
	if (form.data_fine.value == "") {
		alert ("Non è stata specificata la data di fine.");
		form.data_fine.focus ();
		return false;
	}
	if (form.ora_inizio.value != "") {
		var filter = /([0-1][0-9]|2[0-3]):([0-5][0-9])/;
		if (!filter.test(form.ora_inizio.value)) {
			alert ("Il valore specificato non è un formato di ora accettabile (hh:mm)");
			form.ora_inizio.focus ();
			return false;
		}
	}
	if (form.ora_fine.value != "") {
		var filter = /([0-1][0-9]|2[0-3]):([0-5][0-9])/;
		if (!filter.test(form.ora_fine.value)) {
			alert ("Il valore specificato non è un formato di ora accettabile (hh:mm)");
			form.ora_fine.focus ();
			return false;
		}
	} 
	if (data_fine < data_inizio) {
		alert ("La data di fine non può essere antecedente alla data di inizio dell'impegno.");
		return false;
	}
	return true;
}