$(document).ready(function() {
	  //keeps users from accidentally registering twice (makes signup linear)
    history.forward();
		
	  //Checking which radio is checked so that the form keeps
	  // with the select state of the radios
		if ($('input#form_type_updates').is(':checked')){
		$('#pledge_form_container').fadeOut('fast');	
			$('#pledge_submit_container').fadeOut('fast');
			$('#updates_form_container').show();
			$('#updates_submit_container').show();
		}else{			
			$('#updates_form_container').fadeOut('fast', function(){
				$('#pledge_form_container').show();
			});
			$('#updates_submit_container').fadeOut('fast', function(){
				$('#pledge_submit_container').show();
			});
		};

		//neat jQuery fade in/out of the two different forms
		$('#form_type_updates').click(function() {
			$('#pledge_form_container').fadeOut(400, function() {
					$('#updates_form_container').fadeIn(400);
				  	});
					$('#pledge_submit_container').fadeOut(400, function() {
						$('#updates_submit_container').fadeIn(400);
					  	});
			});
		$('#form_type_pledge').click(function() {
				$('#updates_form_container').fadeOut(400, function() {
						$('#pledge_form_container').fadeIn(400);
			 		});
					$('#updates_submit_container').fadeOut(400, function() {
				 			$('#pledge_submit_container').fadeIn(400);
				 	});			
		});

	//so these won't conflict with the above...
	validate('updates_email');
	validate('pledge_email');
	validate('pledge_first');
	validate('pledge_last');

});

//validation parameters go here.
validationParams = new Object;
validationParams.pledge_email = new Object;
validationParams.pledge_email.regex   = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
validationParams.pledge_email.msg 		= 'Please enter a valid email address.';
validationParams.pledge_first = new Object;
validationParams.pledge_first.regex   = /^[-a-zA-Z]([-a-zA-Z])+$/; //2 or more characters.
validationParams.pledge_first.msg 		= 'Your first name should be 2 characters or longer!';
validationParams.pledge_last = new Object;
validationParams.pledge_last.regex   = /^[-a-zA-Z]([-a-zA-Z])+$/; //2 or more characters.
validationParams.pledge_last.msg 		= 'Your last name should be 2 characters or longer!';
validationParams.updates_email = new Object;
validationParams.updates_email.regex   = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
validationParams.updates_email.msg 		= 'Please enter a valid email address.';

//the business
function validate(fieldName)
{
	//I LOVE javascript!!
	if ($('#'+fieldName).attr('value').match(eval('validationParams.'+fieldName+'.regex')) || $('#'+fieldName).attr('value').length == 0)
	{
		$('#'+fieldName+'_label').fadeOut(200, function() {
  		$('#'+fieldName+'_label').attr('className', 'valid');
	   	$('#'+fieldName+'_label').fadeIn(400);
		});
		$('#'+fieldName+'_error').fadeOut(200, function() {
  		$('#'+fieldName+'_error').attr('innerHTML','');
      $('#'+fieldName+'_error').fadeIn(400);
		});
			
	}
	else
	{
		$('#'+fieldName+'_label').fadeOut(200, function() {
  		$('#'+fieldName+'_label').attr('className','error');
	   	$('#'+fieldName+'_label').fadeIn(400);
		});
		$('#'+fieldName+'_error').fadeOut(200, function() {
  		$('#'+fieldName+'_error').attr('innerHTML',eval('validationParams.'+fieldName+'.msg'));
      $('#'+fieldName+'_error').fadeIn(400);
		});
	}
}
