var SignupShow = Class.create(
{
	initialize: function(settings)
	{
		var self = this;
		if(!$$('#' + settings.formId + ' li.error')[0])		// If no error occured submitting the form
		{
			var expandToHeight = eval($(settings.formId).offsetHeight);
			$(settings.formId).setStyle({height: '0'});
			var signupShows = false;
			var showTriggers = $$('.' + settings.showClassName);

			showTriggers.each(function(showTrigger)
			{
				$(showTrigger).setStyle({display: 'block'});
			});

			showTriggers.each(function(showTrigger)
			{
				Event.observe(showTrigger, 'click', function()
				{
					if (signupShows == false) {
						new Effect.Morph($(settings.formId), {
							style: {
								'height': expandToHeight + 'px'
							},
							afterFinish: function(){
								signupShows = true;
							}
						});
					}
				});
			});
		}
	}
});

var setRequired = Class.create(
{
	initialize: function(settings)
	{
		var self = this;
		var theseAreRequired = $$('#signup-form .required');
				
		theseAreRequired.each(function(requiredField)
		{
			requiredField.up('li').addClassName('req');
		});
	}
});

Event.observe(window, 'load', function()
{
	if($$('.show-signup-form')[0] && $('signup-form'))
	{
		new SignupShow (
		{
			showClassName: 'show-signup-form',
			formId: 'signup-form',
			expandSpeed: 0.5
		});
	}
	
	if($$('#signup-form .required')[0] && $('signup-form'))
	{
		new setRequired (
		{
			formId: 'signup-form',
			reqiredClassName: 'required'
		});
	}
});