function pagerGesFun(actPos,actStartPage,actNumTotPag)
{
 	var pagerObj = new Span_pager(actPos,'span_pager',actStartPage,actNumTotPag);
 	pagerObj.gesFun = 'pagerGesFun()';
 	var fieldPager = document.getElementById('Pager');
 	fieldPager.innerHTML = 'Selezione pagine: ' + pagerObj.exec();
 	var fieldPaginaAttuale = document.getElementById('Pagina_attuale');
 	fieldPaginaAttuale.innerHTML = actPos;
  
  fieldProvincia=document.getElementById('Provincia'); 
  fieldLocalita=document.getElementById('Localita');
  fieldFiliale=document.getElementById('Filiale');
  fieldNumeroRapporto=document.getElementById('Numero_rapporto');
  fieldNumeroTitolo=document.getElementById('Numero_titolo');
  fieldCodAbi = document.getElementById('CodAbi');
  
 sinServerCall('ajax_handler.php','getRisultati',fieldCodAbi.value + 
 "_" + fieldProvincia.value + "_" + fieldLocalita.value + "_" + 
 fieldFiliale.value + "_" + fieldNumeroRapporto.value + "_" + 
 fieldNumeroTitolo.value
 ,'Xml');
}

function StampaPagina() {
	if (window.print) {frames.print();}
	else {alert("Attenzione, il tuo browser non supporta questa funzione.");}
	}
	
	function ApriPopup(FileToOpen, W, H, rif, Full) {
	var stFull=(Full=='S'?'yes':'no');
	var W=(W==''?'800':W);
	var H=(H==''?'550':H);
	var rif=(rif==''?'POPUP':rif);
	winpopup=window.open(FileToOpen, rif,"width=" + W + ",height=" + H + ",toolbar="+stFull+",location="+stFull+",status="+stFull+",menubar="+stFull+",resizable=yes,scrollbars=yes");
	if (winpopup==null) {
		var strMsg="";
		strMsg=strMsg+"ATTENZIONE.\n";
		strMsg=strMsg+"L'apertura di un popup informativo è stata bloccata dal sistema.\n";
		strMsg=strMsg+"Per una completa e corretta navigazione, si consiglia di aggiungere\n";
		strMsg=strMsg+"questo indirizzo ai siti abilitati all'apertura di finestre popup.\n";
		alert(strMsg);}
  else
  	{winpopup.window.focus();}
	return;}
	
function control(data_iniziale) {
	errore = true;
	found=data_iniziale.match(/\d{1,2}[\/-]\d{1,2}[\/-]\d\d\d\d/);
	if (found==null) {errore=false}
	else {
		pos_separatore=data_iniziale.search(/[\/-]/);
		giorni=data_iniziale.substring(0,pos_separatore);
		pos_separatore2=data_iniziale.substring(pos_separatore+1, data_iniziale.length).search(/[\/.-]/) + pos_separatore + 1;
		mesi=data_iniziale.substring(pos_separatore+1,pos_separatore2);
		anni=data_iniziale.substring(pos_separatore2+1,pos_separatore2+5);
		c_anni=data_iniziale.substring(pos_separatore2+1,data_iniziale.length);
		if (c_anni.length > 4) {return false;}
		if (mesi < 1 || mesi > 12) {errore = false} 				//controllo mese
		else {
			if (giorni < 1 || giorni > 31) {errore = false} 	//controllo giorni
			if (mesi==4 || mesi==6 || mesi==9 || mesi==11) { 	//mesi con 31 giorni
				if (giorni==31) {errore=false;}
				}
			if (mesi==2) { 																		//febbraio e bisestili
 				k=(anni % 1000);
				if (k==0) {bis=(anni % 400);}
				else {
					k2=(anni % 100);
					if (k2==0) {bis=(anni % 400);}
					else {bis=(anni % 4);}
					}
				if (bis==0) {
					if (giorni > 29) {errore = false;}
					}
				else if (giorni > 28) {errore = false;}
				}
			}
		}
	return errore;
	}

	
