var checked = 0;

// {{{ document.ready()
$(document).ready(function() {
	// set up event listener on normal idea checkboxes
	$('input.ideaCheckbox').click(function(event) {
		if (this.checked) {
			checked++;
			if (checked >= 5) {
				toggleCheckboxes(false);
			}
		} else {
			checked--;
			if (checked == 4) {
				toggleCheckboxes(true);
			}
		}
	});

	// set up event listener on new idea checkbox
	$('input.newIdea').click(function(event) {
		toggleTextarea(this.checked);
	});

	// set up event listener for submission
	$('input.submit').click(function() {
		var email_regex_string = '^.+@.+\\..+$';
		var email_regex = new RegExp(email_regex_string);
		var email_input = document.getElementById('IdeaEmail');

		var phone_regex_string = '^[0-9\(\)-\.\ ]*$';
		var phone_regex = new RegExp(phone_regex_string);
		var phone_input = document.getElementById('IdeaPhone');

		var new_checkbox = document.getElementById('IdeaNew');
		var new_text = document.getElementById('IdeaText');
		
		if (!email_regex.test(email_input.value)) {
			alert ("Please enter a valid email address.");
			email_input.focus();
		} else if (phone_input.value != '' && !phone_regex.test(phone_input.value)) {
			alert ("Please enter a valid phone number.");
			phone_input.focus();
		} else if (new_checkbox.checked && new_text.value == '') {
			alert ("Please type your new idea in the text box.");
			new_text.focus();
		} else {
			return true;
		}
		return false;
	});

	// prep ideas pages
	var new_idea = document.getElementById('IdeaNew');
	if (new_idea && !new_idea.checked) {
		toggleTextarea(false);
	}

	var checkboxes = $('input.ideaCheckbox');
	for (var i=0, ii=checkboxes.length; i<ii; i++) {
		if (checkboxes[i].checked) {
			checked++;
		}
	}

	if (checked >= 5) {
		toggleCheckboxes(false);
	}

});
// }}}

// {{{ toggleCheckboxes()
function toggleCheckboxes(enabled) {
	var inputs = $('input.ideaCheckbox');
	for (var i=0, ii=inputs.length; i<ii; i++) {
		if (!inputs[i].checked) {
			inputs[i].disabled = !enabled;
			if (inputs[i].nextSibling) {
				inputs[i].nextSibling.disabled = !enabled;
			}
		}
	}
}
// }}}

// {{{ toggleTextarea()
function toggleTextarea(enabled) {
	var textarea = document.getElementById('IdeaText');
	textarea.disabled = !enabled;
	textarea.className = (enabled ? '' : 'disabled');
	if (!this.checked) {
		textarea.value = '';
	}
}
// }}}

