/* ---------------------------------------------
	Unobtrusive Event Manager
--------------------------------------------- */
function addEvent(obj, eventType, event) {
	if (obj.addEventListener) {
		obj.addEventListener(eventType, event, false);
		return true;
	} else if (obj.attachEvent) {
		return obj.attachEvent("on" + eventType, event);
	} else {
		return false;
	}
}

/* ---------------------------------------------
	Directions Menu Switch
--------------------------------------------- */
function switchMenu(obj) {
	if (document.getElementById) {
		var menu = document.getElementById(obj);
		if (menu.style.display != 'none') menu.style.display = 'none';
		else menu.style.display = '';
	}
}

/* ---------------------------------------------
	Contact Form Validation
--------------------------------------------- */
addEvent(window, 'load', addValidation);

function addValidation() {
	if (document.getElementById) {
		if (document.getElementById('email-error')) {
			var form = document.getElementById('contact-form');
			form.email.onblur = function() { validateEmail(form.email.value); }
			form.message.onblur = function() { validateMessage(form.message.value); }
			form.onsubmit = function() { return validateForm(form); }
		}
	}
}

function validateForm(form) {
	var submit = true;
	if (!validateEmail(form.email.value)) submit = false;
	if (!validateMessage(form.message.value)) submit = false;
	return submit;
}

function validateEmail(value) {
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	var emailError = document.getElementById('email-error');
	if (regex.test(value) && value.length > 0) {
		emailError.style.display = 'none';
		return true;
	}
	emailError.style.display = '';
	return false;
}

function validateMessage(value) {
	var messageError = document.getElementById('message-error');
	if (value.length > 0) {
		messageError.style.display = 'none';
		return true;
	}
	messageError.style.display = '';
	return false;
}

/* ---------------------------------------------
	Google Maps API
--------------------------------------------- */
// Do not load in development enviroment
// addEvent(window, 'load', loadGoogleMaps);

function loadGoogleMaps() {
	if (document.getElementById) {
		if (GBrowserIsCompatible() && document.getElementById('map')) {
			var map = new GMap2(document.getElementById('map'));
			map.setCenter(new GLatLng(42.126493, -71.611805), 15);
			map.addControl(new GMapTypeControl());
			map.addControl(new GSmallMapControl());
		}
	}
}
