// JavaScript Document
var focusField = function(){
	this.setStyles({'border-color': '#000', 'background-color': '#AAD2EC', 'color': '#444'});
	};
var blurField = function(){
	this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
	};
var changeMes = function(mes){
	$('valMessage').innerHTML = mes;
	};

var nameVal = function(name)
	{
		var nValRegExp = /^[a-zA-Z]+$/;
		var vulgarRegExp = /fuck|rape|shit|bitch|asshole|cock|cunt|pussy|twat|stupid|retard|whore|slut|damn|penis|vagina|crap|\bass\b/i;
		if (nValRegExp.test(name) && vulgarRegExp.test(name) === false)
		{
			return true;
		}
		else
		{
			return false;
		}
	};
var liveNameVal = function(nmes)
	{
		if (this.value === "" || nameVal(this.value) === false) //validates that a valid first name has been entered
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes(nmes);
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	};

var	emailVal = function(email)
	{
		var eValRegExp = /^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,4}$/;
		var vulgarRegExp = /fuck|rape|shit|bitch|asshole|cock|cunt|pussy|twat|stupid|retard|whore|slut|damn|penis|vagina|crap|\bass\b/i;
		if (eValRegExp.test(email) && vulgarRegExp.test(email) === false)
		{
			return true;
		}
		else
		{
			return false;
		}
	};
var liveEmailVal = function()
	{
		if (emailVal(this.value) === false) //validates email address
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Please enter a valid e-mail address.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	};

var phoneVal = function(phn)
	{
		var phnRegExp = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/; //[0-9]/;
		if (phnRegExp.test(phn) || phn === "")
		{
			return true;
		}
		else
		{
			return false;
		}
	};
var livePhoneVal = function(){
		if (phoneVal(this.value) === false) //validates only numbers have been entered
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Please enter a valid phone number.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	};
	
var	phoneFormat = function(){
	var phoFor = this.value;
		if (phoFor !== "" && phoFor.charAt(0) != "(")
		{
			this.value = "(" + phoFor;
		}
		if (phoFor !== "" && phoFor.length > 3 && phoFor.charAt(4) != ")")
		{
			this.value = phoFor + ") ";
		}
		if (phoFor !== "" && phoFor.length > 8 && phoFor.charAt(9) != "-")
		{
			this.value = phoFor + "-";
		}
	};

var mesVal = function(message)
	{
		var vulgarRegExp = /fuck|rape|shit|bitch|asshole|cock|cunt|pussy|twat|stupid|retard|whore|slut|damn|penis|vagina|crap|\bass\b/i;
		if (vulgarRegExp.test(message) === false)
		{
			return true;
		}
		else
		{
			return false;
		}
	};
var liveMesVal = function()
	{
		if (mesVal(this.value) === false)
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Some of the words you have entered are banned.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	};
	
var liveDropVal = function()
	{
		if (this.value == "")
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Please tell us when you plan to attend courses.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	};

var submitVal = function()
	{
		var toSubmit = 0;
		var errorMessage = 'Please make a valid entries for the following fields:';
		
		if ($('fname').value === '' || nameVal($('fname').value) === false) //validates that a valid first name has been entered
		{
			toSubmit ++;
			$('fname').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>First Name</b>';
		}
		else
		{
			$('fname').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}

		if ($('lname').value === '' || nameVal($('lname').value) === false) //validates that a valid first name has been entered
		{
			toSubmit ++;
			$('lname').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>Last Name</b>';
		}
		else
		{
			$('lname').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}
		
		if (emailVal($('email').value) === false) //validates email address
		{
			toSubmit ++;
			$('email').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>Email</b>';
		}
		else
		{
			$('email').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}
		
		if (phoneVal($('phone').value) === false) //validates phone number
		{
			toSubmit ++;
			$('phone').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>Phone</b>';
		}
		else
		{
			$('phone').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}
	
		if (mesVal($('comq').value) === false) //validates message
		{
			toSubmit ++;
			$('comq').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>Comments/Questions</b>';
		}
		else
		{
			$('comq').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}
		
		if ($('planto').value == "")
		{
			toSubmit ++;
			$('planto').setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			errorMessage += '<br><b>When do you plan to attend courses?</b>';
		}
		else
		{
			$('planto').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		}

	
		if (toSubmit === 0) //will submit the form if it passes validation
		{
			$('CREAform').send();
			$('contact').innerHTML = '<h1>Thank you for contacting us.</h1>\n<p>One of our representatives will contact you shortly.</p>\n<p>Please be sure to check your email settings as any communication from us may be accidentally diverted to your junk or spam folders.</p>';
		}
		else {
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes(errorMessage);
		}
	};

var resetForm = function()
	{
		$('fname').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		$('lname').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		$('email').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		$('phone').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		$('message').setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
		$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
		changeMes.delay(' ', 500);
		$('CREAform').reset();
	};
	
window.addEvent('domready', function(){
	$('valMessage').addEvent('domready', function(){this.setStyle('opacity', 0);});
	$('fname').addEvent('focus', focusField);
	$('fname').addEvent('blur', blurField);
	$('fname').addEvent('keyup', function(){
		if (this.value === "" || nameVal(this.value) === false) //validates that a valid first name has been entered
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Please enter a valid first name.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	});
	$('lname').addEvent('focus', focusField);
	$('lname').addEvent('blur', blurField);
	$('lname').addEvent('keyup', function(){
		if (this.value === "" || nameVal(this.value) === false) //validates that a valid first name has been entered
		{
			this.setStyles({'border-color': '#9D0000', 'color' : '#9D0000', 'background-color': '#FFC6C6'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 1);
			changeMes('Please enter a valid last name.');
		}
		else
		{
			this.setStyles({'border-color': '#111', 'background-color': '#444', 'color': '#AAD2EC'});
			$('valMessage').set('tween', {duration: 500, transition: Fx.Transitions.Quad.easeOut}).tween('opacity', 0);
			changeMes.delay(' ', 500);
		}
	});
	$('email').addEvent('focus', focusField);
	$('email').addEvent('blur', blurField);
	$('email').addEvent('keyup', liveEmailVal);
	$('phone').addEvent('focus', focusField);
	$('phone').addEvent('blur', blurField);
	$('phone').addEvent('keyup', phoneFormat);
	$('phone').addEvent('keyup', livePhoneVal);
	$('comq').addEvent('focus', focusField);
	$('comq').addEvent('blur', blurField);
	$('comq').addEvent('keyup', liveMesVal);
	$('planto').addEvent('focus', focusField);
	$('planto').addEvent('blur', blurField);
	$('planto').addEvent('change', liveDropVal);
	$('submit').addEvent('click', submitVal);
	$('clear').addEvent('click', resetForm);
	$('CREAform').addEvent('submit', function(e){
		e.stop;
		});    
});