/* 
Author: Trevor Morris
URI: http://morris-photographics.com/
*/

// verify input for comments form
function verifyInput(form) {
	// test form values
	this.isName = /^(?:[a-z-]+\s*)+$/i.test(form.name.value);
	this.isEmail = /^[\S]{2,}@[\S]{2,}\.[\S]{2,}$/.test(form.email.value);
	this.isSubject = !/^(?:\s+|)$/.test(form.subject.value);
	this.isComments = !/^(?:\s+|)$/.test(form.comments.value);
	this.isEquation = /^(?:2|two)$/.test(form.equation.value);
/*
	// filter spam
	var spamFilters = [
		'canadianpharmacyalpha',
		'onlinepaydayloannofax',
		'fetaldopplers',
		'clomidalpha',
		'zithromaxazi',
		'propeciafin',
		'plantationgyn',
		'thebestgrocerycoupons',
	];
	var formData = form.name.value + form.email.value + form.subject.value + form.website.value + form.comments.value;
	for (var i = 0; i < spamFilters.length; i++) {
		if (RegExp(spamFilters[i], 'i').test(formData)) {
			return;
		}
	}
*/
	// add incorrect fields to array
	var incorrectFields = [];
	var index = 0;
	!this.isName ? incorrectFields[index++] = 'name' : '';
	!this.isEmail ? incorrectFields[index++] = 'email' : '';
	!this.isSubject ? incorrectFields[index++] = 'subject' : '';
	!this.isComments ? incorrectFields[index++] = 'comments' : '';
	!this.isEquation ? incorrectFields[index++] = 'equation' : '';

	// apply default format to all required fields
	var requiredFields = ['name', 'email', 'subject', 'comments', 'equation'];
	for (var i = 0; i < requiredFields.length; i++) {
		document.getElementById(requiredFields[i] + 'Label').style.color = '#555';
		document.getElementById(requiredFields[i]).style.borderColor = '#aaa';
		document.getElementById(requiredFields[i]).style.color = '#333';
	}

	// highlight incorrect fields
	for (var i = 0; i < incorrectFields.length; i++) {
		document.getElementById(incorrectFields[i] + 'Label').style.color = '#900';
		document.getElementById(incorrectFields[i]).style.borderColor = '#900';
		document.getElementById(incorrectFields[i]).style.color = '#900';
	}

	// update message/status area
	var messageArea = document.getElementById('message');
	if (index) {
		// apply warning status format
		messageArea.style.color = '#933';
		messageArea.style.width = '283px';
		messageArea.style.padding = '12px 20px 10px 35px';
		messageArea.style.background = 'url(images/comments-warning.png) 8px 50% no-repeat';
		messageArea.style.backgroundColor = '#ecd9d4';
		messageArea.style.border = '1px solid #c66';

		// build status message
		var message = 'The ';
		var ending = ' fields are required, but were not completed correctly.';
		switch (index) {
			case 1:
				message += incorrectFields[0] + ' field is required, but was not completed correctly.';
				break;
			case 2:
				message += incorrectFields[0] + ' and ' + incorrectFields[1] + ending;
				break;
			case 3:
				message += incorrectFields[0] + ', ' + incorrectFields[1] + ', and ' + incorrectFields[2] + ending;
				break;
			case 4:
				message += incorrectFields[0] + ', ' + incorrectFields[1] + ', ' + incorrectFields[2] + ', and ' + incorrectFields[3] + ending;
				break;
			case 5:
				message += incorrectFields[0] + ', ' + incorrectFields[1] + ', ' + incorrectFields[2] + ', ' + incorrectFields[3] + ', and ' + incorrectFields[4] + ending;
				break;
		}
		document.getElementById('message').innerHTML = message;
	}

	// update message/status area and submit comments
	else {
		// apply default status format
		messageArea.style.color = '#555';
		messageArea.style.width = 'auto';
		messageArea.style.padding = '0';
		messageArea.style.background = 'none';
		messageArea.style.border = 'none';
		messageArea.innerHTML = '<span class="required">*</span>Indicates a required field.';
/*
		// apply success status format
		messageArea.style.color = '#363';
		messageArea.style.width = '283px';
		messageArea.style.padding = '12px 20px 10px 35px';
		messageArea.style.background = 'url(images/comments-success.png) 8px 50% no-repeat';
		messageArea.style.backgroundColor = '#dce9d4';
		messageArea.style.border = '1px solid #9c9';
		messageArea.innerHTML = 'Message sent. Thanks for your comments!';
*/
		// submit form
		form.submit();
	}
}

