// 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 // Funzione che genera un numero random function Randnum(n){ var randcode=""; for(i=1;i<=n;i++){ var ran_unrounded=Math.random()*9; var ran_number=Math.floor(ran_unrounded); randcode=randcode+ran_number; } return randcode; } // Funzione mostra/toglie la copertura grigia dello schermo function GreyScreenNORMALE(stato){ var GreyDic=document.getElementById('GreyScreen'); var xp=DoveXY(); // Xmouse*1,Ymouse*1,Xscroll*1,Yscroll*1,Xwin*1,Ywin*1 GreyDic.style.height=xp[3]+xp[5]+"px"; GreyDic.style.width=xp[2]+xp[4]+"px"; GreyDic.style.display=stato; } function GreyScreen(stato){ var GreyDic=document.getElementById('GreyScreen'); var xp=DoveXY(); // Xmouse*1,Ymouse*1,Xscroll*1,Yscroll*1,Xwin*1,Ywin*1 GreyDic.style.height=xp[3]+xp[5]+"px"; GreyDic.style.width=xp[2]+xp[4]+"px"; var tm=1; // timeout refresh (1000=1 secondo) più è basso più è fluido var ch=0.05; // passo del fade if(stato=='block'){var vl=ch; var lm=0.6; var act=0.0; GreyDic.style.display=stato;}else{var vl=-1*ch; var lm=0; var act=0.6;} GreyScreenLoop(tm,vl,lm,act); } function GreyScreenLoop(tm,vl,lm,act){ // Riceve: id oggetto, timeout refresh (1000=1 secondo), valora da sommare (può essere negativo, limite (valore da raggiungere), script da chiamare al termine del fade loop //var act=document.getElementById(id).style.opacity*1; var GreyDic=document.getElementById('GreyScreen').style; var npv=act+vl; GreyDic.opacity=npv; // Vari browser (range 0 / 1) GreyDic.filter='alpha(opacity='+(npv*100)+')'; // MS Explorer fuori standard! (range 0 / 100) if((vl>0 && npvlm)){setTimeout("GreyScreenLoop("+tm+","+vl+","+lm+","+npv+")",tm);} if(lm==0 && (npv<0 || npv==0)){GreyDic.display='none';} } // INIZIO blocco funzioni fade IN/OUT // Mettere questo style negli oggetti da trattare: style='opacity:1.0; filter:alpha(opacity=100);' // Costanti per funzione fade on/off // Funzione che manda in fde ON/OFF l'oggetto passato function SFfade(id,tm,ch,cscript,id2){ // Riceve: id oggetto, timeout refresh (1000=1 secondo), passo del fade, script da chiamare al termine del fade loop (esempio SFProva sotto), eventuale id di un secondo oggetto da passare allo script cscript // Decide in automatico se fade on o off in base allo stato di trasparenza attuale dell'oggetto var act=document.getElementById(id).style.opacity*1; if(act<1){var vl=ch; var lm=1;}else{var vl=-1*ch; var lm=0;} SFumaLoop(id,tm,vl,lm,cscript,id2); } function SFumaLoop(id,tm,vl,lm,cscript,id2){ // Riceve: id oggetto, timeout refresh (1000=1 secondo), valora da sommare (può essere negativo, limite (valore da raggiungere), script da chiamare al termine del fade loop var act=document.getElementById(id).style.opacity*1; var npv=act+vl; document.getElementById(id).style.opacity=npv; // Vari browser (range 0 / 1) document.getElementById(id).style.filter='alpha(opacity='+(npv*100)+')'; // MS Explorer fuori standard! (range 0 / 100) if((vl>0 && npvlm)){setTimeout("SFumaLoop('"+id+"',"+tm+","+vl+","+lm+",'"+cscript+"','"+id2+"')",tm);}else{ if(cscript!=''){eval(cscript+"(id,id2,lm);");} } } // FINE blocco funzioni fade IN/OUT function SFProva(id,id2,lm){ alert(id+' '+id2+' '+lm); } // Funzioni di fade in/out con controllo di blocco per boc onfocus e simili // Esempio di chiamata BoxLoopExe('Hom','ONF-BT_fr',1,25,0.1,1,3000); function BoxLoopStart(fix,fix2,tm,vl,looptm){ setTimeout("BoxLoopExe('"+fix+"','"+fix2+"',"+tm+","+vl+","+looptm+")",looptm); } function BoxLoopExe(fix,fix2,tm,vl,looptm){ // Riceve: parte fissa del grubbo del box da aggiungere agli id vari, in modo da poter usare le funzioni con diversi box alla volta, pausa in microsecondi per il cambio frame // timeout refresh (1000=1 secondo), valora da sommare (può essere negativo, limite (valore da raggiungere) if(document.getElementById(fix+'Loop').value=='ON'){ var idoldogg=document.getElementById(fix+'ActFr'); var idmaxogg=document.getElementById(fix+'NRfr'); var idold=idoldogg.value*1; var idmax=idmaxogg.value*1; // Determina il frame sucessivo da mostrare var idnew=idold+1; if(idnew>idmax){idnew=1;} // Cambio bottone/segnaposto frame for(i=1;i<=idmax;i++){ if(i!=idnew){document.getElementById(fix+fix2+'BT'+i).className='HomeFrBtOff';}else{document.getElementById(fix+fix2+'BT'+i).className='HomeFrBtOn';} } // Aggiornamento valori frame attivo e vecchio e partenza relativi loop idoldogg.value=idnew; document.getElementById(fix+'ExFr').value=idold; var theactogg=document.getElementById(fix+fix2+idnew); theactogg.style.display='block'; theactogg.style.opacity=0; theactogg.style.filter='alpha(opacity=0)'; // Azziva ed azzera il nuovo frame BoxLoopFade(fix,fix2,idnew,tm,vl,1,'',''); // Loop on del nuovo frame BoxLoopFade(fix,fix2,idold,tm,vl*-1,0,'',''); // Loop off del frame attuale setTimeout("BoxLoopExe('"+fix+"','"+fix2+"',"+tm+","+vl+","+looptm+")",looptm); // manda in loop per il prossimo canbio frame } } // Esempio di chiamata BoxLoopFade('Hom','ONF-BT_fr',1,25,0.1,1,'EseguimiDopo','div2x'); function BoxLoopFade(fix,fix2,id,tm,vl,lm,cscript,id2){ // Riceve: parte fissa del grubbo del box da aggiungere agli id vari, in modo da poter usare le funzioni con diversi box alla volta // id oggetto, timeout refresh (1000=1 secondo), valora da sommare (può essere negativo, limite (valore da raggiungere) // script da chiamare al termine del fade loop, eventuale id altro oggetto per script finale // id deve essere così composto: fix+fix2+numero intero var theact=fix+fix2+id; var theactogg=document.getElementById(theact); var act=theactogg.style.opacity*1; var npv=act+vl; if(npv<0){npv=0;} if(npv>1){npv=1;} // Correzioni per non superare i valori minimi/massimi theactogg.style.opacity=npv; // Vari browser (range 0 / 1) theactogg.style.filter='alpha(opacity='+(npv*100)+')'; // MS Explorer fuori standard! (range 0 / 100) //alert('ACT:'+act+'| FIX:'+fix+'| FIX2:'+fix2+'| ID:'+id+'| TM:'+tm+'| VL:'+vl+'| LM:'+lm+'| NPV:'+npv+'| DISP:'+theactogg.style.display); if((document.getElementById(fix+'ActFr').value==id && lm==1) || (document.getElementById(fix+'ExFr').value==id && lm==0)){ // Controlla che sia sempre attivo il frame del loop (attivo o ex per loopoff) if((vl>0 && npvlm)){ setTimeout("BoxLoopFade('"+fix+"','"+fix2+"','"+id+"',"+tm+","+vl+","+lm+",'"+cscript+"','"+id2+"')",tm); }else{ if(lm==0){theactogg.style.display='none';} // Se fade off nasconde il div del frame al termine del loop off if(cscript!=''){eval(cscript+"('"+fix+"','"+fix2+"','"+id+"','"+id2+"',tm,vl,lm);");} // Chiama la funzione di fine loop ove presente } }else{ theactogg.style.opacity=0; theactogg.style.filter='alpha(opacity=0)'; theactogg.style.display='none'; } // In caso di cambio frame attivo durante il loop imposta il frame a 0 e nascosto } // Passa al frame indicato ed interrompe il loop function BoxLoopGo(fix,fix2,tm,vl,id){ // Riceve: parte fissa del grubbo del box da aggiungere agli id vari, in modo da poter usare le funzioni con diversi box alla volta, id numerico del frame da mostrare document.getElementById(fix+'Loop').value='OFF'; var idoldogg=document.getElementById(fix+'ActFr'); var idmaxogg=document.getElementById(fix+'NRfr'); var idold=idoldogg.value*1; var idmax=idmaxogg.value*1; if(idold!=id){ // Determina il frame sucessivo da mostrare var idnew=id; // Cambio bottone/segnaposto frame for(i=1;i<=idmax;i++){ if(i!=idnew){document.getElementById(fix+fix2+'BT'+i).className='HomeFrBtOff';}else{document.getElementById(fix+fix2+'BT'+i).className='HomeFrBtOn';} } // Aggiornamento valori frame attivo e vecchio e partenza relativi loop idoldogg.value=idnew; document.getElementById(fix+'ExFr').value=idold; var theactogg=document.getElementById(fix+fix2+idnew); theactogg.style.display='block'; theactogg.style.opacity=0; theactogg.style.filter='alpha(opacity=0)'; // Azziva ed azzera il nuovo frame BoxLoopFade(fix,fix2,idnew,tm,vl,1,'',''); // Loop on del nuovo frame BoxLoopFade(fix,fix2,idold,tm,vl*-1,0,'',''); // Loop off del frame attuale } } // Fine funzioni di fade in/out con controllo di blocco per boc onfocus e simili // Inverte lo stato di visione dell'oggetto ricevuto (style.display) function ShowHide(id){ var divv=document.getElementById(id); divv.style.display=(divv.style.display=="block") ? "none" : "block"; } // Chiama un URL il ajax mettendo il risultato in un oggetto (vecchia funzione mantenuta x compatibilità) function axLoader(url,id){ var x=(window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); x.onreadystatechange=function() {if(x.readyState==4 && x.status==200){el=document.getElementById(id).innerHTML=x.responseText;} } x.open('GET',url,true); x.send(null); } // Chiama un URL il ajax passando i risultati ad unoscript JS (vecchia funzione mantenuta x compatibilità) function axLoaderScript(url,scriptname){ var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); x.onreadystatechange = function() { if(x.readyState == 4 && x.status == 200){eval(scriptname+"(x.responseText);");} } x.open('GET', url, true); x.send(null); } // Chiama un URL il ajax passando i risultati ad unoscript JS (vecchia funzione mantenuta x compatibilità) // valori è un elenco di variabile+valore esempio: a=125&b=125 // i valori vanno trattati con encodeURIComponent() e poi in php va usato urldecode() function axLoaderPostScript(url,scriptname,valori){ var x = (window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); x.onreadystatechange = function() { if(x.readyState == 4 && x.status == 200){eval(scriptname+"(x.responseText);");} } x.open('POST', url, true); x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); x.send(valori); } // Chiama un URL il ajax passando i risultati ad uno script JS e/o cambiando il contenuto di un DIV (nuova funzione che sostituisce le 2 sopra) function AxjL(url,id,jscript,working,event){ // Riceve: url da chiamare con variabili in GET (es: pippo.php?a=12&v=OK) // id: eventuale id di oggetto ove riportare l'esito // script: eventuale script JS a cuoi passare l'esito // working: id eventuale DIV da mostrare ad inizio chiamata e nascondere al ricevimento dei dati (tipico work in progress) var dwrk=0; if(working!=''){ if(document.getElementById(id)){var dwrk=1;} } if(dwrk==1){DivPosiz(event,working,'C','');} var x=(window.ActiveXObject) ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest(); x.onreadystatechange=function(){if(x.readyState==4 && x.status==200){ if(id!=''){document.getElementById(id).innerHTML=x.responseText;} if(jscript!=''){eval(jscript+"(x.responseText);");} if(dwrk==1){document.getElementById(working).style.display='none';} } } x.open('GET',url,true); x.send(null); } // Ritorna: dimensione della finestra e posizione del cursone nella stessa function DoveSono(event) { var x=event.clientX; var y=event.clientY; if(window.scrollX){x+=window.scrollX;}else{x+=document.body.scrollLeft;} if(window.scrollY){y+=window.scrollY;}else{y+=document.body.scrollTop;} if(window.innerWidth){var xwin=window.innerWidth;}else{var xwin=document.body.offsetWidth;} if(window.innerHeight){var ywin=window.innerHeight;}else{var ywin=document.body.offsetHeight;} return x+','+y+','+xwin+','+ywin; // ritorna posizione mouse e dimensioni finestra } // Ritorna: dimensione della finestra, posizione del cursone nella stessa ed eventuali valori di scroll // Esempio utilizzo: var xy=DoveXY(event); (xy è un array con i valori ricevuti con indice da 0 a 5) function DoveXY(event){ // Mettere lettura variabili sotto if(event){var Xmouse=event.clientX; var Ymouse=event.clientY;}else{var Xmouse=0; var Ymouse=0;} if(window.scrollX){var Xscroll=window.scrollX; Xmouse+=Xscroll;}else{var Xscroll=document.body.scrollLeft; Xmouse+=Xscroll;} if(window.scrollY){var Yscroll=window.scrollY; Ymouse+=Yscroll;}else{var Yscroll=document.body.scrollTop; Ymouse+=Yscroll;} if(window.innerWidth){var Xwin=window.innerWidth;}else{var Xwin=document.body.offsetWidth;} if(window.innerHeight){var Ywin=window.innerHeight;}else{var Ywin=document.body.offsetHeight;} // Rende array con: posizione mouse, eventuali valori di scroll, dimensioni della finestra // Xwin e Ywin includono eventuali scroll bar var lista = new Array(Xmouse*1,Ymouse*1,Xscroll*1,Yscroll*1,Xwin*1,Ywin*1); return lista; } // Funzione che posiziona il DIV indicato in modo adeguato nei pressi del mouse, o a centro schermo function DivPosiz(event,id,dove,come){ // Riceve: id dell'oggetto da visualizzare e posizionare // dove: C = a centro schermo (tenendo presente lo scroll), M = nei pressi del mouse (tenendo presente la larghezza della finestra) // come: '' = semplice display block, F = in FADE // Legge le dimensioni dell'oggetto passato var Xsize=document.getElementById(id).style.width; var Ysize=document.getElementById(id).style.height; Xsize=Xsize.replace('px','')*1; Ysize=Ysize.replace('px','')*1; // Decide dove posizionare l'oggetto var xy=DoveXY(event); var Xmouse=xy[0]; var Ymouse=xy[1]; var Xscroll=xy[2]; var Yscroll=xy[3]; var Xwin=xy[4]; var Ywin=xy[5]; // Posizione a centro pagina, o nei pressi del mouse (considerando lo scroll) if(dove=='C'){ var Xpos=(Xwin-Xsize)/2+Xscroll; var Ypos=(Ywin-Ysize)/2+Yscroll; }else{ var Xpos=Xmouse; if((Xpos+Xsize+5)>(Xwin+Xscroll-20)){Xpos=Xmouse-(Xsize+5);} // Con 20px di correzione per scrollbar (Xwin lo include!) var Ypos=Ymouse; if((Ypos+Ysize+5)>(Ywin+Yscroll)){Ypos=Ymouse-(Ysize+5);} } // Posiziona e mostra l'oggetto (con opzione normale o FADE) document.getElementById(id).style.left=Xpos+'px'; document.getElementById(id).style.top=Ypos+'px'; if(come!='F'){document.getElementById(id).style.display='block';} else{ document.getElementById(id).style.opacity=0; // Vari browser (range 0 / 1) document.getElementById(id).style.filter='alpha(opacity=0)'; // MS Explorer fuori standard! (range 0 / 100) document.getElementById(id).style.display='block'; setTimeout("DivPosizFade('"+id+"')",5); } } function DivPosizFade(id){ var act=document.getElementById(id).style.opacity*1; var npv=act+0.03; document.getElementById(id).style.opacity=npv; // Vari browser (range 0 / 1) document.getElementById(id).style.filter='alpha(opacity='+(npv*100)+')'; // MS Explorer fuori standard! (range 0 / 100) if(npv<1){setTimeout("DivPosizFade('"+id+"')",5);} } // Imposta il il valore (la voce) ricevuta nell'oggetto select indicata function FastSelect(campo,voce){ var sel=document.getElementById(campo); for(a=0;a1){ varn=varn+'='; var vars=j[1]; var j1=vars.split('&'); var ck1=j1.length; for(i=0;i<=ck1-1;i++){ var ppp=j1[i].replace(varn,''); if(j1[i]!=ppp){var pp=ppp;} } // /pp=/ } return pp; } // Apre un pop-up delle dimensioni indicate function Finestra(url,x,y) { if(x==''){x=450} if(y==''){y=300} myWindow = window.open(url,'Finestra,toolbar=no,scrollbars=yes,resizable=no,directories=no,menubar=no,status=yes,width='+x+',height='+y); } // Apre un pop-up delle dimensioni indicate function Finestra2(url,x,y) { if(x==''){x=450} if(y==''){y=300} myWindow = window.open(url,'Finestra,toolbar=no,scrollbars=yes,resizable=yes,directories=no,menubar=no,status=yes,width='+x+',height='+y); } // Codifica una stringa per passarla in GET function urlencode(str) { // * example 1: urlencode('Kevin van Zonneveld!'); => 'Kevin+van+Zonneveld%21' // * example 2: urlencode('http://cname.dominio.net/'); => 'http%3A%2F%2Fcname.dominio.net%2F' // * example 3: urlencode('http://www.google.nl/s?q=php.js&rls=u:en'); => 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26rls%3Du%3Aen' var histogram={}, histogram_r={}, code=0, tmp_arr=[]; var ret=str.toString(); var replacer = function(search, replace, str){ var tmp_arr=[]; tmp_arr = str.split(search); return tmp_arr.join(replace); }; // The histogram is identical to the one in urldecode. histogram['!'] = '%21'; histogram['%20'] = '+'; // Begin with encodeURIComponent, which most resembles PHP's encoding functions ret = encodeURIComponent(ret); for(search in histogram){ replace = histogram[search]; ret = replacer(search, replace, ret) // Custom replace. No regexing } // Uppercase for full PHP compatibility return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2){ return "%"+m2.toUpperCase(); }); //return ret; } // Mostra/nasconte il DIV 'operazione in corso' // Deve esistere il DIV con id "inprogress" e le icone: images/empty.png e images/progress.gif function InProgress(x,y,label,show){ // x e y sono le coordinate in cui far apparire il DIV // label è l'etichetta di testo da mostrare // show è lo stato di visualizzazione ON/OFF var ipdiv=document.getElementById('inprogress'); if(x==''){x=290;} if(y==''){y=140;} if(label==''){label="Operazione in corso";} if(show==''){show='ON';} label=label.replace(/'/g,'´'); ipdiv.innerHTML='


