(function () {
	
	Cufon
		.replace('div#title h1', {fontFamily: 'Serif'})
		.replace('div#title h2', {fontFamily: 'Sans'})
		.replace('div#menu h1, div#body h1, div#body h2, div#body h3, div#body h4, div#feature p', {fontFamily: 'Sans', hover: true});
	
	jQuery(function () {
			
		jQuery('div#menu li:has(h1)').hover(function () {
            
            jQuery(this).addClass('active');
            
        }, function () {
            
            jQuery(this).removeClass('active');
            
        });
			
		jQuery('form#contact-form')
			.bind('submit', function () {
				
				var valid = true,
				    emailPattern = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b/;
				
				jQuery(this).find('input, textarea').each(function () {
					
					var input = jQuery(this),
						value = input.val().replace(/^\s+|\s+$/g, '');
					
					if (
						value === ''
						|| (input.is('input#contact-email-address') && !emailPattern.test(value))
						|| (input.is('input#contact-email-address-confirmation') && (!emailPattern.test(value) || value !== jQuery('input#contact-email-address').val()))
					) {
						input.addClass('invalid').one('change', function () {
							
							jQuery(this).removeClass('invalid');
							
						});
						
						valid = false;
					}
					
				});				
				
				return valid;
				
			})
			.find('label').each(function () {
				
				var label = jQuery(this).addClass('compact'),
					labelFor = label.attr('for');
				
				jQuery('input#' + labelFor + ', textarea#' + labelFor)
					.each(function () {
						
						if (jQuery(this).val() !== '') {
							label.addClass('hidden');
						}
						
					})
					.focus(function () {
						
						label.addClass('hidden');
						
					})
					.blur(function () {
						
						if (jQuery(this).val() === '') {
							label.removeClass('hidden');
						}
						
					});
				
			});

		
	});
	
})();