/* 
Author: Trevor Morris
URI: http://morris-photographics.com/
*/

// verify input for comments form
function verifyInput(form) {
	// declare local variables
	var messageArea = document.getElementById('message');
	var requiredFields = new Array('name', 'email', 'subject', 'comments');
	var incorrectFields = new Array();
	var index = 0;

	// 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);

	// add incorrect fields to array
	!this.isName ? incorrectFields[index++] = 'name' : '';
	!this.isEmail ? incorrectFields[index++] = 'email' : '';
	!this.isSubject ? incorrectFields[index++] = 'subject' : '';
	!this.isComments ? incorrectFields[index++] = 'comments' : '';
	
	// apply default format to all required fields
	for (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 (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
	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;
		}
		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();
	}
}