'; //+label ipdiv.style.top=y+'px'; ipdiv.style.left=x+'px'; if(show=='ON'){var stato='visible';}else{var stato='hidden';} ipdiv.style.visibility=stato; } // Genera una stringa casuale di n caratteri function RandPW(n){ var pw=''; for(a=1;a<=n;a++) {pw=pw+String.fromCharCode(Math.floor(Math.random()*24+97));} // Solo lettere minuscole return pw; } // Carica l'ulr ricevuto nella pagina attiva function Gou(url){ window.location.href=url } // Ridimensiona la finestra attiva (se le impostazioni di sicurezza JS del browser lo consentono function Winresize(x,y){ if(x=='' || y=='' || x=='0' || y=='0'){var x=800; var y=600;} window.resizeTo(x,y); } // INIZIO blocco funzioni ListaKeyAct (mostra DIV con risultati che iniziano come il testo digitato) DA METTERE IN onkeydown nel campo (per compatibilità con Explorer) // Mostra i risultati che combaciano con il testo digitato (adattato ai campi con id nascosto e _lb visibile) // Usa i seguenti oggetti: // id+"_h" => DIV ove vengono riportati i record filtrati, deve essere opportunamente dimensionato e posizionato (sotto al campo di digitazione) e messo in "display:none" // id+"_db" => TEXTAREA, da non mostrare, che contiene tutti i record possibili, contiene 2 campi per ogni riga separati da un pipe "|". id record|nome/descrizione su cui filtrare // id+"_lb" => E' il campo ove si scrive ed ove verrà riportato il nome scelto (se assente si userà direttamente id) // id => E' il campo, facoltativo, ove verrà riportato l'id del campo selezionato (di solito non visibile) var rfsltmp=0; function ListaKeyAct(id,event,clasn,scriptexe,locc){ // id è il campo di digitazione; classn è il nome della classe (senza Off / On finali), scriptexe è l'eventuale script da chiamare selezionando una voce (gli verrà passato id) // locc (che può non esserci o essere nullo) indica se forzare una selezione o accettare dati digitati (se nullo o L blocca se U non blocca) if(locc){}else{var locc='L';} var nrm=15; // Numero ri righe massimo da mostrare nel DIV di selezione var txt='\n'; // Controlla se esiste il campo nascosto con l'id e nel caso lo svuota per prevenire errori //if(document.getElementById(id+'_lb')){document.getElementById(id).value='';} // Controlla che tasto è stato premuto per decidere cosa fare (se SU, GIU' O INVIO passa agli script di movimento o selezione) if(event.keyCode>0){gh=event.keyCode;}else{gh=event.which;} if(document.getElementById(id+'_db')){var dbok=1;}else{var dbok=0;} // Controlla se esiste il campo _db in cui effettuare le ricerca per ridurre i risultati in base alla parte di testo digitato if(gh!=38 && gh!=40 && gh!=13 && gh!=9 && dbok==1){ // Prepara la variabile con il testo digitato (cerca id+'_lb' e se assnte usa id) if(document.getElementById(id+'_lb')){var a=document.getElementById(id+'_lb').value;}else{var a=document.getElementById(id).value;} if(gh!=8 && gh!=46){a+=String.fromCharCode(gh);}else{a=a.substring(0,a.length-1);} a=a.toLowerCase(); l=a.length; // Non aggiunge il "delete" ed il "cancel" (keyCode) // Crea array dei record da filtrare if(document.getElementById(id+'_db')){var db=document.getElementById(id+"_db").value; var j = new Array(2000); j=db.split('\n'); var dbn=j.length;}else{var dbn=-1;} // Cerca i record corrispondenti var nr=0; for(i=0;i<=dbn-1;i++){ jx=j[i].split('|'); if(jx[1]){ var tmp=jx[1].toLowerCase(); if(tmp.substring(0,l)==a && nr"+jx[1].substring(l,rrrrl); // Crea i record filtrati (righe della Tabella) var tact="onmouseover=\"ListaKeyOnm('"+id+"','"+nr+"','"+clasn+"');\" onclick=\"ListaKeySet('"+id+"','"+nr+"','"+scriptexe+"');\""; var idrc=""; txt+="\n"; } } } if(document.getElementById(id+"_h")){document.getElementById(id+"_h").innerHTML=txt+'
"+idrc+""+tmptxt+"
';} // Mostra o nasconde il DIV delle opzioni a seconda della presenza di risultati if(nr>0 && l>0){var dvdsp='block';} else{ var dvdsp='none'; if(document.getElementById(id)){ if(locc!='U'){document.getElementById(id).value=''; alert("Selezione non valida, bisogna selezionare un record dai risultati.");} } } if(document.getElementById(id+"_h")){document.getElementById(id+"_h").style.display=dvdsp;} }else{ if(gh==38){ ListaKeyMov(id,gh,clasn); } // Freccia su if(gh==40){ ListaKeyMov(id,gh,clasn); } // Freccia giù if(gh==13){ var num=rfsltmp; ListaKeySet(id,num,scriptexe);} // Pulsante Invio if(gh==9) { document.getElementById(id+"_h").style.display='none';} // Pulsante TAB } } // Mostra il combo con tutti i risultati function ListaKeyFull(id,clasn,scriptexe){ // Crea array dei record if(document.getElementById(id+'_db')){var db=document.getElementById(id+"_db").value; var j = new Array(2000); j=db.split('\n'); var dbn=j.length;}else{var dbn=-1;} var nrm=15; // Numero ri righe massimo da mostrare nel DIV di selezione var txt='\n'; // Cerca i record var nr=0; for(i=0;i<=dbn-1;i++){ jx=j[i].split('|'); if(jx[1]){ nr++; var rrrrl=jx[1].length; //jx[1]=jx[1].replace(/"/gi,'\"'); var tmptxt=jx[1]; // Crea i record filtrati (righe della Tabella) var tact="onmouseover=\"ListaKeyOnm('"+id+"','"+nr+"','"+clasn+"');\" onclick=\"ListaKeySet('"+id+"','"+nr+"','"+scriptexe+"');\""; var idrc=""; txt+="\n"; } } if(document.getElementById(id+"_h")){ document.getElementById(id+"_h").innerHTML=txt+'
"+idrc+""+tmptxt+"
'; document.getElementById(id+"_h").style.display='block'; } } // Cambia lo stato onmouse dei risultati function ListaKeyOnm(id,nr,clasn){ // id è il prefisso dei DIV del gruppo, stato (0 o 1) indica se usare la classe Off o On, classn è il nome della classe (senza Off / On finali) // Legge il numero di righe presenti if(document.getElementById(id+'totrcn')){var nrm=document.getElementById(id+'totrcn').value;}else{var nrm=0;} ListaKeyMov0(id,nrm,clasn); // Deseleziona tutte le righe // Cambia il foglio di stile del record e ne assegna l'id alla variabile globale "rfsltmp" if(document.getElementById(id+'trfsl'+nr)){ document.getElementById(id+'trfsl'+nr).className=clasn+'On'; rfsltmp=nr; } } // Muove su e giù, con i tasti cursore, fra le opzioni filtrate function ListaKeyMov(id,gh,clasn){ // Legge il numero di righe presenti if(document.getElementById(id+'totrcn')){var nrm=document.getElementById(id+'totrcn').value*1;}else{var nrm=0;} ListaKeyMov0(id,nrm,clasn); // Deseleziona tutte le righe // Controllo pulsante UP if(gh==38 && nrm>0){ if(rfsltmp>0 && rfsltmp<=nrm){rfsltmp--;} if(rfsltmp==0){rfsltmp=nrm;} if(document.getElementById(id+'trfsl'+rfsltmp)){document.getElementById(id+'trfsl'+rfsltmp).className=clasn+'On';} // Attiva la riga } // Controllo pulsante DOWN if(gh==40 && nrm>0){ if(rfsltmp>=0 && rfsltmp<=nrm){rfsltmp++;} if(rfsltmp==nrm+1){rfsltmp=1;} if(document.getElementById(id+'trfsl'+rfsltmp)){document.getElementById(id+'trfsl'+rfsltmp).className=clasn+'On';} // Attiva la riga } } // Deseleziona tutte le righe function ListaKeyMov0(id,nrm,clasn){ for(i=1;i<=nrm;i++){ if(document.getElementById(id+'trfsl'+i)){document.getElementById(id+'trfsl'+i).className=clasn+'Off';}} } // Seleziona la riga selezionata, premendo il tasto invio o cliccando con il mouse function ListaKeySet(id,num,scriptexe){ if(document.getElementById(id+'idrfsl'+num) && document.getElementById(id+'rfsl'+num)){ var label=document.getElementById(id+'rfsl'+num).innerHTML; var campoid=document.getElementById(id); if(document.getElementById(id+'_lb')){ campoid.value=document.getElementById(id+'idrfsl'+num).value; // Riporta l'id document.getElementById(id+'_lb').value=label; // Riporta la label }else{ campoid.value=label; // Riporta la label (l'id non è usato in questo caso) } document.getElementById(id+"_h").style.display='none'; if(scriptexe!=''){eval(""+scriptexe+"('"+id+"');");} }else{var tmp="record #NUM# non trovato "; tmp=tmp.replace(/#NUM#/,num); alert(tmp);} } // FINE blocco funzioni ListaKeyAct // Funzione che controlla che il file sia in un'estensione valida e nel limite della dimensione consnetita // Servono dei campi nellla pagina: campopeso con il peso in Kb e campoext con la lista delle estensioni accettate separate da spazio function FileCheckUpload(campo,campopeso,campoext){ var ilfileogg=document.getElementById(campo); var ilfile=ilfileogg.value; var err=0; var maxsize=document.getElementById(campopeso).value*1; var extlist=document.getElementById(campoext).value; leext=extlist.split(' '); if(ilfile!=''){ var filesize=ilfileogg.files[0].size; }else{ var filesize=0; } if(filesize>0){ var unita='Byte'; var toshow=filesize; if(filesize>1024){ unita='Kb'; toshow=toshow/1024; } if(filesize>1024){ unita='Mb'; toshow=toshow/1024; } // Ridimensione in Kb o Mb la dimensione per mostrare l'eventuale errore di file overquota toshow=Math.round(toshow*100)/100; var file_kb=filesize/1024; if(file_kb>maxsize){ var toshow2=maxsize/1024; var toobig="Il file è di #SIZE# #UNIT#, il limite è di #SIZE2# Mb"; toobig=toobig.replace(/#SIZE#/,toshow); toobig=toobig.replace(/#UNIT#/,unita); toobig=toobig.replace(/#SIZE2#/,toshow2); alert(toobig); err++; } } j=ilfile.split('.'); var tmp=j.length-1; var exts=''; for(i=0;i<=tmp;i++){ exts=j[i]; } exts=exts.toLowerCase(); if(exts!=''){ var extcheck=0; for(var key in leext){ if(leext[key]==exts){extcheck=1;} } if(extcheck==0){ var wrongtype="Il formato #EXT# del file non è supportato"; wrongtype=wrongtype.replace(/#EXT#/,exts); alert(wrongtype); err++; } } return err; } function CargoFldUpdCheck(numfile){ numfile=numfile*1; // Controlla formato e peso del file e riporta il valore per i controlli di inserimento della spedizione if(document.getElementById('CargoFile'+numfile+'Err').value!=''){var esito=FileCheckUpload('CargoFile'+numfile,'b2bfilemaxmb','b2bfileext');}else{var esito=0;} var cmdflerr=document.getElementById('CargoFile'+numfile+'Err'); cmdflerr.value=esito; var cmdfl=document.getElementById('CargoFile'+numfile); if(cmdflerr.value!='0'){cmdfl.className=KoFl;}else{cmdfl.className=OkFl;} // Mostra il file successivo a quello inserito if(numfile<10){ var nextfl=numfile+1; document.getElementById('CargoFile'+nextfl+'Bx').style.display='block'; } }