html5shim = function() {
	var x = document.createElement('div'),
		els = ['section', 'nav', 'aside', 'hgroup', 'header', 'footer', 'figure', 'figcaption', 'video', 'audio'], 
		l = els.length, c = 0;
	x.innerHTML = '<x>x</x>';
	if(x.childNodes.length > 1) {
		for(c = 0; c < l; c++) {
			document.createElement(els[c]);
		}
	}
}();

function validateName(e) {
	e = e || event;
	var t = e.target || e.srcElement;
	if(t.value == '') {
		t.className = '';
		return;
	}
	if(t.value.length < 2){
		t.className = 'invalid';
	} else {
		t.className = 'valid';
	}
}
function validateEmail(e) {
	e = e || event;
	var t = e.target || e.srcElement;
	if(t.value == '') {
		t.className = '';
		return;
	}
	if(!t.value.match(/^.+@.+\..+$/)){
		t.className = 'invalid';
	} else {
		t.className = 'valid';
	}
}
function validatePhone(e) {
	e = e || event;
	var t = e.target || e.srcElement;
	if(t.value == '') {
		t.className = '';
		return;
	}
	if(!t.value.match(/^.*?\d\d\d.*?\d\d\d.*?\d\d\d\d$/)){
		t.className = 'invalid';
	} else {
		t.className = 'valid';
	}
}

function validateForm(e) {
	e = e || event;
	var t = e.target || e.srcElement, els, l, i;
	if(t.nodeName.toLowerCase() !== 'form') {
		while(t.nodeName.toLowerCase() !== 'form' && t.parentNode) {
			t = t.parentNode;
		}
	}
	try {
		els = t.elements;
		l = els.length;
		for(i = 0; i < l; i++) {
			if(els[i].className.indexOf('invalid') !== -1) {
				e.returnValue = false;
				try {
					e.preventDefault();
				} catch(err) {}
				els[i].focus();
				alert('One or more of the fields is inavlid.  Please fix this problem.');
				return false;
			}
		}
	} catch(err){}
}

function checkValidate() {
	if(document.getElementById('validate-form')) {
		if(window.addEventListener) {
			document.getElementById('validate-form').addEventListener('submit', validateForm, null);
		} else if(window.attachEvent) {
			document.getElementById('validate-form').attachEvent('onsubmit', validateForm);
		}
	}
	if(document.getElementById('validate-name')) {
		if(window.addEventListener) {
			document.getElementById('validate-name').addEventListener('keyup', validateName, null);
			document.getElementById('validate-name').addEventListener('blur', validateName, null);
		} else if(window.attachEvent) {
			document.getElementById('validate-name').attachEvent('onkeyup', validateName);
			document.getElementById('validate-name').attachEvent('onblur', validateName);
		}
	}
	if(document.getElementById('validate-email')) {
		if(window.addEventListener) {
			document.getElementById('validate-email').addEventListener('keyup', validateEmail, null);
			document.getElementById('validate-email').addEventListener('blur', validateEmail, null);
		} else if(window.attachEvent) {
			document.getElementById('validate-email').attachEvent('onkeyup', validateEmail);
			document.getElementById('validate-email').attachEvent('onblur', validateEmail);
		}
	}
	if(document.getElementById('validate-phone')) {
		if(window.addEventListener) {
			document.getElementById('validate-phone').addEventListener('keyup', validatePhone, null);
			document.getElementById('validate-phone').addEventListener('blur', validatePhone, null);
		} else if(window.attachEvent) {
			document.getElementById('validate-phone').attachEvent('onkeyup', validatePhone);
			document.getElementById('validate-phone').attachEvent('onblur', validatePhone);
		}
	}
}

function featureDetect() {
	var el = document.createElement('div');
	el.innerHTML = '<div style="-webkit-mask-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); -moz-mask-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); -o-mask-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); -msie-mask-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0))); mask-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));"></div>';
	if(el.firstChild.style.webkitMaskImage !== undefined || el.firstChild.style.MozMaskImage !== undefined || el.firstChild.oMaskImage !== undefined || el.firstChild.msieMaskImage || el.firstChild.maskImage !== undefined) {
		document.getElementsByTagName('html')[0].className += ' css-mask-image';
	} else {
		document.getElementsByTagName('html')[0].className += ' no-css-mask-image';
	}
}

if(window.addEventListener) {
	window.addEventListener('load', checkValidate, null);
	window.addEventListener('load', featureDetect, null);
} else if(window.attachEvent) {
	window.attachEvent('onload', checkValidate);
}
