/**
 * @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:"Username malformed! (at least 3 characters)."});
Register.prototype.fields.push({id:"userpass", pattern:/^.{5,}$/, message:"Password malformed (at least 5 characters)."});
Register.prototype.fields.push({id:"email", pattern:/^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){1}$/, message:"E-Mail malformed."});
Register.prototype.fields.push({id:"nome", pattern:/^[A-Za-z\u00C0-\u00F6\u00F8-\u00FF' ]{1,}$/, message:"Name malformed."});
Register.prototype.fields.push({id:"cognome", pattern:/^[a-zA-Z\u00C0-\u00F6\u00F8-\u00FF' ]{1,}$/, message:"Surname malformed."});

Register.prototype.submit = function()
{
	if (document.getElementById('agree_form').checked == false)
	{
		alert("You must agree to the terms of service and privacy policy.");
		return;
	}
	
	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.borderColor = "red";
			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;
	this.params["recaptcha_challenge_field"] = document.getElementById("recaptcha_challenge_field").value;
	this.params["recaptcha_response_field"] = document.getElementById("recaptcha_response_field").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';
		/*
		if (document.getElementById(response['fieldid'] + "_response"))
			document.getElementById(response['fieldid'] + "_response").style.backgroundColor = 'red';
		*/
	}

	document.getElementById(response['fieldid'] + "_response").innerHTML = decodeURIComponent(response['message']);
}

var regobj = new Register();
