$(document).ready(function() {
	  //keeps users from accidentally registering twice (makes signup linear)
    history.forward();
		
	//so these won't conflict with the above...
	validate('updates_email');
	validate('pledge_email');
	validate('pledge_first');
	validate('pledge_last');

//	$('fieldset#church-leader').hide();
	
	$('#church-leader-checkbox').click(function() {
		if($('fieldset#church-leader').css('display') == 'none'){
			$('fieldset#church-leader').show('slow');
			$('fieldset#church-leader input').addClass('required');
			$('fieldset#church-leader select').addClass('required');
		}else{
			$('fieldset#church-leader').hide('slow');
			$('fieldset#church-leader input').removeClass('required');
			$('fieldset#church-leader select').removeClass('required');
		}
	});
	
//	$('#college-student').hide()
	
	$('#college-student-checkbox').click(function() {
		if($('fieldset#college-student').css('display') == 'none'){
			$('fieldset#college-student').show('slow');
			$('fieldset#college-student input').addClass('required');
			$('fieldset#college-student select').addClass('required');
		}else{
			$('fieldset#college-student').hide('slow');
			$('fieldset#college-student input').removeClass('required');
			$('fieldset#college-student select').removeClass('required');
		}
	});
	
	$('#signup_form').validate();
});


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