function controlWithMsg(data_iniziale,data_attuale) {
	retValClass = function(actRes,actMsg){this.res = actRes;this.msg=actMsg;};
	var retVal = new retValClass(true,'Ok');
	found=data_iniziale.match(/\d{1,2}[\/-]\d{1,2}[\/-]\d\d\d\d/);
	if (found==null) {retVal.res=false;retVal.msg='Formato data errato.'}
	else {
		pos_separatore=data_iniziale.search(/[\/-]/);
		giorni=data_iniziale.substring(0,pos_separatore);
		pos_separatore2=data_iniziale.substring(pos_separatore+1, data_iniziale.length).search(/[\/.-]/) + pos_separatore + 1;
		mesi=data_iniziale.substring(pos_separatore+1,pos_separatore2);
		anni=data_iniziale.substring(pos_separatore2+1,pos_separatore2+5);
		c_anni=data_iniziale.substring(pos_separatore2+1,data_iniziale.length);
		if (c_anni.length > 4) {retVal.res = false;retVal.msg="Formato anno errato."}
		if (mesi < 1 || mesi > 12) {retVal.res = false;retVal.msg="Il mese deve essere compreso fra 1 e 12."} 				//controllo mese
		else {
			if (giorni < 1 || giorni > 31) {retVal.res = false;retVal.msg="Il giorno deve essere compreso fra 1 e 31."} 	//controllo giorni
			if (mesi==4 || mesi==6 || mesi==9 || mesi==11) { 	//mesi con 31 giorni
				if (giorni==31) {retVal.res=false;retVal.msg="Questo mese ha 30 giorni."}
				}
			if (mesi==2) { 																		//febbraio e bisestili
 				k=(anni % 1000);
				if (k==0) {bis=(anni % 400);}
				else {
					k2=(anni % 100);
					if (k2==0) {bis=(anni % 400);}
					else {bis=(anni % 4);}
					}
				if (bis==0) {
					if (giorni > 29) {retVal.res = false;retVal.msg="L'anno è bisestile, Febbraio ha 29 giorni."}
					}
				else if (giorni > 28) {retVal.res = false;retVal.msg="L'anno non è bisestile,Febbraio ha 28 giorni."}
				}
			}
		}
	if((data_attuale !== null)&& retVal.res)
	{
	 var items = data_attuale.split("/",3);
	 data_attuale_ms = Date.parse(items[1] + '/' + items[0] + '/' + items[2]);
	 var items = data_iniziale.split("/",3);
	 data_iniziale_ms = Date.parse(items[1] + '/' + items[0] + '/' + items[2]);
	 if(data_attuale_ms<data_iniziale_ms)
	 {retVal.res=false;retVal.msg="La data è posteriore a quella odierna.";}
	}
	return retVal;
	}
	
function ReverseString(str) {
	var i, outstr = "";
	for(i=str.length-1;i>-1;i--) {outstr += str.charAt(i);}
	return outstr;
	}
	
/*------------------------------------------------------
 * Function CheckMail(email, result, type)
 * Parametri INPUT
 * email  : Stringa che contiene la mail da verificare
 * result : indica il tipo di risultato desiderato. Se non valorizzato
 *          visualizza un alert con il dettaglio degli errori riscontrati
  *         F = ritorna True se è una email corretta altrimenti False
 *          S = ritorna una stringa con il dettaglio degli errori risontrati
 * type   : indica se è obbligatorio o meno
 *          O = obbligatorio
  */
