  // Libreria di funzioni Flashbit standard ver. 2.5 (12/02/2010) 
  // Non personalizzare! Usare jscript2.js o altri nomi con le funzioni dedicate al sito

  // Funzioni varie per i form
  function CheckThis(id){
    var stato=document.getElementById(id).checked;
    if(stato==true){stato = false;}else{stato = true;}
    document.getElementById(id).checked = stato;
  }

  // Mostra il calendario
  function CalendarioP(event,tp,cm,td,tx,ai,af,di,df,ln,id,tb,swnm){
    // $tp      => tipo oggetto che contiene il programma (P = pop-up, D =DIV)
    // $cm      => nome del campo ove copiare la data selezionata (es: "data1")
    // $dt      => data del giorno selezionato (formato dd/mm/yyyy o  hh:mm:ss dd/mm/yyyy)
    // $td      => tipo del campo, dt = datetime (formato hh:mm:ss dd/mm/yyyy), nullo o diverso = data (formato dd/mm/yyyy)
    // $tx      => tipo oggetto che contiene il valore (F = campo, I = id oggetto, DIV o altro)
    // $ai      => anno di partenza tendina, anno (es: 1970)  o anni meno dell'attuale (es: m10) 
    // $af      => anno di partenza tendina, anno (es: 2015) o anni oltre l'attuale (es: p10) 
    // $di      => data minima selezionabile, data (es: dd/mm/yyyy)  o oggi (fisso: O) 
    // $df      => data massima selezionabile, data (es: dd/mm/yyyy)  o oggi (fisso: O) 
    // $ln      => Lingua da utilizzare (IT,GB,GE,ES,FR,PT) 
    // $id      => id del record per update nel DB
    // $tb      => nome della abella per update nel DB
    // $swnm=> nome dello script da chiamare per l'update immediato
    var dt=document.getElementById(cm).value;  var w=183; var h=155;  if(td=='dt'){h=175;}
    var url='calendario.php?dt='+dt+'&td='+td+'&tp='+tp+'&cm='+cm;
    if(tx!=''){url+='&tx='+tx;}  if(ai!=''){url+='&ai='+ai;}  if(af!=''){url+='&af='+af;}  if(di!=''){url+='&di='+di;}  if(df!=''){url+='&df='+df;}  if(ln!=''){url+='&ln='+ln;}
    if(id!=''){url+='&id='+id;}  if(tb!=''){url+='&tb='+tb;}  if(swnm!=''){url+='&swnm='+swnm;}
    if(tp=='P'){myWindow = window.open(url,'Finestra','toolbar=no,scrollbars=no,resizable=no,directories=no,menubar=no,status=no,width='+w+',height='+h);}
    else{
      var a=DoveSono(event).split(','); var xm=a[0]*1; var ym=a[1]*1; var xwin=a[2]*1; var ywin=a[3]*1; // La funzione DoveSono è in jscript.js
      // Definisce la posizione del calendario (dimensioni: 185x155/175 sopra dichiarati)
	  var posx=xm;  var posy=ym;  var scax=xwin-(xm+w); if(scax<0){posx+=scax-10;}  var scay=ywin-(ym+h); if(scay<0){posy+=scay-10;}
      document.getElementById('calendarFR').src=url; document.getElementById('calendar').style.height=h+'px'; document.getElementById('calendarFR').height=h;
  	  document.getElementById('calendar').style.left=posx+'px'; document.getElementById('calendar').style.top=posy+'px';
      document.getElementById('calendar').style.visibility='visible';
    }
  }


  // Funzioni onKeypress  *** chiamare così: ONKEYPRESS="if(event.keyCode>0)IntCheck(event); else if(IntCheck(event)==1)return false;"
  function IntChk(event){
    // Caratteri ammessi: numeri (48-57)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function DoubleChk(event){
    // Caratteri ammessi: numeri (48-57)  +(43)   -(45)  .(46)  // no ,(44) 
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==43 || k>=45 && k<=46){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function TelChk(event){
    // Caratteri ammessi: numeri (48-57)  +(43)  .(46) 
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==43 || k==46){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function TelmChk(event){
    // Caratteri ammessi: numeri (48-57)  +(43)  .(46)   ,(44)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==43 || k==44 || k==46){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function DataChk(event){
    // Caratteri ammessi: numeri (48-57)  /(47)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==47){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function OraChk(event){
    // Caratteri ammessi: numeri (48-57)  :(58)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==58){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function DataTChk(event){
    // Caratteri ammessi: numeri (48-57)  /(47) :(58)  space(32)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==47 || k==58 || k==32){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function MailChk(event){
    // Caratteri ammessi: numeri (48-57) e lettere minuscole(97-122)  -(45)  .(46)  @(64)  _(95)
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=97 && k<=122 || k==45 || k==46 || k==64 || k==95){r=0;}
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function AnsiChk(event){
    // Caratteri ammessi: il SET ANSI inclusi gli accentati esclusi i caratteri speciali
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=32 && k<=126 || k==163 || k>=192 && k<=255){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function AlNuChk(event){
    // Caratteri ammessi: solo lettere (maiuscole e minuscole), numeri e spazio, senza punteggiatura e accentate
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k==32 || k>=65 && k<=90 || k>=97 && k<=122){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function NoSpcChk(event){
    // Caratteri ammessi: solo lettere (maiuscole e minuscole), numeri, _ 
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=65 && k<=90 || k>=97 && k<=122 || k==95){r=0;} //
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function NumLetChk(event){
    // Caratteri ammessi: solo lettere (maiuscole e minuscole) e numeri
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=65 && k<=90 || k>=97 && k<=122){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function NumLetCapChk(event){
    // Caratteri ammessi: solo lettere (maiuscole) e numeri
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=65 && k<=90){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function NumLetLowChk(event){
    // Caratteri ammessi: solo lettere ( minuscole) e numeri
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=97 && k<=122){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }
  function DomainChk(event){
    // Caratteri ammessi: solo lettere ( minuscole), numeri, - e .
    var r=1; var e=0; if(event.keyCode>0){var k=event.keyCode; e=1;}else{var k=event.which;}
    if(k>=48 && k<=57 || k>=97 && k<=122 || k==45 || k==46){r=0;} 
    if(e==1 && r==1){event.returnValue=false;}else if(r==1){return 1;}
  }


  // Controlli onChange o per submin
  function checkEmail(email){
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null){return 0;}
    if(splitted[1]!=null ){ var regexp_user=/^\"?[\w-_\.]*\"?$/; if(splitted[1].match(regexp_user)==null){return 0;} }
    if(splitted[2]!=null){
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain)==null){ var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/; if(splitted[2].match(regexp_ip)==null){return 0;} }
      return 1;
    }
    return 0;
  }
  function checkNumero(numero) {
    // Numero +1234567890.9999 (+ o - o nulla max 10 cifre, max 4 cifre)
	var esito=1; var regexp=/^[\+\-]?[0-9]{1,10}[\.]?[0-9]{0,4}$/; if(numero.search(regexp)==-1){esito=0;}
    return esito;
  }
  function checkTel(numero) {
    // Numero di telefono: +39.02555689
	var esito=1; var regexp=/^[\+]?[0-9\.]{1,18}$/; if(numero.search(regexp)==-1){esito=0;}
    return esito;
  }
  function checkIntero(numero) {
    // Numero di telefono: 1234567890 di massimo 10 cifre
	var esito=1; var regexp=/^[0-9]{1,10}$/; if(numero.search(regexp)==-1){esito=0;}
    return esito;
  }
  function checkData(data){
    // Controlla la validità di una data (formato dd/mm/yyyy) 
    var esito=1;
    var mlx = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    j=data.split('/');  day=j[0];  month=j[1];  year=j[2];
    if(!day || !month || !year){esito=0;}
    if(year/4 == parseInt(year/4)){mlx[1]=29;}
    if(day > mlx[month-1]){esito=0;}
    if(month > 12){esito=0;}
    if(year <1000 || year > 2100){esito=0;}
    mlx[1]=28;
    if(esito>0){
      now=new Date();  now=now.getTime();  dateToCheck=new Date();
      dateToCheck.setYear(year);  dateToCheck.setMonth(month-1);  dateToCheck.setDate(day);
      checDate = dateToCheck.getTime();
      if(now < checDate){esito=2; futuro=1;}
      if(now > checDate){esito=3; passato=1;}
    }
    return esito;
  }
  function DateZeri(data){
    // Corregge i giorni ed i mesi monocifra antecedendogli uno 0 (zero) e l'anno abbreviato antecedendogli 20 
    var j=data.split('/');  var gg=''+j[0];  var mm=''+j[1];  var yy=''+j[2];
    if(gg.length==1){gg='0'+gg;}  if(mm.length==1){mm='0'+mm;}   if(yy.length==2){yy='20'+yy;}
    datax=gg+'/'+mm+'/'+yy;  if(data!=''){return datax;}else{return '';}
  }
  function Cents(anynum,smi,sde,fra) {
    // smi => Separatore migliaia
    // sde => Separatore decimali
    // fra => Numero decimali
    if(smi==''){smi='.';}
    if(sde==''){sde=',';}
    if(fra==''){fra=2;}
    anynum=""+eval(anynum);  intnum=parseInt(anynum);  intnum=Math.abs(intnum);  intstr=""+intnum;
    if(intnum >= 1000){ intlen = intstr.length;  temp1=parseInt(""+(intnum/1000));  temp2=intstr.substring(intlen-3,intlen);  intstr=temp1+smi+temp2; }
    if(intnum >= 1000000){ intlen = intstr.length;  temp1=parseInt(""+(intnum/1000000));  temp2=intstr.substring(intlen-7,intlen);  intstr=temp1+smi+temp2; }
    decnum = Math.abs(parseFloat(anynum)-parseInt(anynum));  decimal=1;
    for(tt=1;tt<=fra;tt++){ decimal=decimal*10; }
    decnum=decnum*decimal;  decstr=""+Math.abs(Math.round(decnum));
    while(decstr.length < fra){decstr += "0"}
    if(anynum < 0){intstr="-"+intstr}
    return ""+intstr+sde+decstr;
  }
  function checkIP(ip){
    var g1=500; var g2=500; var g3=500; var g4=500;
    j=ip.split('.');  g1=j[0];  g2=j[1];  g3=j[2];  g4=j[3];
    if(g1 > 256 || g2 > 256 || g3 > 256 || g4 > 256){ return 0; }
    if(!g1 || !g2 || !g3 || !g4){ return 0; }
    var j=g1.replace(/[0-9]/g,''); if(j.length>0){ return 0; };
    var j=g2.replace(/[0-9]/g,''); if(j.length>0){ return 0; };
    var j=g3.replace(/[0-9]/g,''); if(j.length>0){ return 0; };
    var j=g4.replace(/[0-9]/g,''); if(j.length>0){ return 0; };
    return 1; 
  }
  function checkDateTime(datat){
    j=datat.split(' - ');  ora=j[0];  data=j[1];
    if(!ora || !data){ return 0; }
    // Controllo della data
    var mlx = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    j=data.split('/');  day=j[0];  month=j[1];  year=j[2];
    if(!day || !month || !year){ return 0; }
    if(year/4 == parseInt(year/4)){mlx[1]=29;}
    if(day > mlx[month-1]){ return 0; }
    if(month > 12){ return 0; }
    if(year <1000 || year > 2100){ return 0; }
    mlx[1]=28;
    // Controllo dell'ora
    // da scrivere
    return 1; 
  }

