/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/Projects/Packer/
*/

// V:\1.1.007\js\funzioni.js

function removeSplash(callback){try{var loading=Ext.get('splash');loading.fadeOut({duration:0.5,remove:true,callback:callback});}catch(e){}}
function copiaResidenza(){var form=dichiarazione.form_dichiarante.fields;var comuneResDic=form.comune_residenza.getValue()
var provinciaResDic=form.prov_residenza.getValue()
var capDic=form.cap_residenza.getValue()
form.comune_atti.setValue(comuneResDic);form.prov_atti.setValue(provinciaResDic);form.cap_atti.setValue(capDic);}
function aggiungiCongiuntaTree(){try{if(!treeMenu.getRootNode().findChild('id','rootCongiunta')){treeMenu.getRootNode().appendChild(coniuge);}}
catch(e){}}
function eliminaCongiuntaTree(){try{if(treeMenu.getRootNode().findChild('id','rootCongiunta')){treeMenu.getRootNode().findChild('id','rootCongiunta').remove();}}
catch(e){log.error("eliminaCongiuntaTree -> ",e);}}
function addDescrizioneTree(text,idNodo){try{var nodo=treeMenu.getRootNode().findChild('id',idNodo);nodo.setText(text);}
catch(e){log.error("addDescrizioneTree -> ",e);}}
function clearWinAndStatus(){main.getComponent(WINDOW_MAIN).close();main.getComponent(WINDOW_MAIN).destroy();}
function chiudiFinestre(){Ext.WindowMgr.each(function(finestra){if(finestra.isVisible()&&finestra.id!=WINDOW_UPDATE)finestra.close();})}
function chiudiInfo(){myWindowMgr.each(function(finestra){if(finestra.isVisible()&&finestra.id!=WINDOW_UPDATE)finestra.close();})}
function convertType(rtype){switch(rtype){case'bigint':case'int':case'smallint':case'tinyint':return'int';break;case'bit':case'boolean':return'boolean';break;case'decimal':case'numeric':case'money':case'smallmoney':case'float':case'real':return'float';break;case'datetime':case'smalldatetime':case'timestamp':return'date';break;case'char':case'varchar':case'text':case'nchar':case'nvarchar':case'ntext':case'binary':case'varbinary':return'string';break;}}
function disattivaGenericAjaxLoading(){Ext.Ajax.un('beforerequest',loading);Ext.Ajax.un('requestcomplete',hideLoading);}
function attivaGenericAjaxLoading(){Ext.Ajax.on('beforerequest',loading);Ext.Ajax.on('requestcomplete',hideLoading);}
function getFields(sql){var info=[];var values=sql.match(/\[\w+]\s+(INTEGER|TEXT\s*\(\d+\)|FLOAT|BLOB|BOOLEAN)(\s+NOT\s+NULL\s+PRIMARY\s+KEY|\s+NOT\s+NULL|s*)/gi)
for(var i=0;i<values.length;i++){fieldname=values[i].match(/\[\w+]/gi)[0];datatype=values[i].match(/(INTEGER|TEXT\s*\(\d+\)|FLOAT|BLOB|BOOLEAN)/gi)[0];nullable=values[i].match(/\s+NOT\s+NULL/gi)==null;primarykey=values[i].match(/\s+PRIMARY\s+KEY/gi)!=null;info.push({mapping:fieldname,type:datatype,nullable:nullable,primaryKey:primarykey})}
return info;}
function controllaTabelle(check){for(var i=0,len=TABELLE_DICHIARAZIONE.length;i<len;i++){if(check==TABELLE_DICHIARAZIONE[i]){return false};}
return true;}
function cercaComune(comune,campo,filtro){campo=(campo===undefined)?1:campo;filtro=filtro||function(){return true};var search=obj_comuni.records;for(var i=0,len=search.length;i<len;i++){if(filtro(search[i])){if(search[i][campo]==comune){return search[i]}}}
return false;}
function escapeApici(string){if(typeof(string)=='string')return string.replace(/'/g,"''");else return string;}
function checkNull(value){return((value==='null'||value==='NULL'||value===null||value===undefined||value==='')?"NULL":"'"+(escapeApici(value.toString()))+"'");}
function settaBottoniModello(){if(dichiarazione!=undefined){var text=dichiarazione.getTipoCongiunta();if(dichiarazione.congiunta){if(text.length>10){text=text.slice(0,9)+'.';}
btnDichiarante.setIconClass('x-btn-modello-'+dichiarazione.sesso.toLowerCase());btnCongiunta.setIconClass('x-btn-modello-'+dichiarazione.congiunta_sesso.toLowerCase());btnCongiunta.setText(text)
btnCongiunta.show();}else{btnDichiarante.setIconClass('x-btn-modello-'+dichiarazione.sesso.toLowerCase());btnDichiarante.toggle(true);btnCongiunta.hide();}
btnDichiarante.show();return text;}else{return false;}}
function setStatusBar(){var sbText='';if(!Ext.isEmpty(dichiarazione)){sbText="<table><tr><td><img src="+IMG_SESSO[dichiarazione.sesso]+"></img></td><td>"+dichiarazione.cognome+"&nbsp;"+dichiarazione.nome+"</td>";if(dichiarazione.congiunta){sbText+="<td>&nbsp;</td><td><img src="+IMG_SESSO[dichiarazione.congiunta_sesso]+"></img></td><td>"+dichiarazione.congiunta_cognome+"&nbsp;"+dichiarazione.congiunta_nome+"</td>"}
sbText+="</tr></table>";}
sb.setStatus({text:sbText});}
function Molteplicita(page){switch(page){case'QA':return M_QA
break;case'QB':return M_QB
break;case'QB_DENS':return M_QB
break;}}
function impostaRigoFam(store){var e,Conta_F1,Conta_F_A,Modello,Conta
Conta_F1=0;Conta_F_A=2;Modello=1;var tipo;Conta=0;var cfiscCurrent=dichiarazione.getCurrentCfisc();try{var rec=conn.queryBy(getQuery(SEL_FAMILIA,[cfiscCurrent]));Ext.each(rec.rows,function(item,index,allItems){if(item.F2!='C'){if(item.F2=='F1'){Conta_F1=Conta_F1+1;tipo='2/'+Conta_F1;conn.exec(getQuery(UPD_RIGO,[tipo,item.keyId]));}
else{Conta=Conta+1;Conta_F_A=Conta_F_A+1;if(Conta==4){Modello=Modello+1;Conta_F_A=3;Conta=1;}
tipo=Conta_F_A+'/'+Modello;conn.exec(getQuery(UPD_RIGO,[tipo,item.keyId]));}}
else{tipo='1/1';conn.exec(getQuery(UPD_RIGO,[tipo,item.keyId]));}},this)}catch(e){log.error("Funzioni#1 -> ",e);}}
function impostaStudenteFam(){var rec=conn.queryBy('SELECT * FROM FAMILIA ORDER BY F1,keyId ASC');var currentCfisc='';Ext.each(rec.rows,function(item,index,allitems){if(currentCfisc===item.F1){conn.exec(getQuery(UPD_STUDENTE,[0,item.keyId]));}else{conn.exec(getQuery(UPD_STUDENTE,[1,item.keyId]));}
currentCfisc=item.F1;},this)}
function impostaRigo(Quadro,inipermod,maxpermod,lista){var rigo,modello,i,totalerighi,returnRigo;totalerighi=lista;if(totalerighi>0){modello=1;rigo=inipermod-1;for(i=0;i<=totalerighi-1;i++){rigo=rigo+1;if((rigo)<=(maxpermod+inipermod-1)){returnRigo=Quadro+rigo;if(modello>1)returnRigo=Quadro+rigo+'/'+modello
else returnRigo=Quadro+rigo}
else{modello=modello+1;rigo=inipermod;returnRigo=Quadro+rigo;if(modello>1)returnRigo=Quadro+rigo+'/'+modello
else returnRigo=Quadro+rigo;}}}
return returnRigo;}
function impostaRigo2(Quadro,lista){var rigo=0,i,totalerighi,all='All. ',returnRigo='';totalerighi=lista;if(totalerighi>0){for(i=0;i<=totalerighi-1;i++){rigo=rigo+1;if(rigo>1){returnRigo=Quadro+all+rigo;}
else{returnRigo=Quadro;}}}
return returnRigo;}
function impostaRigo3(Quadro,lista){var rigo=0,i,totalerighi,returnRigo='';totalerighi=lista;if(totalerighi>0){for(i=0;i<=totalerighi-1;i++){rigo=rigo+1;returnRigo=Quadro+rigo;}}
return returnRigo;}
function impostaRigo4(Quadro,lista){var rigo=0,i,totalerighi,all='/',returnRigo='';totalerighi=lista;if(totalerighi>0){for(i=0;i<=totalerighi-1;i++){rigo=rigo+1;if(rigo>1){returnRigo=Quadro+all+rigo;}
else{returnRigo=Quadro;}}}
return returnRigo;}
function impostaRigo5(Quadro,lista){var rigo=5,i,j=0,k=1,totalerighi,all='/',returnRigo='';totalerighi=lista;if(totalerighi>0){for(i=0;i<=totalerighi-1;i++){j+=1;rigo=rigo+1;if(j<4){if(k==1){returnRigo=Quadro+rigo;}
else{returnRigo=Quadro+rigo+all+k;}}
else{j=1;rigo=6
k+=1;returnRigo=Quadro+rigo+all+k;}}}
return returnRigo;}
function generaCodiceRandom(){var data=new Date();return data.getTime();}
function returnModello(val,count){var rigo=(val)?val:impostaRigo('B',1,Molteplicita('QB_DENS'),count+1);var modello=rigo.split('/');if(modello.length==1){return 1;}else{return modello[1];}}
function returnModelloQBDens(id){if((id%3)>0)return parseInt(id/3,10)+1
else return parseInt(id/3,10)}
function controllo_data(stringa){var espressione=/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;if(!espressione.test(stringa)){return false;}else{var anno=parseInt(stringa.substr(6),10);var mese=parseInt(stringa.substr(3,2),10);var giorno=parseInt(stringa.substr(0,2),10);var data=new Date(anno,mese-1,giorno);if(data.getFullYear()==anno&&data.getMonth()+1==mese&&data.getDate()==giorno){return true;}else{return false;}}}
function confronta_data(data1,data2){var data1str=data1.substr(6)+data1.substr(3,2)+data1.substr(0,2);var data2str=data2.substr(6)+data2.substr(3,2)+data2.substr(0,2);if(data2str-data1str<0){return false;}else{return true;}}
function giorni_differenza(data1,data2){var giorni_differenza=data2.format('z')-data1.format('z')+1;if((data1.format('n')<=2)&&(data2.format('n')>2)&&(GIORNIANNO==366)){giorni_differenza--;}
if(giorni_differenza<0){Toast('Attenzione','La data di inizio non pu'+UNI_O+' essere pi'+UNI_U+' grande della data di fine');}
return(giorni_differenza);}
function readResultResponse(resp,successFn,failureFn){try{var jSon=Ext.util.JSON.decode(resp.responseText);if(jSon.Success=='True'){successFn.call(this,jSon);}else{failureFn.call(this,jSon);log.error('Errore RESPONSE -> SERVIZIO: '+jSon.Service+'; MESSAGGIO: '+unescape(jSon.ErrorMessage));}}catch(e){getToastMsg(MSG_GENERIC_ERROR);log.error("Funzioni#2 -> ",e);}}
function successResultResponse(resp){try{var jSon=Ext.util.JSON.decode(resp.responseText);log.trace("successResultResponse -> ",jSon);return(jSon.Success=='True');}catch(e){log.error("Funzioni#2 -> ",e);return false}}
function generateSerialID(){try{var data=new Date();var timeStamp=data.getTime();var random=Math.round(1000000*Math.random());log.info('GENERATO SERIALID -> '+timeStamp+random+' Fanne buon uso :-)!!!');return timeStamp.toString()+random.toString();}catch(e){log.error('Errore generazione SerialID',e);}}
function anni75(cfisc){try{var record=conn.query(getQuery(SEL_DTNAS,[cfisc]));var rec=new Ext.data.Record(record.rows[0]);var data_nascita=rec.get('DNASCITA');data_nascita=splitDate2(data_nascita);var data2='31/12/'+(ANNO_DICHIARAZIONE-75);var risultato=confronta_data(data_nascita,data2);return risultato}catch(e){log.error('Errore -> function anni75',e);}}
function anni80(cfisc){try{var record=conn.query(getQuery(SEL_DTNAS,[cfisc]));var rec=new Ext.data.Record(record.rows[0]);var data_nascita=rec.get('DNASCITA');data_nascita=splitDate2(data_nascita);var data2='31/12/'+(ANNO_DICHIARAZIONE-80);var risultato=confronta_data(data_nascita,data2);return risultato}catch(e){log.error('Errore -> function anni80',e);}}
function anni75esatti(cfisc){var record=conn.query(getQuery(SEL_DTNAS,[cfisc]));var rec=new Ext.data.Record(record.rows[0]);var data_nascita=rec.get('DNASCITA');var anno_nascita=parseInt(data_nascita.substr(4),10);var anno2=ANNO_DICHIARAZIONE-75;if(anno_nascita-anno2==0){return true;}
else{return false;}}
function anni80esatti(cfisc){var record=conn.query(getQuery(SEL_DTNAS,[cfisc]));var rec=new Ext.data.Record(record.rows[0]);var data_nascita=rec.get('DNASCITA');var anno_nascita=parseInt(data_nascita.substr(4),10);var anno2=ANNO_DICHIARAZIONE-80;if(anno_nascita-anno2==0){return true;}
else{return false;}}
function convertiStrNum(val){if(Ext.isEmpty(val)){val=0;}
else{val=parseInt(val,10);}
return val}
function checkMinore(data){var anno=data.slice(4);if((ANNO_DICHIARAZIONE-anno)>=18)return true;else return false;}
function listaAnni(inizio,numero){var lista,elem;for(var i=0;i<numero+1;i++){elem=inizio+i;if(i==0){lista=elem;}
else if(i==numero){lista=lista+' o '+elem;}
else{lista=lista+', '+elem;}};return lista}
function generaCodice(nome,cognome,sesso,giorno,mese,anno,comune){nome=nome.toUpperCase();cognome=cognome.toUpperCase();sesso=sesso.toUpperCase();comune=comune.toUpperCase();giorno=parseInt(giorno,10);mese=parseInt(mese,10);anno=parseInt(anno,10);var validi,i,s,set1,set2,setpari,setdisp;set1="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";set2="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";setpari="ABCDEFGHIJKLMNOPQRSTUVWXYZ";setdisp="BAKPLCQDREVOSFTGUHMINJWZYX";var codNome=generaCfisc(nome,true);var codCognome=generaCfisc(cognome);var codAnno=anno.toString().slice(2,4);var codMese=ARRAY_CODICI_MESI[mese-1];var codGiorno=(sesso=="M")?giorno:giorno+40;if(codGiorno<10)codGiorno="0"+codGiorno;else codGiorno=codGiorno.toString();var codComune=comune;var cod=codCognome+codNome+codAnno+codMese+codGiorno+codComune;s=0;for(i=1;i<=13;i+=2)
s+=setpari.indexOf(set2.charAt(set1.indexOf(cod.charAt(i))));for(i=0;i<=14;i+=2)
s+=setdisp.indexOf(set2.charAt(set1.indexOf(cod.charAt(i))));var codControllo=String.fromCharCode(s%26+'A'.charCodeAt(0));cod=cod+codControllo;return cod.toUpperCase();}
function filtraComuniEsistenti(comune){return(comune[3]==0);}
function filtraComuniEsteri(comune){return(comune[3]==1);}
function allValidChars(email){var parsed=true;var validchars="abcdefghijklmnopqrstuvwxyz0123456789@.-_";for(var i=0;i<email.length;i++){var letter=email.charAt(i).toLowerCase();if(validchars.indexOf(letter)!=-1)continue;parsed=false;break;}
return parsed;}
function isValidEmail(email,required){if(required==undefined){required=true;}
if(email==null){if(required){return false;}
return true;}
if(email.length==0){if(required){return false;}
return true;}
if(!allValidChars(email)){return false;}
if(email.indexOf("@")<1){return false;}else if(email.lastIndexOf(".")<=email.indexOf("@")){return false;}else if(email.indexOf("@")==email.length){return false;}else if(email.indexOf("..")>=0){return false;}else if(email.indexOf(".")==email.length){return false;}
return true;}
function registraUtente(stringa,callback){Ext.Ajax.request({url:NEWUSER,params:{token:_c2(stringa),db:LOGIN},bypassOffline:true,scriptTag:true,success:function(response){if(callback){callback.call(this,response);}},failure:function(){alert("failure");}});}
function registrami(){var nomeutente=document.getElementById('nomeutente');var password=document.getElementById('password');var email=document.getElementById('email');var msg=document.getElementById('msg');var btn=document.getElementById('reg');var validator=new RegExp("[^A-Za-z0-9_\.]");if(nomeutente.value&&password.value&&email.value){if(!validator.test(nomeutente.value)){if(password.value.length>=8){if(isValidEmail(email.value)){try{var url='email='+email.value+'|user='+nomeutente.value+'|password='+password.value;msg.innerHTML='<font color="black">Verifica in corso...</font>';btn.disabled=true;checkTaxOnline.call(this,email.value,function(){registraUtente(url,function(response){if(response.responseObject.Success=='True'){msg.innerHTML='<font color="green">Registrazione avvenuta, tra qualche secondo riceverai per email il link per attivare il tuo account.</font>'}else{msg.innerHTML='Utente gi&agrave; presente, riprova';btn.disabled=false;setTimeout(function(){msg.innerHTML='';},3000);}});});}catch(e){var prova=true;}}else{msg.innerHTML='Email non valida'
setTimeout(function(){msg.innerHTML='';},3000);}}else{msg.innerHTML='La password deve essere di almeno 8 caratteri'
setTimeout(function(){msg.innerHTML='';},3000);}}else{msg.innerHTML='Il nome utente pu&ograve; contenere solo caratteri alfanumerici, punto (.) e underscore (_)'
setTimeout(function(){msg.innerHTML='';},3000);}}else{msg.innerHTML='Compilare tutti i campi'
setTimeout(function(){msg.innerHTML='';},3000);}}
function checkTaxOnline(email,callback){Ext.Ajax.request({url:TAXONLINEREG,params:{check_email:email},bypassOffline:true,scriptTag:true,success:function(response){if(response.responseObject){callback.call(this,response);}else{if(confirm("Impossibile creare l'utente. L'email non risulta registrata in taxonline. Registrarla ora?")){document.location.href=REGISTRATIONTX;}}},failure:function(){alert('Problemi di connessione!');}});}
function mandaRichiestaDati(email,url,callback){Ext.Ajax.request({url:url,params:{email:email,db:LOGIN},bypassOffline:true,scriptTag:true,success:function(response){callback.call(this,response);},failure:function(){alert('Problemi di connessione!');}});}
function recuperaDati(type){var email=document.getElementById('email');var msg=document.getElementById('msg');if(isValidEmail(email.value)){switch(type){case 1:mandaRichiestaDati.call(this,email.value,REINVIADATI,function(response){if(response.responseObject.Success=='True'){msg.innerHTML='<font color="red">'+unescape(response.responseObject.Message)+'</font>'
setTimeout(function(){msg.innerHTML='';},4000);}});break;case 2:mandaRichiestaDati.call(this,email.value,SENDACTEMAIL,function(response){if(response.responseObject.Success=='True'){msg.innerHTML='<font color="red">'+unescape(response.responseObject.Message)+'</font>'
setTimeout(function(){msg.innerHTML='';},4000);}});break;}}else{msg.innerHTML='<font color="red">Email non valida</font>'
setTimeout(function(){msg.innerHTML='';},3000);}}
function integerDigit(value,decimal){var fixStr='';var v=value.toString();for(var i=0;i<decimal-v.length;i++){fixStr=fixStr+'0';}
v=fixStr+v;return v;}
function isIE7(){if(BrowserDetect.browser=='Explorer'&&BrowserDetect.version<8)return true
else return false}
