var features = {
	init: function() {
		jQuery(".featured .play-pause").click(function() {
			features.play_pause(this);
			return false;
		});
		jQuery(".featured .featured-nav a, .featured .previous, .featured .next").click(function() {
			features.jump_to_feature(this);
			return false;
		})
		
		jQuery(".features li").hide();
		jQuery(".features li.feature-1").show().addClass("current");
		jQuery(".featured-nav li.nav-1 a").addClass("current");
	},
	
	play_pause: function(el) {
		jQuery(el).toggleClass("paused");
		if (jQuery(el).attr('data-state') == "playing") {
			jQuery(el).attr('data-state', "paused");
		} else {
			jQuery(el).attr('data-state', "playing");
		}
	},
	
	jump_to_feature: function(el) {
		var current = jQuery(".features li.current");
		var jumper = jQuery("li.feature-"+jQuery(el).attr('data-value'));
		
		jQuery(".featured-nav li a.current").removeClass("current");
		jQuery(".featured-nav li.nav-"+jQuery(el).attr('data-value')+" a").addClass("current");
		jQuery(current).fadeOut().removeClass("current");
		jQuery(jumper).fadeIn().addClass("current");
		
		features.set_prev_and_next_from(parseInt(jQuery(el).attr("data-value")));
	},
	
	number_of_features: function() {
		return parseInt(jQuery(".featured").attr("data-count"));
	},
	
	set_prev_and_next_from: function(number) {
		var next = 0;
		var prev = 0;
		var total_count = features.number_of_features();
		if (number == 1) {
			prev = total_count;
		}
		if (number == total_count) {
			next = 1;
		}
		
		if (prev == 0) {
			prev = number - 1;
		}
		if (next == 0) {
			next = number + 1;
		}
		jQuery(".featured a.previous").attr('data-value', prev);
		jQuery(".featured a.next").attr('data-value', next);
	},
	
	start_timer: function() {
		setInterval(features.timer, 6000);
	},
	
	timer: function() {
    if (jQuery("body").hasClass('focused')) {
      if (features.should_auto_transition() == true) {
        features.jump_to_feature(jQuery(".featured a.next"));
      }
    }
	},
	
	should_auto_transition: function() {
		return jQuery(".featured .play-pause").attr("data-state") == "playing";
	}
};

jQuery(function() {
  jQuery("body").addClass("focused");
	features.init();
	features.start_timer();
});

function onBlur() {
  jQuery("body").removeClass('focused').addClass('blurred');
  // document.body.className = 'blurred';
};
function onFocus(){
  jQuery("body").removeClass('blurred').addClass('focused');
  // document.body.className = 'focused';
};
if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}

