if (!Array.prototype.forEach){
	Array.prototype.forEach = function(fun /*, thisp*/){
		var len = this.length;
		if(typeof fun != "function")
			throw new TypeError();
		var thisp = arguments[1];
		for (var i = 0; i < len; i++){
			if (i in this)
				fun.call(thisp, this[i], i, this);
		}
	};
}

//Supports autofocus attribute
if(jQuery('<input autofocus="autofocus" />')[0].autofocus !== true){
	jQuery(function($){
		$(':input[autofocus]').focus();
	});
}

//Panning header image
jQuery(function($){
	var $header = $('body > header');
	var viewportWidth = $header.width();
	var viewportHeight = $header.height();
	
	var bgImage = new Image();
	$(bgImage).load(function(){
		var img = this;
		
		var deltaWidth = img.width - viewportWidth;
		var deltaHeight = img.height - viewportHeight;
		var rateX = deltaWidth/viewportWidth;
		var rateY = deltaHeight/viewportHeight;
		
		var defaultTop = 0;
		var defaultLeft = -327;
		
		$header.mouseenter(function(e){
			var left = Math.max(-deltaWidth, -e.layerX*rateX);
			var top = 0; //Math.max(-deltaHeight, -e.layerY*rateY);
			$header.stop().animate({
				'backgroundPosition': left + 'px ' + top + 'px'
			}, 100);
		}).mousemove(function(e){
			if($header.is(':animated'))
				return;
			
			var offset = 0;
			if($header[0] != e.target){
				offset += parseInt($(e.target).css('left'));
			}
			
			var left = Math.max(-deltaWidth, -(e.layerX + offset)*rateX);
			var top = 0; //Math.max(-deltaHeight, -e.layerY*rateY);
			$header.css('backgroundPosition', left + 'px ' + top + 'px')
		}).mouseleave(function(e){
			$header.stop().animate({
				'backgroundPosition': defaultLeft + 'px ' + defaultTop + 'px'
			}, 1000);
		});
	});
	
	bgImage.src = $header.css("backgroundImage").replace(/^.*url\(["']?/, '').replace(/["']?\).*$/, '');
});



//
//
//$(document).ready(function(){
//	
//	
//	$('#contact-form').submit(function(e){
//		var email = $('#email')[0];
//		if(!email.value || !/.+@.+/.test(email.value)){
//			alert("Please enter your valid email address.");
//			e.preventDefault();
//			email.focus();
//			return;
//		}
//		
//		var subject = $('#subject')[0];
//		if(!subject.value){
//			alert("Please enter a subject.");
//			e.preventDefault();
//			subject.focus();
//			return;
//		}
//		
//		var message = $('#message')[0];
//		if(!message.value){
//			alert("Please enter your message");
//			message.focus();
//			e.preventDefault();
//			return;
//		}
//		
//	});
//	
//});