$.fn.exists = function(){
	return $(this).length>0;
};

$(window).load(function()
{
	var min_height = 0;
	
	$(window).resize(function(){
		if($('body').is('.home'))
		{
			//min_height = $(window).height();
			//$('.home_content').css({'min-height':min_height});
		}
		else
		{
			min_height = $(window).height() - $('.body').position().top - $('.footer').height();
			$('.body').css({'min-height':min_height});
		}
		
	}).trigger('resize');
	
	$('.footer').hover_to_open();
	$('.header').hover_to_open();
	
	
	$.validator.addMethod("default_name", function(value){
         return value !== "Full Name";
    });
    
    $.validator.addMethod("default_email", function(value) {
         return value !== "Email Address";
    });
    
    $.validator.addMethod("default_postcode", function(value) {
         return value !== "Postcode";
    });
    
    $.validator.addMethod("default_enquiry", function(value) {
         return value !== "Enquiry";
    });
    
	$('.footer #contact_form').validate({
		rules: {
			name	:	"default_name",
			email	:	"default_email",
			postcode	:	"default_postcode",
			enquiry	:	"default_enquiry"
		}
	});
	
});



$.fn.hover_to_open = function()
{
	// show, get height, hide
	$(this).find('.accordion').css({'display':'block', 'visibility':'hidden', 'height':'auto'});
	var div_height = $(this).find('.accordion').height();
	$(this).find('.accordion').css({'display':'block', 'visibility':'visible', 'height':'1px'});
	
	
	$(this).mouseenter(function(){
		$(this).find('.accordion').stop().animate({'height':div_height}, 500);
	});
	
	$(this).mouseleave(function(){
		$(this).find('.accordion').stop().animate({'height':0}, 500);
	});

};

$(window).load(function() {

    $('.image_gallery').each(function(){
    	if($(this).find('img').exists())
    	{
    		$(this).nivoSlider({
		        effect:'fade', // Specify sets like: 'fold,fade,sliceDown'
		        slices:1, // For slice animations
		        boxCols: 1, // For box animations
		        boxRows: 1, // For box animations
		        animSpeed:500, // Slide transition speed
		        pauseTime:3000, // How long each slide will show
		        startSlide:0, // Set starting Slide (0 index)
		        directionNav:false, // Next & Prev navigation
		        directionNavHide:false, // Only show on hover
		        controlNav:true, // 1,2,3... navigation
		        controlNavThumbs:false, // Use thumbnails for Control Nav
		        controlNavThumbsFromRel:false, // Use image rel for thumbs
		        controlNavThumbsSearch: '.jpg', // Replace this with...
		        controlNavThumbsReplace: '_thumb.jpg', // ...this in thumb Image src
		        keyboardNav:false, // Use left & right arrows
		        pauseOnHover:true, // Stop animation while hovering
		        manualAdvance:true, // Force manual transitions
		        captionOpacity:0.8, // Universal caption opacity
		        prevText: 'Prev', // Prev directionNav text
		        nextText: 'Next', // Next directionNav text
		        beforeChange: function(){}, // Triggers before a slide transition
		        afterChange: function(){}, // Triggers after a slide transition
		        slideshowEnd: function(){}, // Triggers after all slides have been shown
		        lastSlide: function(){}, // Triggers when last slide is shown
		        afterLoad: function(){} // Triggers when slider has loaded
		    });
    	}
		
    });
});
