function Register()
{
	this.server_page = "/include_user/php/subscribe.php";
	this.fields = new Array();
	
	this.fields.push({id:"username", required:true, pattern:/^[a-zA-Z0-9_-]{3,}$/, message:"Nome Utente non valido (min. 3 caratteri)."});
	this.fields.push({id:"userpass", required:true, pattern:/^[a-zA-Z0-9\u00C0-\u00F6\u00F8-\u00FF]{8,}$/, message:"Password non valida (min. 8 caratteri alfanumerici)."});
	this.fields.push({id:"email", required:true, pattern:/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})){1}$/, message:"Indirizzo e-mail non valido."});
	
	this.fields.push({id:"nome", required:true, pattern:/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF ]{3,}$/, message:"Nome non valido."});
	this.fields.push({id:"cognome", required:true, pattern:/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF'′’‘ ]{3,}$/, message:"Cognome non valido."});
	
	this.fields.push({id:"ragionesociale", required:false, pattern:/^[A-Za-z0-9.-\u00C0-\u00F6\u00F8-\u00FF ]{3,}$/, message:"Ragione sociale non valida."});
	this.fields.push({id:"partitaiva", required:false, pattern:/^[a-zA-Z0-9_-]{3,}$/, message:"Partita IVA non valida."});
	this.fields.push({id:"codicefiscale", required:true, pattern:/^[a-zA-Z0-9_-]{3,}$/, message:"Codice fiscale non valido."});
	this.fields.push({id:"codicesdi", required:false, pattern:/^[A-Za-z0-9]{7}$/, message:"Codice univoco SDI non valido. Deve essere di 7 caratteri alfanumerici."});
	this.fields.push({id:"pec", required:false, pattern:/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){1}$/, message:"Indirizzo PEC non valido."});
	
	this.fields.push({id:"indirizzo", required:true, pattern:/^[a-zA-Z0-9,′’‘\/'\u00C0-\u00F6\u00F8-\u00FF\. ]{5,}$/, message:"Indirizzo non valido."});
	
		this.fields.push({id:"cap", required:false, pattern:/^[0-9]{5}$/, message:"CAP non valido."});
	
	
	this.fields.push({id:"localita", required:true, pattern:/^[A-Za-z0-9\u00C0-\u00F6\u00F8-\u00FF'′’‘ ]{2,}$/, message:"Localit\u00E0 non valida."});
	this.fields.push({id:"provincia", required:true, pattern:/^[A-Za-z0-9\u00C0-\u00F6\u00F8-\u00FF'′’‘ ]{2,}$/, message:"Provincia non valida."});
	this.fields.push({id:"nazione", required:true, pattern:/^[A-Za-z0-9\u00C0-\u00F6\u00F8-\u00FF'′’‘ ]{2,}$/, message:"Nazione non valida."});
	this.fields.push({id:"telefonoprincipale", required:true, pattern:/^.{0,}$/, message:"Telefono fisso non valido."});
	this.fields.push({id:"telefonocellulare", required:true, pattern:/^[a-zA-Z0-9+\-,\/'\u00C0-\u00F6\u00F8-\u00FF ]{5,}$/, message:"Cellulare non valido."});
	this.fields.push({id:"fax", required:false, pattern:/^.{0,}$/, message:"Fax non valido."});
    this.submit = function(standalone)
    {
		var htmlError = new String('
Errore
');
		var errors = false;
		for (var i = 0; i < this.fields.length; i++)
		{
			var element = document.getElementById(this.fields[i].id);
			var check = new String(element.value);
			var field_error = false;
			var check_piva_cf = true;
			
			if (this.fields[i].required && !check.match(this.fields[i].pattern) && check_piva_cf)
			{
				element.style.color = "red";
				htmlError += '
' + this.fields[i].message + '
';
				errors = true;
				field_error = true;
			}
			else
			{
				//Controlla che i campi Codice SDI e PEC siano verificati solo se valorizzati
				if(check != '' && (this.fields[i].id == 'pec' || this.fields[i].id == 'codicesdi'))
				{
					if(!check.match(this.fields[i].pattern)){
						element.style.color = "red";
						htmlError += '
' + this.fields[i].message + '
';
						errors = true;
						field_error = true;
					}else{
						element.style.color = "";
						this.params[this.fields[i].id] = check;
						console.log(this.fields[i].id+' -> '+check);
					}
				}else{
					element.style.color = "";
					this.params[this.fields[i].id] = check;
					console.log(this.fields[i].id+' -> '+check);
				}
			}
			
		}
		var cond = document.getElementById('condizioni');
		if (!cond.checked)
		{
			errors = true;
			htmlError += '
Accetta le condizioni generali di vendita.
';
		}
		var privacy = document.getElementById('privacy');
		if (!privacy.checked)
		{
			errors = true;
			htmlError += '
Autorizza il trattamento dei dati personali.
';
		}
		htmlError += '
');
		document.getElementById("php_response").innerHTML = '';
		if (!success1)
		{
			htmlMessage += '
Errore
';
			htmlMessage += '
' + message + '