// TODO: msg handling
$().ready(function() {

	var form_obj = $(".newsletter_form");

	form_obj.validate({
		degug: true,
		submitHandler: function(form) {
			var params = {};

			form_obj.find("input[type='text'], input[type='hidden'], input[type='password'], input[type=checkbox], option[selected], textarea").each(function() { params[this.name || this.parentNode.name] = this.value; });
			form_obj.find("input[type=radio]").each(function() {if(this.checked) params[this.name || this.parentNode.name] = this.value});
			//params.birthdate = params.b_year + "-" + (params.b_month.length == 1 ? '0' + params.b_month : params.b_month) + "-" + (params.b_day.length == 1 ? '0' + params.b_day : params.b_day);
			//params.countrycode = params.country.split('-')[1];
			//params.k = k;

	$.post(form_obj.attr("action"), params, function(data) {
                var _transaction_result = 'OK';
                if(typeof data.Result != 'undefined') {
                    if(data.Result[0].attributes.DES == 'Error') {
                        _transaction_result = 'Error';
                        var _error_num = data.Result[0].attributes.Code;
                    }
                }

                if (_transaction_result == "OK") {
					form_obj.validate().resetForm();
                    window.location.href = 'my-account.html';
				} else if (_error_num != undefined) {
					document.getElementById("captcha_i").src="/imgs/freecap-130-20-28.png?&r=" + Math.random();
					document.getElementById("securitycode").value="";

					var msg = messages.errors.detected;

					var errors = {
                        '19' : {"email" : messages.email.exist},
                        '1100' : {"firstname" : messages.firstname.regex},
                        '1101' : {"firstname" : messages.lastname.regex},
                        '1107' : {"email" : messages.email.regex}};

					if (errors[_error_num]) {
						form_obj.validate().showErrors(errors[_error_num]);
					} else {
						msg = messages.errors.internal;
					}

					$("#msgs").text(msg);

				} else {
					document.getElementById("captcha_i").src="/imgs/freecap-140-40-28.png?r=" + Math.random();
					document.getElementById("securitycode").value="";

					$("#msgs").text(messages.errors.internal);
				}

			}, "json");
			return false;
		},
		rules: {
			"CustomFields[1]": {
				required: true,
				regex: /^[^\d_\.@#\$\/'&\+<>\(\)\*`;\!\?]{1,40}$/
			},
			"CustomFields[2]": {
				required: true,
				regex: /^[^\d_\.@#\$\/'&\+<>\(\)\*`;\!\?]{1,40}$/
			},
			email: {
				required: true,
				regex: /^[\w\d\-\+\.]+@[\w\d\-\.]+$/
			}
		},
		messages: messages,

		errorPlacement: function(error, element) {
			if (element.is(":radio"))
				error.appendTo(element.parent());
			else if (element.is(":checkbox"))
				error.appendTo (element.parent());
			else
				error.appendTo(element.parent());
		},

		success: function(label) {
			label.html("<![CDATA[ ]]>").addClass("checked");
		}
	});
});

jQuery.validator.addMethod("regex", function(value, element, param) {
	return param.test(value);
}, "Invalid format");


jQuery.validator.addMethod("notEqualTo", function(value, element, param) {
	return $(param).val()?(value != $(param).val()):(value != param);
}, "error");

