/**
 * Newsletter
 */

var newsletterInProgress = false;

function addToNewsletter()
{
	if (newsletterInProgress == true) return false;
	newsletterInProgress = true;
	$('NewsletterProgress').show();
	$('NewsletterError').hide();
	$('NewsletterOk').hide();
	$('NewsletterForm').request({
		parameters: { 'do': 'add' },
		onComplete: function(transport) {
			var response = transport.responseText.evalJSON();

			switch (response.result) {
				case 'error': {
					newsletterInProgress = false;
					$('NewsletterProgress').hide();
					$('NewsletterError').update(response.message);
					$('NewsletterError').show();
					break;
				}
				case 'ok': {
					$('NewsletterProgress').hide();
					$('NewsletterOk').update(response.message);
					$('NewsletterOk').show();
					break;
				}
				default: {
					$('NewsletterProgress').hide();
					$('NewsletterError').update('Unknown error');
					$('NewsletterError').show();
					newsletterInProgress = false;
					break;
				}
			}
		},

		onFailure: function() {
			$('NewsletterProgress').hide();
			$('NewsletterError').update('Unknown error');
			$('NewsletterError').show();
			newsletterInProgress = false;
		}
	});
}

/**
 * Search
 */

function validateQuery(defaultString)
{
	queryString = $F('SearchQuery');
	return !(queryString == defaultString || queryString.length < 3);

}

/**
 * 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;
			}
		});
	}
}