function checkMail(email, result, type){
	var fPunto=false;
	var fValido=true;
	var sErrore="";
	var ssErrore="";
	var posChiocciola=0;
	var posPunto=0;
	var tmpmail=""+email+"";
	/* elimina <> */
	var re=/^\<*|\>*$/gi;
	tmpmail=tmpmail.replace(re,"");
	/* elimina spazi */
	var re=/^\s*|\s*$/gi;
	tmpmail=tmpmail.replace(re, "");
	tmpmail=tmpmail.toLowerCase();
	if (tmpmail.length==0) {
		if (type=="o" || type=="O") {
			var sErrore=sErrore+"L'indirizzo email è obbligatorio\n";
			var fValido=false;}
		else {
			return (true);
			}
		}
	else {
		/* --- CONTROLLO CARATTERE "@" --- */
		if (tmpmail.indexOf("@")==-1) {
			var sErrore=sErrore+"- non è presente il carattere @\n";
			var fValido=false;}
		else {
			var posChiocciola=tmpmail.indexOf("@");
			if (posChiocciola==0) {
				var sErrore=sErrore+"- non è stato immesso nessun carattere prima della @\n";
				var fValido=false;}
			if (posChiocciola==tmpmail.length - 1) {
				var sErrore=sErrore+"- non è stato immesso nessun carattere dopo la @\n";
				var fValido=false;}
			if (tmpmail.charAt(posChiocciola + 1)==".") {
				var sErrore=sErrore+"- è stato immesso un punto dopo la @\n";
				var fValido=false;}
			}
		/* --- CONTROLLO CARATTERE "." --- */
		if (tmpmail.indexOf(".")==-1) {
			var sErrore=sErrore+"- non è presente nessun punto\n";
			var fValido=false;}
		else {
			var posPunto=tmpmail.indexOf(".");
			if (posPunto==0) {
				var sErrore=sErrore+"- non è stato immesso nessun carattere prima del punto\n";
				var fValido=false;}
			if (posPunto==tmpmail.length-1) {
				var sErrore=sErrore+"- non è stato immesso nessun carattere dopo l'ultimo punto\n";
				var fValido=false;}
			if ((tmpmail.charAt(posPunto-1)==".") || (tmpmail.charAt(posPunto+1)==".")) {
				var sErrore=sErrore+"- sono stati immessi due punti consecutivi\n";
				var fValido=false;}
			}
		/* separazione USER-DOMAIN*/
		var arr=null;
		var revStr=ReverseString(tmpmail);
		var arr=revStr.match(/^(.+?)\@(.+?)$/);
		if (arr==null) {
			var sErrore=sErrore+"- l'indirizzo non è valido\n";
			var fValido=false;}
		else {
			Account=ReverseString(arr[2]);
			Domain=ReverseString(arr[1]);
			var ValidChr="\[^\\s\\(\\)><@,;:\\\\\\\"\\.\\[\\]\]+";
			/* verifica USER */
			var ValidUsr="^("+ValidChr+"|(\"[^\"]*\"))(\\.("+ValidChr+"|(\"[^\"]*\")))*$";
			if (Account.match(ValidUsr)==null) {
				var sErrore=sErrore+"- lo username non è corretto o contiene caratteri non ammessi\n";
				var fValido=false;}
			for (i=0; i<Account.length; i++) {
				if (Account.charCodeAt(i)>127) {
					var sErrore=sErrore+"- lo username contiene caratteri non ammessi\n";
					var fValido=false;
					break;}
				}
			/* verifica DOMAIN */
			// verifico se è un IP
			var arr=null;
			var arr=Domain.match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
			if (arr!=null) {
				for (var i=1;i<=4;i++) {
					if (arr[i]>255) {
						var sErrore=sErrore+"- il dominio contiene un indirizzo IP non valido\n";
						var fValido=false;
						break;}
					}
				}
			else {
				var arr=null;
				var arr=Domain.match(/^((([a-z0-9-]+)\.)+)[a-z]{2,6}$/gi);
				if (arr==null) {
					var sErrore = sErrore + "- il dominio specificato non è corretto o contiene caratteri non ammessi\n";
					var fValido = false;}
				else {
					var dvp = "";
					dvp+="^(";
					dvp+="a[c-gil-oq-uwz]|";     //ac,ad,ae,af,ag,ai,al,am,an,ao,aq,ar,as,at,au,aw,az
					dvp+="b[a-bd-jm-or-tvwyz]|"; //ba,bb,bd,be,bf,bg,bh,bi,bj,bm,bn,bo,br,bs,bt,bv,bw,by,bz
					dvp+="c[acdf-ik-orsuvx-z]|"; //ca,cc,cd,cf,cg,ch,ci,ck,cl,cm,cn,co,cr,cs,cu,cv,cz,cy,cz
					dvp+="d[ejkmoz]|";           //de,dj,dk,dm,do,dz
					dvp+="e[ceghr-u]|";          //ec,ee,eg,eh,er,es,et,eu
					dvp+="f[i-kmorx]|";          //fi,fj,fk,fm,fo,fr,fx
					dvp+="g[abd-ilmnp-uwy]|";    //ga,gb,gd,ge,gf,gg,gh,gi,gl,gm,gn,gp,gq,gr,gs,gt,gu,gw,gy
					dvp+="h[kmnrtu]|";           //hk,hm,hn,hr,ht,hu
					dvp+="i[delm-oq-t]|";        //id,ie,il,im,in,io,iq,ir,is,it
					dvp+="j[emop]|";             //je,jm,jo,jp
					dvp+="k[eg-imnprwyz]|";      //ke,kg,kh,ki,km,kn,kp,kr,kw,ky,kz
					dvp+="l[a-cikr-vy]|";        //la,lb,lc,li,lk,lr,ls,lt,lu,lv,ly
					dvp+="m[acdghk-z]|";         //ma,mc,md,mg,mh,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz
					dvp+="n[ace-giloprtuz]|";    //na,nc,ne,nf,ng,ni,nl,no,np,nr,nt,nu,nz
					dvp+="om|";                  //om
					dvp+="p[ae-hk-nrtwy]|";      //pa,pe,pf,pg,ph,pk,pl,pm,pn,pr,pt,pw,py
					dvp+="qa|";                  //qa
					dvp+="r[eouw]|";             //re,ro,ru,rw
					dvp+="s[a-eg-ort-vyz]|";     //sa,sb,sc,sd,se,sg,sh,si,sj,sk,sl,sm,sn,so,sr,st,su,sv,sy,sz
					dvp+="t[cdf-hjkm-prtvwz]|";  //tc,td,tf,tg,th,tj,tk,tm,tn,to,tp,tr,tt,tv,tx,tz
					dvp+="u[agkmsyz]|";          //ua,ug,uk,um,us,uy,uz
					dvp+="v[aceginu]|";          //va,vc,ve,vg,vy,vn,vu
					dvp+="w[fs]|";               //wf,ws
					dvp+="y[etu]|";              //ye,yt,yu
					dvp+="z[admrw]|";            //za,zd,zm,zr,zw
					dvp+="com|";                 //com
					dvp+="edu|";                 //edu
					dvp+="net|";                 //net
					dvp+="org|";                 //org
					dvp+="mil|";                 //mil
					dvp+="gov|";                 //gov
					dvp+="biz|";                 //biz
					dvp+="pro|";                 //pro
					dvp+="aero|";                //aero
					dvp+="coop|";                //coop
					dvp+="info|";                //info
					dvp+="name|";                //name
					dvp+="int|";                 //int
					dvp+="museum";               //museum
					dvp+=")$";
					var idx=Domain.lastIndexOf(".");
					reDVP=new RegExp(dvp, "i");
					if (!reDVP.test(Domain.substring(idx+1))) {
						var sErrore=sErrore+"- è stato specificato un TLD sconosciuto\n";
						var fValido=false;}
					}
				}
			}
		if (sErrore!="") {sErrore="Attenzione nell'indirizzo email:\n"+sErrore+"si prega di verificare i dati inseriti.";}
		}
	var re=null;
	var arr=null;
	if (result!="F" && result!="S" && !fValido) {
		alert(sErrore);
		return fValido;}
	if (result=="F") {return fValido;}
	if (result=="S") {return sErrore;}
	return true;}
	
function testPassword(actItem)
{
	var regExp = /^[A-Za-z0-9]{8,20}$/;
	var res=actItem.match(regExp);
	if(res==null)
	 return false;
	else
	 return true;
}
