jQuery(document).ready(function() {
    jQuery("ul#topnav li .sub").css({'opacity':'0'});
    jQuery("ul#topnav li").hoverIntent(config);
	// Tooltip
	xOffset = -10;
    yOffset = -50;       
    jQuery(".tool").live({
        mouseenter:function(e){ 
            this.t=this.title;
            this.title="";                                      
            jQuery("body").append("<p id='tooltip'>"+ this.t +"</p>");
            jQuery("#tooltip")
                .css("top",(e.pageY - xOffset) + "px")
                .css("left",(e.pageX + yOffset) + "px")
                .fadeIn("fast");        
        },mouseleave:function(){
            this.title=this.t;        
            jQuery("#tooltip").remove();
        }
    }); 
    jQuery(".tool").live('mousemove',function(e){
        jQuery("#tooltip")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });
//	if(jQuery('body').hasClass('home')) slideShow();
	
	jQuery("#featured").zAccordion({
		timeout: 4500,
		width: 575,
		speed: 700,
		slideClass: "slide",
		animationStart: function() {
			jQuery("#featured").find("li.slide-previous div").fadeOut();
		},
		animationComplete: function() {
			jQuery("#featured").find("li.slide-open div").fadeIn();
		},
		slideWidth: 315,
		height: 210,
		trigger: 'mouseover',
		startingSlide: 0
	});
	jQuery("#featured").find("li.slide-closed div").css("display", "none");
});

function megaHoverOver(){
	jQuery(this).find(".sub").stop().fadeTo('fast', 1).show();
		
	//Calculate width of all ul's
	(function(jQuery) { 
		jQuery.fn.calcSubWidth = function() {
			rowWidth = 0;
			//Calculate row
			jQuery(this).find("ul").each(function() {                    
				rowWidth += jQuery(this).width(); 
			}); 
		};
	})(jQuery); 
	
	if ( jQuery(this).find(".row").length > 0 ) { //If row exists...
		var biggestRow = 0; 
		//Calculate each row
		jQuery(this).find(".row").each(function() {                             
			jQuery(this).calcSubWidth();
			//Find biggest row
			if(rowWidth > biggestRow) {
				biggestRow = rowWidth;
			}
		});
		//Set width
		jQuery(this).find(".sub").css({'width' :biggestRow});
		jQuery(this).find(".row:last").css({'margin':'0'});
		
	} else { //If row does not exist...
		
		jQuery(this).calcSubWidth();
		//Set Width
		jQuery(this).find(".sub").css({'width' : rowWidth});
		
	}
}

function megaHoverOut(){ 
  jQuery(this).find(".sub").stop().fadeTo('fast', 0, function() {
	  jQuery(this).hide(); 
  });
}

function slideShow() {
 
    //Set the opacity of all images to 0
    jQuery('#gallery a').css({opacity: 0.0});
    
    //Get the first image and display it (set it to full opacity)
    jQuery('#gallery a:first').css({opacity: 1.0});
    
    //Set the caption background to semi-transparent
    jQuery('#gallery .caption').css({opacity: 0.7});
 
    //Resize the width of the caption according to the image width
    jQuery('#gallery .caption').css({width: jQuery('#gallery a').find('img').css('width')});
    
    //Get the caption of the first image from REL attribute and display it
    jQuery('#gallery .content').html(jQuery('#gallery a:first').find('img').attr('rel'))
    .animate({opacity: 0.7}, 400);
    
    //Call the gallery function to run the slideshow, 9000 = change to next image after 9 seconds
    gallery();
}
 
function gallery() {
    
    //if no IMGs have the show class, grab the first image
    var current = (jQuery('#gallery a.show')?  jQuery('#gallery a.show') : jQuery('#gallery a:first'));
 
    //Get next image, if it reached the end of the slideshow, rotate it back to the first image
    var next = ((current.next().length) ? ((current.next().hasClass('caption'))? jQuery('#gallery a:first') :current.next()) : jQuery('#gallery a:first'));   
    
    //Get next image caption
    var caption = next.find('img').attr('rel'); 
    
    //Set the fade in effect for the next image, show class has higher z-index
    next.css({opacity: 0.0})
    .addClass('show')
    .animate({opacity: 1.0}, 1000);
 
    //Hide the current image
    current.animate({opacity: 0.0}, 1000)
    .removeClass('show');
    
    //Set the opacity to 0 and height to 1px
    jQuery('#gallery .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px'}, { queue:true, duration:300 }); 
    
    //Animate the caption, opacity to 0.7 and heigth to 100px, a slide up effect
    jQuery('#gallery .caption').animate({opacity: 0.7},100 ).animate({height: '38px'},240 );
    
    //Display the content
    jQuery('#gallery .content').html(caption);
    
    setTimeout('gallery()',9000);
}

var config = {    
	 sensitivity: 1, // number = sensitivity threshold (must be 1 or higher)    
	 interval: 20, // number = milliseconds for onMouseOver polling interval    
	 over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
	 timeout: 10, // number = milliseconds delay before onMouseOut    
	 out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
};
