var gMainVideoObj = null;

function init() {
	displayFirst(".summary");
	displayFirst(".testimonial");
	displayFirst(".news");
	setupEvents();
}

function displayFirst(name) {
	var items = $$(name) || [];
	if (items.length <= 0)
		return;
	items[0].show();
}

function setupEvents() {
	pe = new PeriodicalExecuter(rotate.curry(".testimonial"), 10);
	$$(".benefit").invoke('observe', 'mouseenter', handleMouseOver);
	var playVideo = $('play_video');
  if (playVideo)
    playVideo.observe('click', handlePlayHomeVideo);
  $('play_demo').observe('click', handlePlayHomeVideo);
  $$(".billboard-close")[0].observe('click', handleBillboardClose);
}

function handleBillboardClose(event) {
    var video = $('video_wrapper');
    handleCloseVideo(event);
    // Restore the swfobject with its clone since it was blown away in handleCloseVideo
    video.insert({bottom: gMainVideoObj});
    pe = new PeriodicalExecuter(rotate.curry(".testimonial"), 10);
}

function handlePlayHomeVideo(event) {
  pe.stop();
  // Clone the swfobject so we can restore it after it has been removed in handleCloseVideo
  var video = $('video_wrapper');
  var swfobj = video.select(".flashmovie")[0];
  gMainVideoObj = swfobj.clone(true);
  handlePlayVideo(event);
}

function handleMouseOver(event) {
	var elem = event.findElement(".benefit");
	var selectedItem = parseInt(elem.id[elem.id.length-1], 10);
	var items = $$(".summary");
	var benefit_icons = $$(".benefit");
	for (var i = 0; i < items.length; i++) {
		var item = items[i];
		var benefit_icon = benefit_icons[i];
		if (item.visible() && i != selectedItem) {
			item.hide();
			benefit_icon.removeClassName("selected");
		}
        if (i == selectedItem && !item.visible()) {
			item.show();
			// Mark the benefit as the current one
			benefit_icon.addClassName("selected");
		}
	}
}

function rotate(name) {

	var elems = $$(name) || [];
	if (elems.length <= 1)
		return;

	for (var i =0; i < elems.length; i++) {
		var elem = elems[i];
		if (elem.visible()) {
			elem.fade();
			var j = i+1;
			if (j >= elems.length) {
				j=0;
			}
			var f = function() {
				elems[j].appear();
			}
			f.delay(1.1);

			break;
		}
	};
}
