Ext.apply(Ext.form.VTypes,{ip_addressText:'This field should be a valid IP address',no_whitespaceText:'This field should not contain white spaces',passwordText:'Invalid password entered',ip_address:function(ipaddr){var re=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;if(re.test(ipaddr)){var parts=ipaddr.split(".");if(parseInt(parseFloat(parts[0]))==0){return false;}
for(var i=0;i<parts.length;i++){if(parseInt(parseFloat(parts[i]))>255){return false;}}
return true;}else{return false;}},password:function(pw){var o={lower:0,upper:0,alpha:0,numeric:0,special:0,length:[0,Infinity],custom:[],badWords:[],badSequenceLength:0,noQwertySequences:false,noSequential:false};var options={lower:1,upper:1,alpha:1,numeric:1,special:1,length:[8,10],badWords:['massimo','password'],badSequenceLength:4};for(var property in options)o[property]=options[property];var re={lower:/[a-z]/g,upper:/[A-Z]/g,alpha:/[A-Z]/gi,numeric:/[0-9]/g,special:/[\W_]/g},rule,i;if(pw.length<o.length[0]||pw.length>o.length[1])return false;for(rule in re){if((pw.match(re[rule])||[]).length<o[rule])return false;}
for(i=0;i<o.badWords.length;i++){if(pw.toLowerCase().indexOf(o.badWords[i].toLowerCase())>-1)return false;}
if(o.noSequential&&/([\S\s])\1/.test(pw))return false;if(o.badSequenceLength){var lower="abcdefghijklmnopqrstuvwxyz",upper=lower.toUpperCase(),numbers="0123456789",qwerty="qwertyuiopasdfghjklzxcvbnm",start=o.badSequenceLength-1,seq="_"+pw.slice(0,start);for(i=start;i<pw.length;i++){seq=seq.slice(1)+pw.charAt(i);if(lower.indexOf(seq)>-1||upper.indexOf(seq)>-1||numbers.indexOf(seq)>-1||(o.noQwertySequences&&qwerty.indexOf(seq)>-1)){return false;}}}
for(i=0;i<o.custom.length;i++){rule=o.custom[i];if(rule instanceof RegExp){if(!rule.test(pw))return false;}else if(rule instanceof Function){if(!rule(pw))return false;}}
return true;},no_whitespace:function(string){var invalid=" ";if((string.indexOf(invalid)>-1)){return false;}else{return true;}}});;Ext.onReady(function(){Ext.QuickTips.init();var register_form=new Ext.FormPanel({id:'register_form',labelWidth:120,url:'ajax_server.php?extjsModule=Ajax_Users&site_user_registration=1&extjsMethod='+((!site.logged_in)?'add_user':'edit_user'),frame:true,title:'Informazioni personali e di accesso',defaults:{msgTarget:'side',width:230},defaultType:'textfield',items:[{fieldLabel:'Nome',name:'use_firstname',allowBlank:false,minLength:2,maxLength:200},{fieldLabel:'Cognome',name:'use_lastname',allowBlank:false,minLength:2,maxLength:200},{fieldLabel:'ID Utente',name:'use_username',allowBlank:false,width:140,validator:function(value){if(value.length<6||value.length>10){return'L\'ID Utente deve essere 8-10 caratteri';}
else{return true;}},onBlur:function(){if(!this.isValid()){return;}
var field=this;var username=this.getValue();var button=Ext.ComponentMgr.get('register_form_button');button.disable();this.disable();this.setValue('Controllo ID Utente...');Ext.Ajax.request({url:'ajax_server.php',method:'POST',params:{extjsModule:'Ajax_Users',extjsMethod:'check_username',use_username:username},scope:this,callback:function(request,success,response){if(success){var responsetext=Ext.util.JSON.decode(response.responseText);if(responsetext){field.setValue(username);field.enable();field.validate();button.enable();}
else{field.setValue(username);field.enable();field.markInvalid('ID Utente è stato già in uso');}}}});}},{fieldLabel:'Password',name:'use_password',id:'use_password',allowBlank:false,minLengh:6,maxLengh:10,inputType:'password',width:140},{fieldLabel:'Riinserisci password',name:'retype_password',inputType:'password',width:140,allowBlank:false,validator:function(value){if(register_form.findById('use_password').getValue()!=value){return'Le due passwords non risultano uguali';}else{return true;}}},{fieldLabel:'Email',name:'use_email',vtype:'email',allowBlank:false,width:280,maxLength:255}],buttons:[{id:'register_form_button',text:(!site.logged_in)?'Registrami adesso':'Modifica',handler:function(){if(!register_form.getForm().isValid()){Ext.MessageBox.alert('Errore','Non avete compilato correttamente la forma.');return;}
Ext.MessageBox.show({msg:'Attenda prego',progressText:'Operazione in corso...',width:300,wait:true,waitConfig:{interval:200},icon:'ext-mb-download',animEl:'mb7'});setTimeout(function(){},4000);register_form.getForm().submit({method:'POST',success:function(){setTimeout(function(){Ext.MessageBox.hide();register_form.disable();Ext.example.msg('Operazione eseguita.','Sarai rediretto in pochi secondi.');var redirect='userpage.php';window.location=redirect;},4000);},failure:function(form,action){Ext.MessageBox.hide();obj=Ext.util.JSON.decode(action.response.responseText);if(action.failureType=='server'){Ext.Msg.alert('Registrazione fallita!',obj.errors.reason);}else{Ext.Msg.alert('Attenzione!','Registrazione fallita: '+obj.message);}
register_form.enable();register_form.getForm().reset();}});}}]});if(site.logged_in){if(register_form.form.isDirty()==false){register_form.load({url:'ajax_server.php',method:'POST',params:{extjsModule:'Ajax_Users',extjsMethod:'load_data'}});}}
register_form.render('register_form');});