jQuery(document).ready(function() {
	
	if(jQuery('.jcarousel-skin-books').length > 0) {
		var jcarousel_wrap = (ie6 || ie7 || ie8) ? 'both' : 'circular';
	
		/* BOOKS SLIDESHOW (HOME) */
		var books_slideshow_items_no = jQuery('li', '.jcarousel-skin-books').length;
	
		if(books_slideshow_items_no == 1) {
			jQuery('.jcarousel-skin-books').jcarousel({itemFallbackDimension: 300});
		} else {
			jQuery('.jcarousel-skin-books').jcarousel({
				scroll: 1,
				wrap: jcarousel_wrap,
				itemVisibleInCallback: {
					onAfterAnimation:  function() {
					},
					onBeforeAnimation:  function() {
						Cufon.replace('#featured-tutorials h3');
					}
					
				},
				itemFallbackDimension: 300
			});
		}
	}
	
	testimonials_slideshow.setup();
	overlay_handler.setup();
	subscribe_overlay.setup();
	
});

var testimonials_slideshow = {
    container: null,
    total_items: 1,
    last_item: null,
    delay: 4000,
	animation: true,
	to: null,
    
    setup: function()  {
		  
		  this.container = jQuery('#testimonials-slideshow');
		  if(this.container.length == 0) return;
		  
		  this.items = jQuery('#testimonials-slideshow .testimonial-entry');
		  jQuery(this.items[0]).addClass('active');
		  this.total_items = this.items.length;
		  
		  this.last_item = 0;
		  
		  this.to = setTimeout(function(){
  
			  next_index = testimonials_slideshow.last_item + 1;
			  if(next_index == testimonials_slideshow.total_items) {
				  next_index = 0;
			  }
			  
			  testimonials_slideshow.switchPic(next_index, true);
		  }, testimonials_slideshow.delay);		
		  
    },
    
    switchPic: function(next_index, fade_effect) {
		
		var fade_duration = fade_effect ? 1000 : 0;
		
		jQuery(testimonials_slideshow.items).removeClass('selected');
		jQuery(testimonials_slideshow.items[next_index]).addClass('selected');
		
		var last_pic = jQuery('#testimonials-slideshow .active');
		var next_pic = jQuery('#testimonials-slideshow .testimonial-entry')[next_index];
		
		if(ie7 || ie8) {
			jQuery(last_pic).removeClass('active')
			jQuery(next_pic).addClass('active');
		} else {
			
			jQuery(last_pic).stop(true, true).animate({
				queue: false,
				opacity: 0
			  }, fade_duration, function() {
				
			});
			setTimeout(function(){jQuery(last_pic).removeClass('active')}, 1000);
		
			
			jQuery(next_pic).css({'opacity':'0'});
			jQuery(next_pic).addClass('active');
			jQuery(next_pic).stop(true, true).animate({
				queue: false,
				opacity: 1
			  }, fade_duration, function() {
				// Animation complete.
			});
			
		}

	
		this.last_item = next_index;
		
		if(testimonials_slideshow.animation == true) {
			testimonials_slideshow.to = setTimeout(function(){
	
				next_index = testimonials_slideshow.last_item + 1;
				if(next_index == testimonials_slideshow.total_items) {
					next_index = 0;
				}
				
				testimonials_slideshow.switchPic(next_index, true);
			}, testimonials_slideshow.delay);
		}
		
    }   
   
}

var overlay_handler = {
	items: [],
	last_target: null,
    last_overlay: null,
	
	setup: function() {
        
        this.items = jQuery('#webinar-video-sponsors li a, #footer-logos li a');

        jQuery(this.items).bind('mousemove', function(event) {
			//event.preventDefault();

            var related_a = event.currentTarget;
            
            if(event.currentTarget != overlay_handler.last_target) {
                overlay_handler.hideOverlay();
            }
            
            var overlay_id = jQuery(related_a).attr('rel');
			//var overlay_id = 'overlay-' + jQuery(related_a).attr('rel');
			var overlay_el = jQuery('#' + overlay_id);
			
            overlay_handler.last_target = related_a;
            overlay_handler.last_overlay = overlay_el;
            jQuery(overlay_el).removeClass('overlay-left');
            
            if(jQuery(overlay_el).hasClass('overlay-visible')) {
                
            } else {
                jQuery(overlay_el).addClass('overlay-visible');    

                if(!ie6 && !ie7 && !ie8) {
                    jQuery(overlay_el).css({'opacity':0});
                    jQuery(overlay_el).animate({
                        opacity: 1.0
                      }, 500, function() {
                    // Animation complete.
                    });					
                }
            }
			
            var link_pos = jQuery(related_a).offset();
            jQuery(overlay_el).css({top: event.pageY - Math.round(jQuery(overlay_el).innerHeight()/2) + 32});
            
            var overlay_left = event.pageX + 30;
            if(overlay_left + 30 + jQuery(overlay_el).innerWidth() > jQuery(window).width()) {
                overlay_left = event.pageX - jQuery(overlay_el).innerWidth() - 20;
                jQuery(overlay_el).addClass('overlay-left');
            }
            
            jQuery(overlay_el).css({left: overlay_left});
            
		});
		
		jQuery('body').bind('mouseover', function(event) {
			if(jQuery(event.target).parents('.overlay-button').length > 0) return;
			overlay_handler.hideOverlay();
		});

	},
	
	hideOverlay: function() {
        jQuery(overlay_handler.last_overlay).removeClass('overlay-visible');
        jQuery(overlay_handler.last_overlay).removeClass('overlay-left');
        overlay_handler.last_target = null;
	}
}


var subscribe_overlay = {
	items: [],
	last_target: null,
    last_overlay: null,
	
	setup: function() {
        
        this.items = jQuery('#subscribe-link');

        jQuery(this.items).bind('click', function(event) {
			event.preventDefault();
            
            var related_a = event.currentTarget;
            
            if(event.currentTarget != subscribe_overlay.last_target) {
                subscribe_overlay.hideOverlay();
            }
            
			var overlay_el = jQuery('#subscribe-overlay');
			
            subscribe_overlay.last_target = related_a;
            subscribe_overlay.last_overlay = overlay_el;
            
            if(jQuery(overlay_el).hasClass('overlay-visible')) {
                
            } else {
                jQuery(overlay_el).addClass('overlay-visible');    

                if(!ie6 && !ie7 && !ie8) {
                    jQuery(overlay_el).css({'opacity':0});
                    jQuery(overlay_el).animate({
                        opacity: 1.0
                      }, 500, function() {
                    // Animation complete.
                    });					
                }
            }
			
			/*
            var link_pos = jQuery(related_a).offset();
            jQuery(overlay_el).css({top: event.pageY - Math.round(jQuery(overlay_el).innerHeight()) - 5px});
            
            var overlay_left = event.pageX - Math.round(jQuery(overlay_el).innerWidth()/2);
            jQuery(overlay_el).css({left: overlay_left});*/
            
		});
		
		jQuery('body').bind('mouseover', function(event) {
			if(jQuery(event.target).parents('.footer_bottom_subscribe').length > 0) return;
			subscribe_overlay.hideOverlay();
		});

	},
	
	hideOverlay: function() {
        jQuery(subscribe_overlay.last_overlay).removeClass('overlay-visible');
        subscribe_overlay.last_target = null;
	}
}
