var FormValidator = {

status: true,
err: '',

messages: {
	'fileds_null': 'Не заполнены некоторые поля!',
	'invalid_email': 'Неправильно указан e-mail адрес!'
},

Check: function(event)
{
	FormValidator.status = true;
	FormValidator.action = true;
	FormValidator.err = '';
	
	$(this).getElements().each(FormValidator.CheckInput);

	if (FormValidator.status)
		return true;

	alert(FormValidator.messages[FormValidator.err]);

	Event.stop(event);

	return false;
},

CheckInput: function(input)
{
	var err = false;
	var label = input.id ? $(input.id + '-label') : null;

	if ( ! input.disabled)
	{
		var v = (input.type != 'checkbox' || input.checked) ? input.value.strip() : '';
	
		if (input.hasClassName('required') || input.name == 'captcha')

		{
			if (v == '')
			{
				err = true;
				FormValidator.err = 'fileds_null';
			}
		}

		if ( ! (err || v == ''))
		{
			if (input.hasClassName('email'))
			{
				if ( ! /^[\w_\-]+(\.[\w_\-]+)*@([\w_\-]+\.)+[a-zA-Z]{2,6}$/.test(v))
				{
					err = true;
					if (FormValidator.err == '')
						FormValidator.err = 'invalid_email';
				}
			}
		}
	}

	if (err)
	{
		FormValidator.status = false;
		input.addClassName('error');
		if (label) label.addClassName('error');
	}
	else
	{
		input.removeClassName('error');
		if (label) label.removeClassName('error');
	}
}

}; // FormValidator

document.observe('dom:loaded', function(){

	$A(document.forms).each(function(f){
		if (
			$(f).hasClassName('validate')
			)
		{
			$(f).observe('submit', FormValidator.Check);
		}
		});

	if ($('f-packing_3') && $('f-pack_type'))
	{
		$A(['f-packing_1', 'f-packing_2', 'f-packing_3']).each(function(i)
			{
				if ($(i)) $(i).observe('click', function(ev)
					{
						$('f-pack_type').disabled = ev.element().id != 'f-packing_3';
					});
			});

		$('f-pack_type').disabled = ! $('f-packing_3').checked;
	}



	if ($('f-from_date-button'))
		Calendar.setup({
			dateField: 'f-from_date',
			triggerElement: 'f-from_date-button',
			dateFormat: '%d-%m-%Y'
			})

	if ($('f-to_date-button'))
		Calendar.setup({
			dateField: 'f-to_date',
			triggerElement: 'f-to_date-button',
			dateFormat: '%d-%m-%Y'
			})

});
