/**
 * onArcade 2.4.0
 * Copyright © 2006-2011 Hans Mäesalu & Eveterm OÜ, All Rights Reserved
 **
 * ONARCADE IS NOT FREE SOFTWARE!
 * http://www.onarcade.com
 **
 * Registration form actions.
 **/

var register = {
	form: null,
	username: null,
	password: null,
	password_2: null,
	email: null,
	email_2: null,

	second_password: false,
	second_email: false,

	// show error
	error: function(is_error, message, field, field_2) {
		// field color
		field.css("border-color", (is_error) ? "red" : "green");
		if (field_2 != undefined) {
			field_2.css("border-color", (is_error) ? "red" : "green");
		}

		// image next to field
		var error_image;
		if (field.next("img").size() > 0 && field.next("img").hasClass("error_image")) {
			error_image = field.next("img");
		} else {
			error_image = $.createElement("img").addClass("error_image").css({width: "16px", height: "16px"})
				.insertAfter(field);
		}
		error_image.attr("src", siteurl + "images/" + (is_error ? "error" : "ok") + ".png");

		// error message
		if (message.length > 0) {
			error.insert(message, this.form, {"error": is_error});
		} else {
			if (this.form.prev().size() > 0 && (this.form.prev().hasClass("error") || this.form.prev().hasClass("error_green"))) {
				this.form.prev().hide();
			}
		}
	},
	// verify username
	check_username: function(username) {
		if (username.length < 3 || username.length > 25) {
			this.error(true, lang.username_between, this.username);
		} else {
			$.post(siteurl + "profile.php?a=registration_ajax&ajax=username", {"username": username}, function(response) {
				register.error(response.error, response.message, register.username);
			}, "json");
		}
	},
	// verify password
	check_password: function(password) {
		if (password.length < 3) {
			this.error(true, lang.password_short, this.password_2, this.password);
		} else if (this.second_password) {
			if (this.password.val() != this.password_2.val()) {
				this.error(true, lang.passwords_not_match, this.password_2, this.password);
			} else {
				this.error(false, "", this.password_2, this.password);
			}
		} else {
			this.password.css("border-color", "green");
			this.form.prev(".error").hide();
		}
	},
	// verify email
	check_email: function(email) {
		if (this.second_email && this.email.val() != this.email_2.val()) {
			this.error(true, lang.emails_not_match, this.email_2, this.email);
		} else {
			$.post(siteurl + "profile.php?a=registration_ajax&ajax=email", {"email": email}, function(response) {
				if (!register.second_email && !response.error) {
					register.email.css("border-color", "green");
					register.form.prev(".error").hide();
				} else {
					register.error(response.error, response.message, register.email_2, register.email);
				}
			}, "json");
		}
	},
	// submit form
	submit: function() {
		if (register.form.find("input[name='agree']").is(":checked")) {
			return true;
		} else {
			error.insert(lang.agree, register.form);
			return false;
		}
	},
	init: function() {
		image_verification.attach("image_verification"); // image verification

		register.form = $("#reg_form").submit(register.submit);
		register.username = register.form.find("input[name='username']:first").blur(function() {
			register.check_username($(this).val());
		});
		register.password = register.form.find("input[name='password']:first").blur(function() {
			register.check_password($(this).val());
		});
		register.password_2 = register.form.find("input[name='password_2']:first").blur(function() {
			register.second_password = true;
			register.check_password($(this).val());
		});
		register.email = register.form.find("input[name='email']:first").blur(function() {
			register.check_email($(this).val());
		});
		register.email_2 = register.form.find("input[name='email_2']:first").blur(function() {
			register.second_email = true;
			register.check_email($(this).val());
		});
	}
};
