function validate(form) {
	var pulldown = form.category.options[form.category.selectedIndex].value;
	var bodytext = form.body.value;
	var subject = form.subject.value;
	if (!pulldown || !bodytext || !subject) {
		alert("Please provide input for all required fields.\nThank You!");
		return false;
	}
	else if (bodytext.length > 4500) {
		alert("Your comments should contain less than 4,500 characters. Please reduce the length and try again.");
		return false;
	}
	else {
		// Optional customer values still need to be set before submitting
		if (!form.alt_fname.value) {
			form.fname.value = 'Sender';
		}
		else {
			form.fname.value = form.alt_fname.value;	
		}
		if (!form.alt_lname.value) {
			form.lname.value = 'Anonymous';
		}
		else {
			form.lname.value = form.alt_lname.value;
		}
		if (!form.alt_email.value) {
			form.accountname.value = 'no_email_supplied@apple.com';
		}
		else {
			form.accountname.value = form.alt_email.value;
		}
		if ($('casenumber').innerHTML == '') {
			/* nothing */
		}
		else {
			bodytext = 'Case number: ' + $('casenumber').innerHTML + '\n\n' + bodytext;
		}
		if (!form.web_url.value) {
			/* nothing */
		}
		else {
			bodytext = bodytext + '\n\nWeb Address (URL):\n' + form.web_url.value;
		}
		form.body.value = bodytext;

		// Let's put the pulldown selection in the subject line by doing this
		form.subject2.value = '(' + pulldown + ')';

		// We'll set the subprogram value to get the data to the right email address
		if (pulldown == 'Broken Link') form.subprogram.value = 'link';
		else if (pulldown == 'Connect with an Apple Expert') form.subprogram.value = 'appleexpert';
		else if (pulldown == 'Discussions') form.subprogram.value = 'discussions';
		else if (pulldown == 'Downloads (software/firmware updates)') form.subprogram.value = 'download';
		else if (pulldown == 'How-to & Troubleshooting Articles') form.subprogram.value = 'kbase';
		else if (pulldown == 'Manuals') form.subprogram.value = 'manuals';
		else if (pulldown == 'Repairs and Repair Status') form.subprogram.value = 'repair';
		else if (pulldown == 'Search') form.subprogram.value = 'search';
		else if (pulldown == 'Specifications') form.subprogram.value = 'specs';
		else if (pulldown == 'Warranties and AppleCare Agreements') form.subprogram.value = 'warranty';
		else if (pulldown == 'Other') form.subprogram.value = 'other';

		submitEmailForm(form);
		return false;
	}
}

var preselectOption = function (queryValue, optionValue, isExclusive) {
	var query = location.href.parseQuery();
	$('topic-area').select('option').each(function (option) {
		if (option.value == optionValue) {
			if (query.ref == queryValue) {
				option.selected = true;
			}
			else if (isExclusive) {
				option.remove();
			}
		}
	});
};

var prefillText = function (queryValue, executeCode) {
	if (getQuery(queryValue) != '') {
		executeCode();
	}
};

var getQuery = function (queryValue) {
	var query = location.href.parseQuery();
	if ((query[queryValue] != undefined) && (query[queryValue] != null) && (query[queryValue] != '')) {
		return query[queryValue];
	}
	else {
		return '';
	}
};

document.observe('dom:loaded', function() {
	preselectOption('appleexpert', 'Connect with an Apple Expert', true);
	preselectOption('agreements', 'Warranties and AppleCare Agreements', false);
	preselectOption('repairs', 'Repairs and Repair Status', false);
	/*  */
	prefillText('case', function () {
		$('casenumber').update(getQuery('case'));
		$('caserow').show();
	});
	prefillText('web_url', function () {
		$('web_url').value = getQuery('web_url');
	});
	prefillText('page_title', function () {
		$('comment_body').value = 'Page Title: ' + getQuery('page_title') + '\n\n';
	});
});
