$(document).ready(function() {
	$('.date').datepicker();
});

function validateContactFields(form) {
	var error = null;
	
	if (!validateField(form.f_name)) {
		error = 'Please enter your first name.';
	}
	else if (!validateField(form.l_name)) {
		error = 'Please enter your last name.';
	}
	else if (!validateField(form.phone)) {
		error = 'Please enter your phone number. (111) 111-1111';
	}
	else if (!validateField(form.email, /^.+@.+\..{2,3}$/)) {
		error = 'Please enter a valid email address.';
	}
	else if (!validateField(form.address)) {
		error = 'Please enter your address.';
	}
	else if (!validateField(form.city)) {
		error = 'Please enter your city.';
	}
	else if (!validateField(form.state)) {
		error = 'Please enter your state.';
	}
	else if (!validateField(form.zip)) {
		error = 'Please enter your zip code.';
	}
	else if (!validateField(form.message)) {
		error = 'Please enter your message';
	}

	// notify the user
	if (error) {
		alert(error);
		return false;
	}
	
	return true;
}

function validateScheduleFields(form) {
	var error = null;
	
	if (!validateField(form.f_name)) {
		error = 'Please enter your first name.';
	}
	else if (!validateField(form.l_name)) {
		error = 'Please enter your last name.';
	}
	else if (!validateField(form.phone)) {
		error = 'Please enter your phone number. (111) 111-1111';
	}
	else if (!validateField(form.email, /^.+@.+\..{2,3}$/)) {
		error = 'Please enter a valid email address.';
	}
	else if (!validateField(form.address)) {
		error = 'Please enter your address.';
	}
	else if (!validateField(form.city)) {
		error = 'Please enter your city.';
	}
	else if (!validateField(form.state)) {
		error = 'Please enter your state.';
	}
	else if (!validateField(form.zip)) {
		error = 'Please enter your zip code.';
	}
	else if (!validateField(form.message)) {
		error = 'Please enter your message';
	}

	// notify the user
	if (error) {
		alert(error);
		return false;
	}
	
	return true;
}

function validateServiceFields(form) {
	var error = null;
	
	if (!validateField(form.f_name)) {
		error = 'Please enter your first name.';
	}
	else if (!validateField(form.l_name)) {
		error = 'Please enter your last name.';
	}
	else if (!validateField(form.address)) {
		error = 'Please enter your address.';
	}
	else if (!validateField(form.city)) {
		error = 'Please enter your city.';
	}
	else if (!validateField(form.state)) {
		error = 'Please enter your state.';
	}
	else if (!validateField(form.zip)) {
		error = 'Please enter your zip code.';
	}
	else if (!validateField(form.phone)) {
		error = 'Please enter your phone number. (111) 111-1111';
	}
	else if (!validateField(form.email, /^.+@.+\..{2,3}$/)) {
		error = 'Please enter a valid email address.';
	}
	else if (!validateField(form.description)) {
		error = 'Please provide a short description of your project.';
	}
	
	// notify the user
	if (error) {
		alert(error);
		return false;
	}
	
	return true;
}

function validateField(field, pattern) {
	var valid = false, pattern = pattern || null;

	if (!field) return valid;

	if (typeof field.value != 'undefined' && field.value.length && field.value != '') {
		valid = true;
	}

	if (pattern && valid) {
		valid = pattern.test(field.value);
	}

	return valid;
}

function validateButton(button) {
	var valid = false;
	var option = -1;
	for (i = button.length-1; i > -1; i--) {
		option = i;
		i = -1;
	}
	
	if (option == -1) {
		valid = false;
	}
	
	return valid;
}

function clickFocus(obj) {
	if (obj.value == obj.title) {
		obj.value = '';
	}
}

function clickBlur(obj) {
	if (obj.value == obj.title ||
			obj.value == '') {
		obj.value = obj.title;
	}
}

function countWords(obj, maxWords) {
	var words = obj.value.split(' '), count = words.length;
	if (count > maxWords) {
		words.pop();
		obj.value = words.join(' ');
		return false;
	}
	
	return true;
}

function is_selected(arr) {
	for (var i = 0, size = arr.length; i < size; ++i) {
		if (arr[i].selected) {
			return true;
		}
	}
	
	return false;
}

function in_array(needle, haystack) {
	for (var i = 0, size = haystack.length; i < size; ++i) {
		if (haystack[i] == needle) {
			return true;
		}
	}
	
	return false;
}
