
/**
 * Registration
 */

var ApplyForm = {

	inProgress: false,

	dehiliteErrors: function()
	{
		$$('FORM li').each(function(item, index) {
			$(item).removeClassName('error');
		});
	},

	hiliteErrors: function(fields)
	{
		fields.each(function(item, index) {
			obj = $(item);
			obj.addClassName('error');
		});
	},

	send: function()
	{
		if (ApplyForm.inProgress == true) return false;
		ApplyForm.inProgress = true;
		$('ApplyFormError').hide();
		$('ApplyFormButton').disabled = true;
		$('ApplyFormButton').removeClassName('error');
		$('ApplyFormButton').addClassName('inprogress');
		ApplyForm.dehiliteErrors();
		$('ApplyForm').request({
			onComplete: function(transport) {
				var response = transport.responseText.evalJSON();
				switch (response.result) {
					case 'error': {
						ApplyForm.inProgress = false;
						$('ApplyFormError').update(response.message)
						$('ApplyFormError').show();
						$('ApplyFormButton').disabled = false;
						$('ApplyFormButton').removeClassName('inprogress');
						$('ApplyFormButton').addClassName('error');
						ApplyForm.hiliteErrors(response.fields);
						break;
					}
					case 'ok': {
						if (typeof(response.url) == 'string') {
							window.location = response.url
						} else {
							$('ApplyFormButton').disabled = true;
							$('ApplyFormButton').hide();
							$('ApplyFormError').hide();
							$('ApplyFormOk').show();
						}
						break;
					}
					default: {
						$('ApplyFormError').update('Unknown error');
						$('ApplyFormError').show();
						$('ApplyFormButton').disabled = false;
						$('ApplyFormButton').removeClassName('inprogress');
						ApplyForm.inProgress = false;
						break;
					}
				}
			},

			onFailure: function() {
				$('ApplyFormError').update('Unknown error')
				$('ApplyFormError').show();
				$('ApplyFormButton').disabled = false;
				$('ApplyFormButton').removeClassName('inprogress');
				ApplyForm.inProgress = false;
			}
		});
	}
}


