$(function() {	
	preloadImages($('#slideshow').find('img').length, '#slideshow', function() {
		$('#slideshow-loader').fadeOut('normal', function() {
			$('#slideshow').cycle({
				delay: -2000,
				timeout: 5000
			}).fadeIn('slow');
		});
	});
	
	$('#contact-form').validate({
		submitHandler: function(form) {
			$(form).ajaxSubmit({
				beforeSerialize: function() {
					showLoader();
				},
				success: function() {
					$('#contact-form').hide('slow').after('<h2>Thank you. Your comment has been submitted.</h2>');
				}
			}); 
			return false;
		}
	});
	
	$('#newsletter-form').validate();
});

function showLoader() {
	$('#loader').css({opacity: 1, visibility: 'visible'}).fadeIn('fast');
}
function hideLoader() {
	$('#loader').fadeTo(500, 0);
}

function getQueryVar(key, url, default_) {
	if (default_ == null) default_ = '';
	key = key.replace(/[\[]/,'\\\[').replace(/[\]]/,'\\\]');
	var regex = new RegExp('[\\?&]'+key+'=([^&#]*)');
	if (url) var qs = regex.exec(url);
	else var qs = regex.exec(window.location.href);
	if (qs == null) return default_;
	else return qs[1];
}

function preloadImages(currentIndex, containerId, callback, isBackground) {
	if (currentIndex == 0) {
		callback();
		return this;
	}
	
	if (typeof(isBackground) == 'undefined') {
		isBackground = false;
	}
	
	var image = new Image();
	if (isBackground) {
		image.src = $(containerId).find('div').eq(-currentIndex).css('background-image').replace(/"/g,"").replace(/url\(|\)$/ig, "");
	}
	else {
		image.src = $(containerId).find('img').eq(-currentIndex).attr('src')
	}
	
	// IE freeze fix
	if (!$.support.scriptEval && image.complete) {
		preloadImages(--currentIndex, containerId, callback, isBackground);
	}
	else {
		$(image).load(function() {
			preloadImages(--currentIndex, containerId, callback, isBackground);
		});
	}
	
	return this;
}
