function in_array (v, a) {
	var found=false;
	var i=0;
	
	while ((!found) && (i<a.length)) {
		found=(v==a[i]);
		i++;
	}
	
	return found;
}

function checkfile (campo, tipi_file) {
	var err=0;
	var ext;
	var a=[];
	var b;
	var i;
	
	if (campo.value=='') {
		err=1;
	} else {
		a=campo.value.split('.');
		ext=a[a.length-1];
		ext=ext.toUpperCase();
		err=1;
		
		if (tipi_file!='*') {
			for (i=0;i<tipi_file.length;i++) {
				if (ext==tipi_file[i].toUpperCase()) {
					err=0;
				}
			}
		} else {
			err=0;
		}
	}

	return err==0;
}

function scanint (campo, evn) {
	var valori=['.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
	var brwGecko=true;
	var kcode;

	if (!campo.readOnly) {
		if (!evn) {
			try {
				var evn=window.event;
				kcode=window.event.keyCode;
			} catch (err) {
				alert ('Evento non trovato (scanint).');
				return false;
			}
		}
	
		if (evn.keyCode) {
			kcode=evn.keyCode;
			brwGecko=false;
		} else {
			kcode=evn.which;
		}
	
		var ccode=String.fromCharCode(kcode);
		var inarrayResult=in_array(ccode, valori);
	
		if (!inarrayResult && ((kcode!=8) && (kcode!=13))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	
		if (ccode=='-') {
			if (campo.value.indexOf('-')<0) {
				campo.value='-'+campo.value;
			} else { // sentire se sta cosa piace
				campo.value=campo.value.substr(1);
			}
			
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	}
	
	return true;
}

function scanora (campo, evn) {
	return scantime(campo, evn);
}

function scantime (campo, evn) {
	var valori=['0','1','2','3','4','5','6','7','8','9'];
	var brwGecko=true;
	var kcode;
	
	if (!campo.readOnly) {
		if (!evn) {
			try {
				var evn=window.event;
				kcode=window.event.keyCode;
			} catch (err) {
				alert ('Evento non trovato (scanora).');
				return false;
			}
		}
	
		if (evn.keyCode) {
			kcode = evn.keyCode;
			brwGecko=false;
		} else {
			kcode = evn.which;
		}
	
		var inarrayResult=in_array(String.fromCharCode(kcode), valori);
	
		if (campo.value.length>=5) {
			if (inarrayResult) {
				campo.value="";
			}
		}
		
		if (!(inarrayResult) && (String.fromCharCode(kcode)!=":") && (String.fromCharCode(kcode)!=".") && (kcode!=13)) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
		
		if (String.fromCharCode(kcode)==".") {
			if (!brwGecko) {
				window.event.keyCode=":".charCodeAt (0);
			}
		}
		
		if ((campo.value.length+1==3)) {
			if (campo.value.indexOf(":",0)==-1) {
				campo.value+=":";
			}
		}
		
		if ((String.fromCharCode(kcode)==":") && ((campo.value.indexOf(":",0)!=-1)||(campo.value.indexOf(":",1)==-1))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	}
	
	return true;
}

function checkora (a, empty) {
	return checktime (a, empty);
}

function checktime(a, empty) {
	var err=0;
	var timeseparator=":";
	
	if (a.length==5) {
		hour=a.substring(0, 2);// hour
		sep1=a.substring(2, 3);// ':'
		minute=a.substring(3, 5);// minute
	
		if ((hour<0) || (hour>23)) {
			err=1;
		}
		
		if (sep1!=timeseparator) {
			err=1;
		}
		
		if ((minute<0) || (minute>59)) {
			err=1;
		}
	} else {
		if ((a.length==0) && empty) {
			err=0;
		} else {
			err=1;
		}
	}
	
	return err==0;
}

function scandata (campo, evn) {
	return scandate (campo, evn);
}

function scandate (campo, evn) {
	var valori=['0','1','2','3','4','5','6','7','8','9'];
	var brwGecko=true;
	var kcode;

	if (!campo.readOnly) {
		if (!evn) {
			try {
				var evn=window.event;
				kcode=window.event.keyCode;
			} catch (err) {
				alert ('Evento non trovato (scandata).');
				return false;
			}
		}
	
		if (evn.keyCode) {
			kcode = evn.keyCode;
			brwGecko=false;
		} else {
			kcode = evn.which;
		}
	
		var inarrayResult=in_array(String.fromCharCode(kcode), valori);
	
		if (campo.value.length>=10) {
			if (inarrayResult) {
				campo.value="";
			}
		}
		
		if (!((inarrayResult) || (String.fromCharCode(kcode)=="/") || (String.fromCharCode(kcode)==".") || (kcode==13))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
		
		if (String.fromCharCode(kcode)==".") {
			if (!brwGecko) {
				window.event.keyCode="/".charCodeAt (0);
			}
		}
		
		if ((campo.value.length+1==3)) {
			campo.value+="/";
		}
		
		if ((campo.value.length+1==6)) {
			campo.value+="/";
		}
		
		if ((String.fromCharCode(kcode)=="/") && ((campo.value.length==3) || (campo.value.length==6) || (campo.value.length<2) || ((campo.value.length>3) && (campo.value.length<5)))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	}
	
	return true;
}

function checkdate(a, empty) {
	var err=0;
	var dateseparator="/";
	
	if (a.length==10) {
		var day=a.substring(0, 2);// day
		var sep1=a.substring(2, 3);// '/'
		var month=a.substring(3, 5);// month
		var sep2=a.substring(5, 6);// '/'
		var year=a.substring(8, 10);// year
	
		if ((month<1) || (month>12)) {
			err=1;
		}
		
		if ((sep1!=dateseparator) || (sep2!=dateseparator)) {
			err=1;
		}
		
		if ((day<1) || (day>31)) {
			err=1;
		}
		
		if ((year<0) || (year>99)) {
			err=1;
		}
		
		if ((month==4) || (month==6) || (month==9) || (month==11)) {
			if (day==31) {
				err=1;
			}
		}

		if (month==2) {
			if ((day>29) || ((day==29) && ((year%4)!=0))) {
				err=1;
			}
		}
	} else {
		if ((a.length==0) && empty) {
			err=0;
		} else {
			err=1;
		}
	}
	
	return err==0;
}

/* Variabili che è possibile cambiare */
// posizione iniziale
var dn_startpos=120;
// posizione finale
var dn_endpos=-200;
// Velocità dello scroller: un numero più alto indica una velocità inferiore
var dn_speed=70;
// ID da assegnare al box delle news nel codice HTML
var dn_newsID='newsscroller';
// classe che lo script aggiunge quando Javascript è dsisponibile
var dn_classAdd='hasJS';
// Messaggio del link che stoppa lo scroller
var dn_stopMessage='Ferma lo scroller';
// ID del paragrafo generato
var dn_paraID='DOMnewsstopper';

/* Initialise scroller when window loads */
window.onload=function()
{
	// check for DOM
	if(!document.getElementById || !document.createTextNode){return;}
	initDOMnews();
	// add more functions as needed
}
/* stop scroller when window is closed */
window.onunload=function()
{
	clearInterval(dn_interval);
}

/*
	This is the functional bit, do not press any buttons or flick any switches
	without knowing what you are doing!
*/

var dn_scrollpos=dn_startpos;
/* Initialise scroller */
function initDOMnews()
{
	var n=document.getElementById(dn_newsID);
	if(!n){return;}
	n.className=dn_classAdd;
	dn_interval=setInterval('scrollDOMnews()',dn_speed);
	var newa=document.createElement('a');
	var newp=document.createElement('p');
	newp.setAttribute('id',dn_paraID);
	/*newa.href='#';
	newa.appendChild(document.createTextNode(dn_stopMessage));
	newa.onclick=stopDOMnews;
	newp.appendChild(newa);
	n.parentNode.insertBefore(newp,n.nextSibling);*/
	n.onmouseover=function()
	{
		clearInterval(dn_interval);
	}
	n.onmouseout=function()
	{
		dn_interval=setInterval('scrollDOMnews()',dn_speed);
	}
}

function stopDOMnews()
{
	clearInterval(dn_interval);
	var n=document.getElementById('newsscroller');
	n.className='';
	n.parentNode.removeChild(n.nextSibling);
	return false;
}

function scrollDOMnews()
{
	var n=document.getElementById(dn_newsID).getElementsByTagName('ul')[0];
	n.style.top=dn_scrollpos+'px';
	if(dn_scrollpos==dn_endpos){dn_scrollpos=dn_startpos;}
	dn_scrollpos--;
}

function checkdata(form) {
	var choice=0;
	
	if (form.elements["Titolo"].value=="") {
		alert("Inserire il Titolo.");
		return false;
	}
	
	if (form.elements["Cognome"].value=="") {
		alert("Inserire il Cognome.");
		return false;
	}
	
	if (form.elements["Nome"].value=="") {
		alert("Inserire il Nome.");
		return false;
	}

	if (form.elements["Indirizzo (privato)"].value=="") {
		alert("Inserire l'Indirizzo/Nr (privato).");
		return false;
	}
	
	if (form.elements["C.A.P. (privato)"].value.length!=5) {
		alert("Inserire il C.A.P. (privato).");
		return false;
	}
	
	if (form.elements["Città (privato)"].value=="") {
		alert("Inserire la Citta' (privato).");
		return false;
	}

	if (form.elements["Provincia (privato)"].value=="") {
		alert("Inserire la Provincia (privato).");
		return false;
	}
	
	if (form.elements["Nazione (privato)"].value=="") {
		alert("Inserire la Nazione (privato).");
		return false;
	}
	
	if (form.elements["Telefono (privato)"].value=="") {
		alert("Inserire il Telefono (privato).");
		return false;
	}
	
	if (form.elements["Ospedale (lavoro)"].value=="") {
		alert("Inserire l'Ospedale (lavoro).");
		return false;
	}

	if (form.elements["Indirizzo (lavoro)"].value=="") {
		alert("Inserire l'Indirizzo/Nr (lavoro).");
		return false;
	}
	
	if (form.elements["C.A.P. (lavoro)"].value.length!=5) {
		alert("Inserire il C.A.P. (lavoro).");
		return false;
	}
	
	if (form.elements["Città (lavoro)"].value=="") {
		alert("Inserire la Citta' (lavoro).");
		return false;
	}

	if (form.elements["Provincia (lavoro)"].value=="") {
		alert("Inserire la Provincia (privato).");
		return false;
	}
	
	if (form.elements["Nazione (lavoro)"].value=="") {
		alert("Inserire la Nazione (privato).");
		return false;
	}
	
	if (form.elements["Telefono (lavoro)"].value=="") {
		alert("Inserire il Telefono (lavoro).");
		return false;
	}

	for (i=0;i<form.elements["Indirizzo postale"].length;i++) {
		if (form.elements["Indirizzo postale"][i].checked) {
			break;
		} else {
			if (i==form.elements["Indirizzo postale"].length-1) {
				alert("Scegliere l'indirizzo postale di preferenza.");
				return false;
			}
		}
	}
	
	for (i=0;i<form.elements["Specializzazione[]"].length;i++) {
		if (form.elements["Specializzazione[]"][i].checked) {
			break;
		} else {
			if (i==form.elements["Specializzazione[]"].length-1) {
				alert("E' obbligatorio definire la vostra specializzazione.");
				return false;
			}
		}
	}
	
	if (form.elements["Specializzazione[]"][form.elements["Specializzazione[]"].length-1].checked) {
		if (form.elements["Altro (Specializzazione)"].value=="") {
			alert("E' obbligatorio inserire la descrizione di Altro (Specializzazione)");
			return false;
		}
	}
	
	for (i=0;i<form.elements["Reparto[]"].length;i++) {
		if (form.elements["Reparto[]"][i].checked) {
			break;
		} else {
			if (i==form.elements["Reparto[]"].length-1) {
				alert("E' obbligatorio specificare il reparto.");
				return false;
			}
		}
	}
	
	if (form.elements["Reparto[]"][form.elements["Reparto[]"].length-1].checked) {
		if (form.elements["Altro (Reparto)"].value=="") {
			alert("E' obbligatorio inserire la descrizione di Altro (Reparto)");
			return false;
		}
	}
	
	if ((form.elements["Nella_Sanità_da"].value.length!=0) && (form.elements["Nella_Sanità_da"].value.length!=4)) {
		alert("Formato data 'Sanita' non corretto! (gg/mm/aaaa)");
		return false;
	}
	
	if ((form.elements["In_Nefrologia_dal"].value.length!=0) && (form.elements["In_Nefrologia_dal"].value.length!=4)) {
		alert("Formato data 'Nefrologia' non corretto! (gg/mm/aaaa)");
		return false;
	}
	
	for (i=0;i<form.elements["Quota iscrizione"].length;i++) {
		if (form.elements["Quota iscrizione"][i].checked) {
			choice=1;
			break;
		} else {
			if (i==form.elements["Quota iscrizione"].length-1) {
				choice=0;
			}
		}
	}
	
	for (i=0;i<form.elements["Abbonamento journal"].length;i++) {
		if (form.elements["Abbonamento journal"][i].checked) {
			break;
		} else {
			if (i==form.elements["Abbonamento journal"].length-1) {
				if (choice==0) {
					alert("E' obbligatorio scegliere una quota di iscrizione o un abbonamento al journal.");
					return false;
				}
			}
		}
	}
	
	return true;
}

function disabledRadio(form, el) {
	for (j=0;j<form.elements[el].length;j++) {
		form.elements[el][j].disabled=true;
	}
}

function checkAltro(el, form, str) {
	form.elements["Altro ("+str+")"].value="";
	if (el.checked) {
		form.elements["Altro ("+str+")"].disabled=false;
	} else {
		form.elements["Altro ("+str+")"].disabled=true;
	}
}
