function $() 
{
	if(!document.getElementById) return false;

	var elements = new Array();
	for(var i=0; i<arguments.length; i++)
	{
		var element = arguments[i];		
		if(typeof element == 'string') { element = document.getElementById(element); }	
		if(arguments.length == 1) { return element; }
		elements.push(element);
	}
	return elements;
}

function addEvent(node, type, fn, bool) 
{
	if(!bool) { var bool = false; }
	if(!(node = $(node))) { return false; }
	if(node.addEventListener)
	{
		node.addEventListener(type,fn, bool);
		return true;
	} 
else if(node.attachEvent) 
{
		node['e'+type+fn] = fn;
		node[type+fn] = function() { node['e'+type+fn](window.event); }
		node.attachEvent('on'+type, node[type+fn]);
		return true;
	}
	return false;
}


function prepNav() 
{
	var nav = $('nav');
	var currentPage = location.href.slice(location.href.lastIndexOf('/')+1);
	nav.currentPage = currentPage.split('.')[0];		
	if(nav.currentPage == '' || nav.currentPage == 'index') nav.currentPage = 'home';
	if(nav.currentPage == 'map') nav.currentPage = 'map/hours';	
	nav.lis = nav.getElementsByTagName('li');
	
	for(var i=0; i<nav.lis.length; i++) 
	{
		var text = nav.lis[i].getElementsByTagName('a')[0].firstChild.nodeValue.toLowerCase();
		if(text == nav.currentPage) 
		{
			nav.lis[i].style.display = 'block';
			nav.lis[i].onmouseover = showLis;
			nav.lis[i].onmouseout = hideLis;
		}
		else nav.lis[i].style.display = 'none';
	}
}
addEvent(window, 'load', prepNav);


function showLis() 
{
	var nav = $('nav');
	for(var i=0; i<nav.lis.length; i++) 
	{
		nav.lis[i].style.display = 'block';
	}
	addEvent(nav, 'mouseout', hideLis);
}

function hideLis(e) 
{
	var nav = $('nav');
	var evt = e || window.event;
	var evtRelated = evt.relatedTarget || evt.toElement;

	var navHide = true;
	while(evtRelated.nodeName != 'HTML')
	{
		if(evtRelated.id == 'nav') 
		{
			navHide = false;
			break;
		}
		evtRelated = evtRelated.parentNode;
	}
	if(navHide) 
	{
		nav.lis = nav.getElementsByTagName('li');
		for(var i=0; i<nav.lis.length; i++) 
		{
			var text = nav.lis[i].getElementsByTagName('a')[0].firstChild.nodeValue.toLowerCase();		
			if(text != nav.currentPage) { nav.lis[i].style.display = 'none'; };
		}
	}
}


function setFormHandlers() 
{
	if(!$('contactForm')) return;
	
	var form = $('contactForm');
	form.elements[0].defaultValue = form.elements[0].value;
	
	form.elements[0].onfocus = function() {
									if(this.value == this.defaultValue) this.value = '';
								}								
	form.elements[0].onblur = function() {
									if(this.value == '') this.value = this.defaultValue;
								}								
	form.onsubmit = function() { return formValidation(this); }
}
addEvent(window, 'load', setFormHandlers);


function formValidation(form) 
{
	var userInput = form.elements[0].value;	
	if(userInput == form.elements[0].defaultValue || userInput == '') return false;
	
	var reg = new RegExp('^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$');
	if(!reg.test(userInput)) 
	{
		var p = document.createElement('p');
		var txt = document.createTextNode(userInput+' is not a valid email address. Please insert a valid email to submit the form.');
		p.appendChild(txt);
		
		if(!form.msgOn) {
			form.appendChild(p);
			form.msgOn = true;
		}
		else if(form.msgOn == true) {
			form.replaceChild(p,form.lastChild);
		}
		return false;
	}
	return true;
}

