/**
 * @author Cristiano
 */

function Register() {}

Register.prototype = new AjaxModule();
Register.prototype.constructor = Register;

Register.prototype.server_page = "../include_user/php/subscribe.php";

Register.prototype.fields = [];
Register.prototype.fields.push({id:"username", pattern:/^[\w\W\d\s_-]{3,}$/, message:"Nome utente non valido (min. 3 caratteri)."});
Register.prototype.fields.push({id:"userpass", pattern:/^.{5,}$/, message:"Password non valida (min. 5 caratteri)."});
Register.prototype.fields.push({id:"email", pattern:/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})){1}$/, message:"Indirizzo e-mail non valido."});
Register.prototype.fields.push({id:"nome", pattern:/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF' ]{1,}$/, message:"Nome non valido."});
Register.prototype.fields.push({id:"cognome", pattern:/^[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF' ]{1,}$/, message:"Cognome non valido."});
Register.prototype.fields.push({id:"telefono", pattern:/^[0-9\+]{6,}$/, message:"Telefono non valido."});

Register.prototype.submit = function()
{
	for (var i = 0; i < Register.prototype.fields.length; i++)
	{
		var check = new String(document.getElementById(Register.prototype.fields[i].id).value);
		
		if (!check.match(Register.prototype.fields[i].pattern)) 
		{
			document.getElementById(Register.prototype.fields[i].id).style.borderColor = "red";
			document.getElementById(Register.prototype.fields[i].id).style.color = "black";
			document.getElementById(Register.prototype.fields[i].id + "_response").style.color = "black";
			document.getElementById(Register.prototype.fields[i].id + "_response").innerHTML = Register.prototype.fields[i].message;
			return;
		}
		else 
		{
			document.getElementById(Register.prototype.fields[i].id).style.borderColor = "green";
			document.getElementById(Register.prototype.fields[i].id).style.color = "black";
			document.getElementById(Register.prototype.fields[i].id + "_response").innerHTML = "";
			this.params[Register.prototype.fields[i].id] = check;
		}
	}

	this.params["profilo"] = document.getElementById("profilo").value;

	document.getElementById("php_response").style.backgroundColor = '';
	this.setLoadingTarget(document.getElementById("php_response"));
	this.setTarget(Register.prototype.handle_response);
	this.makeRequest(Register.prototype.server_page);
}

Register.prototype.handle_response = function(response)
{
	response = decodeUrlVars(response);

	if (response['success'] == 'no')
	{
		document.getElementById("php_response").innerHTML = '';
		if (document.getElementById(response['fieldid']))
			document.getElementById(response['fieldid']).style.borderColor = 'red';
	}

	document.getElementById(response['fieldid'] + "_response").innerHTML = decodeURIComponent(response['message']);
}

var regobj = new Register();
