window.undefined = window.undefined; // old browser support

$(document).ready(function() {
	var options = {
		target: '#contact_form_result',
		beforeSubmit: validate,
		success: showResponse,
		dataType: 'text',
		clearForm: true
	};
	// setup ajax contact form
	$('#contact_form').ajaxForm(options);
	// setup project links
	$('div.item').click(function(e) {
		window.location = $('a', this).attr('href');
	}).bind('mouseenter', function(e) {
		$(this).addClass('item_hover');
	}).bind('mouseleave', function(e) {
		$(this).removeClass('item_hover');
	});
});

function validate(formData, jqForm, options) {
	var form = jqForm[0];
	if (!form.email.value && !form.message.value) {
		errorMessage([form.email, form.message]);
		return false;
	} else if (!form.email.value) {
		errorMessage([form.email]);
		return false; 
	} else if (!form.message.value) {
		errorMessage([form.message]);
		return false;
	}
}

function showResponse(responseText, statusText) {
	alert(responseText);
}

function errorMessage(errorFields) {
	// clear any old messages
	hideErrorMessage()
	// mark any fields as errors
	if (errorFields !== undefined) {
		jQuery.each(errorFields, function(index, value) {
			$(value).highlightFade({start:'#FF7070', speed:1000}).prev().addClass('error');
			if (index == 0)
				$(value).focus();
		});
	}
}

function hideErrorMessage() {
	$('.error').removeClass('error');
}