// simple jQuery script to preload the images. - http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

$(document).ready(function () {
	
	jQuery.preLoadImages("images/banners/1.jpg", "images/banners/2.jpg", "images/banners/3.jpg", "images/banners/a.jpg", "images/banners/8.jpg");
	
	/* Hacky banner changer, works. */
	$('#bannerRightEquip').hover(
		function () {
			$('#bannerLeftServices').hide();
			$('#bannerLeftData').hide();
			$('#bannerLeftEquip').show();
			$('#bannerLeft').css("background-image", "url(images/banners/2.jpg)");
			
			$('#bannerRightData').removeClass("bannerTabsHover");
			$('#bannerRightServices').removeClass("bannerTabsHover");
			$('#bannerRightEquip').addClass("bannerTabsHover");
			
		},
		function () {
			//$(this).removeClass("hover");
		}
	);
	
	$('#bannerRightServices').hover(
		function () {
			$('#bannerLeftEquip').hide();
			$('#bannerLeftData').hide();
			$('#bannerLeftServices').show();
			$('#bannerLeft').css("background-image", "url(images/banners/8.jpg)");
			
			$('#bannerRightData').removeClass("bannerTabsHover");
			$('#bannerRightEquip').removeClass("bannerTabsHover");
			$('#bannerRightServices').addClass("bannerTabsHover");
		},
		function () {
			//$(this).removeClass("hover");
		}
	);
	
	$('#bannerRightData').hover(
		function () {
			$('#bannerLeftEquip').hide();
			$('#bannerLeftServices').hide();
			$('#bannerLeftData').show();
			$('#bannerLeft').css("background-image", "url(images/banners/a.jpg)");
			
			$('#bannerRightServices').removeClass("bannerTabsHover");
			$('#bannerRightEquip').removeClass("bannerTabsHover");
			$('#bannerRightData').addClass("bannerTabsHover");
		},
		function () {
			//$(this).removeClass("hover");
		}
	);
	
	var height;
	
	$('#testimonials li').toggle(
		function() {
		  $(this).animate({
			height: "100%"
			}, 500 ),
		  $(this).children('.testimonial').show()
		},
		function() {
		  $(this).animate({
			height: "30px"
			}, 500 ),
			$(this).children('.testimonial').hide()
		}
	);
	
	//.find('span')
	
	jQuery.validator.messages.required = "";
	$("#quickContact").validate({
		rules: {
			name: {required: true, minlength: 2},
			email: {required: true,  email: true},
			phone_num: {required: true,  digits: true}
		},
		messages: {
			name: "<img id='nameerror' src='images/errors/error.png' hovertext='You must enter your name.' />",
			email: "<img id='emailerror' src='images/errors/error.png' hovertext='You must enter a valid email address.' />",
			phone_num: "<img id='phoneerror' src='images/errors/error.png' hovertext='You must enter a valid phone num.' />"
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'There is 1 error.'
					: 'There are ' + errors + ' errors.';
				$("div.error span").html(message);
				$("div.error").show();
				$("#mainContact").css("height", "510px");
			} else {
				$("div.error").hide();
			}
		},
		onkeyup: false,
		errorClass: "invalid",
		submitHandler: function(form) {
			$("div.error").hide();
			form.submit();
		},
		success:function(label){
			label.html("<img src='images/errors/success.png' alt='Valid'>");
		},
		errorPlacement: function(error, element) { 
			error.insertAfter(element);
			//generateTooltips();
		},
		highlight: function(element, errorClass) {
     		$(element).parent("div").addClass("errorRow")
		},
		unhighlight: function(element, errorClass, validClass) {
		   	$(element).parent("div").removeClass("errorRow").addClass(validClass);
		}						
	});
	$("#fullContact").validate({
		rules: {
			name: {required: true, minlength: 2},
			email: {required: true,  email: true},
			phone_num: {required: true,  digits: true}
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'There is 1 error.'
					: 'There are ' + errors + ' errors.';
				$("div.error span").html(message);
				$("div.error").show();
			} else {
				$("div.error").hide();
			}
		},
		onkeyup: false,
		errorClass: "invalid",
		submitHandler: function(form) {
			$("div.error").hide();
			form.submit();
		},
		highlight: function(element, errorClass) {
     		$(element).parent("div").addClass("errorRow")
		},
		unhighlight: function(element, errorClass, validClass) {
		   	$(element).parent("div").removeClass("errorRow").addClass(validClass);
		}						
	});
});
