/*****************************************
Controllo della Partita I.V.A.
******************************************/

function controllaPIVA(pi)
{
	if( pi == '' )  return '';
	if( pi.length != 11 )
		return "La lunghezza della partita IVA non è\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 è valida:\n" +
		"il codice di controllo non corrisponde.\n";

	return '';
}

/**************************************
Controllo del Codice Fiscale
***************************************/

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 è\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 è corretto:\n" +
			   "il codice di controllo non corrisponde.\n";
			   
	return "";
}

/*****************************************
Controllo dell'email.
******************************************/
function controllaEmail(s) {
	var a = s.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
	if (a==null)
		return "La stringa non coindice con una email";
	if (a!=null && s.length<6)
		return "La stringa deve essere di almeno 6 caratteri";
	return "";
}

function isSelected(theForm, inputSelect) {
	var fForm = theForm;
	eval("var iLength = fForm."+inputSelect+".length;")
	for (var i=0; i<iLength; i++){
		if (eval("fForm."+inputSelect+"["+i+"].selected")) {
			return true;
			break;
		}
	}
	return false;
}

function isChecked(theForm, inputCheckBoxGroup) {
	var fForm = theForm;
	eval("var iLength = fForm."+inputCheckBoxGroup+".length;")
	for (var i=0; i<iLength; i++){
		if (eval("fForm."+inputCheckBoxGroup+"["+i+"].checked")) {
			return true;
			break;
		}
	}
	return false;
}

function finestrella(url, w, h, s, nome) {
	if (nome == null){
		nome = "remote"
	}
	popupWin = window.open(url, nome, 'toolbar=no, screenX=0, screenY=0, left=20, top=20, location=no, status=no, menubar=no, scrollbars=' + s + ', resizable=no, width=' + w + ', height=' + h + ', left=20, top=20');
}

function fullscreen(path)
{
	popupFull = window.open(path,'myFull','fullscreen=yes, scrollbars=no');
}

function isNumeric(VarValore) {
	var BoolOUT = true;
	if (VarValore!='') {
		var VarDigit = '';
		var IntChars = 0;
		var IntIndice = 0;
		var StrSymbols = "-,.0123456789";
		for (var i=0; i<VarValore.length; i++) {
			VarDigit = (VarValore.substring(i, i+1));
			if ((VarDigit==',') || (VarDigit=='.')) {
				IntChars++;
			}
			if ((VarDigit=='-') & (!VarValore.indexOf(VarDigit)==0)) {
				BoolOUT = false;
			}
			IntIndice = StrSymbols.indexOf(VarDigit);
			if ((!(IntIndice>-1)) || (IntChars>1)) {
				BoolOUT = false;
			}
		}
	}
	//window.alert('FATTO! [' + BoolOUT + '][' + VarValore + ']');
	return BoolOUT;
}

/*********************** GESTIONE DEI COOKIE ************************/
//formatta la data di scadenza in modo che sia riconoscibile dai cookie
//nodays e' il numero di giorni per cui il cookie deve durare
function getexpirydate(nodays){
	var UTCstring;
	Today = new Date();
	nomilli=Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}

//ritorna il cookie settato
function getcookie(cookiename) {
	var cookiestring=""+document.cookie;
	var index1=cookiestring.indexOf(cookiename);
	if (index1==-1 || cookiename=="") return ""; 
	var index2=cookiestring.indexOf(';',index1);
	if (index2==-1) index2=cookiestring.length; 
	return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

//setta un cookie
//ritorna true se &egrave; possibile settare il cookie
//ritorna false se non &egrave; possibile
//setta duration a -1 per cancellare il cookie
function setcookie(name,value,duration){
	cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration)+"; path=/";
	document.cookie=cookiestring;
	if(!getcookie(name)){
		return false;
	}
	else{
		return true;
	}
}

//gestisce i cookie
//quando cambio sezione devo resettare il cookie della sottosezione
function manageCookie(name,value,duration){
	//setto il cookie della macro sezione
	setcookie(name,value,duration);
	//cancello i cookie delle sottosezioni
	setcookie("sottosezione", "", -1);
	setcookie("categoria", "", -1);
}

/******************** checkOpener ******************************/
// controlla che un pop-up sia stato aperto da una finestra del sito
// se vi si arriva in altro modo (es. da motore di ricerca)
// stampa un link alla home page
function checkOpener(linkHref, linkText, separatorePrima, separatoreDopo){
	if(window.opener == null){
		var myLink = "<a href=\"" + linkHref + "\">" + linkText + "<\/a>";
		if(separatorePrima != null && separatorePrima != ""){
			myLink = separatorePrima + myLink;
		}
		if(separatoreDopo != null && separatoreDopo != ""){
			myLink += separatoreDopo;
		}	
		document.write(myLink);
	}
}

/******************* rollover ***********************************/
function swapImg(dove,quale){
	if(document.images){
		if (dove == "over"){
			document.getElementById(quale).src = eval(quale + "_over.src");
		}else{
			document.getElementById(quale).src = eval(quale + ".src");
		}
	}
}		