var errors = false;

function showForm(){
	$$('.submission_status').addClass('hidden');
	$('submission').removeClass('hidden');
}

function addError( message ){
	var p = new Element('li');
	p.setText( message+'.');
	p.injectInside('error_messages');
	errors = true;
}

function submitForm( form ){
	$('error_messages').empty();
	errors = false;
	
	var validateFields = Array('first_name', 'last_name', 'email', 'street', 'city', 'state', 'zip');
	var fieldNames = Array('first name', 'last name', 'email address', 'street address', 'city', 'state', 'zip code');
	var fields = fieldNames.associate( validateFields );
	
	//Validate input.
	form.getElements('input').each( function(el){
		var id = el.getProperty('id');
		var value = el.getProperty('value');
		if( validateFields.contains( id )){
			if( value == "" || value == el.defaultValue ){
				addError('You must provide your '+fields[id] );
			}
			if( id == 'email' && !value.contains('@')){
				addError('You must provide a valid '+fields[id] );
			}
		}
		else if( id == 'terms' && !el.checked ){
			addError('You must agree to the terms of service');
		}
	});
	
	if( errors ){
		$('submission').addClass('hidden');
		$('submission_error').removeClass('hidden');
		
		return false;
	}
	else {
		$('submission').addClass('hidden');
		$('submission_processing').removeClass('hidden');
		
		return true;
	}
	return false;
}


window.addEvent('domready', function(){
	var elements = $('submission').getElements('input[type=text]');
	elements.merge($('submission').getElements('textarea'));
	
	elements.each( function(el){
		if( el.value != ''){
			el.defaultValue = el.value;
		}
		el.addEvent('focus', function(){
			if( this.value == this.defaultValue ){
				this.value = '';
			}
		});
		el.addEvent('blur', function(){
			if( this.value == ''){
				this.value = this.defaultValue;
			}
		});
	});
	
/*	$('submission').addEvent('submit', function(e){
		//Stop the submit event.
		//new Event(e).stop();
		$('error_messages').empty();
		errors = false;
		
		var validateFields = Array('first_name', 'last_name', 'email', 'street', 'city', 'state', 'zip');
		var fieldNames = Array('first name', 'last name', 'email address', 'street address', 'city', 'state', 'zip code');
		var fields = fieldNames.associate( validateFields );
		
		//Validate input.
		this.getElements('input').each( function(el){
			var id = el.getProperty('id');
			var value = el.getProperty('value');
			if( validateFields.contains( id )){
				if( value == "" || value == el.defaultValue ){
					addError('You must provide your '+fields[id] );
				}
				if( id == 'email' && !value.contains('@')){
					addError('You must provide a valid '+fields[id] );
				}
			}
			else if( id == 'terms' && !el.checked ){
				addError('You must agree to the terms of service');
			}
		});
		
		if( errors ){
			$('submission').addClass('hidden');
			$('submission_error').removeClass('hidden');
			
			return false;
		}
		else {
			$('submission').addClass('hidden');
			$('submission_processing').removeClass('hidden');
			
			return true;
		}
	});*/
});