var megamenuFadeInSpeed = 200;
var megamenuFadeOutSpeed = 200;
var megamenuFadeOutDelay = 500;

var fadingImagesFadeSpeed = 300;
var fadingImagesDelay     = 2000;

var tooltipFadeInSpeed = 200;
var tooltipFadeOutSpeed = 200;

$(document).ready(function(){

	jQuery.jQueryRandom = 0;
	jQuery.extend(jQuery.expr[":"],
	{
		random: function(a, i, m, r) {
			if (i == 0) {
				jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
			};
			return i == jQuery.jQueryRandom;
		}
	});	
	
	$('.header-container a.nav-residential, .header-container a.nav-residential-selected, .header-container a.nav-business, .header-container a.nav-business-selected, .header-container a.nav-power-companies, .header-container a.nav-power-companies-selected').hover(
		function() {
			show_mega_menu( $(this).siblings('.megamenu') );
		}, function() {
			$(this).siblings('.megamenu').delay( megamenuFadeOutDelay ).queue(function() {
				hide_mega_menu( this );
			});
		}
	);
	$('.megamenu').hover(
		function() {
			show_mega_menu( this );
		}, function() {
			$(this).delay( megamenuFadeOutDelay ).queue(function() {
				hide_mega_menu( this );
			});
		}
	);
	

	$('.fading-images').each( function() {
		
		var imageToFadeIn = $(this).find('img:random').first();
		
		imageToFadeIn.addClass('current').show();
		
		$(this).delay(fadingImagesDelay).queue( function() {
			fade_in_next_image( this );
		});
			
	});
	

	$('.question-mark').hover(
		function() {
			$(this).siblings('.tooltip').fadeIn(tooltipFadeInSpeed);
		}, function() {
			$(this).siblings('.tooltip').fadeOut(tooltipFadeOutSpeed);
		}
	);	
	
	if ( $('.tabs-container').length > 0 ) {
		set_up_tabs();
	}
	
});

function set_up_tabs() {
	$('.tab-contents-container').each( function() {
		$(this).css( {
			'height': $(this).children().eq(0).outerHeight()
		});
	});
	$('ul.tabs').each( function() {
		$(this).find('li').eq(0).addClass('selected');
	});

	$('.tabs-container .tabs a').click( function() {
		
		if( !$(this).closest('.tabs-container').find($(this).attr('href')).is(':visible') ) {
                        
			$(this).parent().addClass('selected');
			$(this).parent().siblings().removeClass('selected');
			$(this).closest('.tabs-container').find('.tab-contents').fadeOut(200);
			$(this).closest('.tabs-container').find($(this).attr('href')).stop(true, true).fadeIn(200, function() {
				$(this).parent().stop(true, true).animate({
					'height': $(this).outerHeight()
				}, 400, function(){
                                    $('.footer-container .content-container').css('position','static').css('position','relative');  //fix ie dynamic height problem
                                });
			});
		}
		
		return false;
	});
}

function get_next_fading_image( parentObject ) {
	
	if ( $(parentObject).find('img').length > 1 ) {
		var nextFadingImage = $(parentObject).find('img:random').first();
		if ( nextFadingImage.hasClass('current') ) {
			return get_next_fading_image( parentObject );
		} else {
			return nextFadingImage;
		}
	} else {
		return $(parentObject).find('img').first();
	}
	
}

function fade_in_next_image( parentObject ) {
	
	var currentImage = $(parentObject).find('img.current');
	var imageToFadeIn = get_next_fading_image(parentObject)
	
	currentImage.css('z-index', 0);
	imageToFadeIn.css('z-index', 1);
	
	$(imageToFadeIn).fadeIn(fadingImagesFadeSpeed, function() {
		$(this).siblings('.current').removeClass('current').hide();
		$(this).addClass('current');
		var parentObject = $(this).closest('.fading-images');
		
		setTimeout( function() {
			fade_in_next_image(parentObject);
		}, 2000);
		
	});
	
}	

function show_mega_menu( megaMenuContainer ) {
	$(".megamenu").not(megaMenuContainer).each( function() {
		hide_mega_menu( this );
	});
	$(megaMenuContainer).stop(true, true).fadeIn( megamenuFadeInSpeed );
	$(megaMenuContainer).siblings('a').stop(true, true).addClass('hover');
}

function hide_mega_menu( megaMenuContainer ) {
	$(megaMenuContainer).stop(true, true).fadeOut( megamenuFadeOutSpeed );
	$(megaMenuContainer).siblings('a').stop(true, true).removeClass('hover');
}
