// ############################################################################
// ################################# HOMEPAGE #################################
// ############################################################################

function setupDomain() {
	var domainLinks = $$("#tertiary .domain_link");
	domainLinks.each(function(block) {
		Event.observe(block.parentNode.parentNode, "click", function(e) {
      document.location = block.href;
			Event.stop(e);
		});
		Event.observe(block.parentNode.parentNode, "mouseover", function(e) {
      		$(block.parentNode.parentNode).addClassName('hover');	
		});
		Event.observe(block.parentNode.parentNode, "mouseout", function(e) {
      		$(block.parentNode.parentNode).removeClassName('hover');	
		});
	});
}

// Make whole domainblocks clickable
loader.schedule("Make homepage domain block clickable", setupDomain);

var tickerSet = [];     // Remember ticker info for all ticker texts.
var tickerDuration = 0; // Total duration for all ticker texts.

function setupTicker() {
  // Check whether a ticker tape is present.
  if (!$('important')) return;

  // Determine ticker canvas width.
  var tickerWidth = $('important').getWidth();

  // Determine lengths and scroll distances for each ticker.
  // Minimum scroll length = length text + 2 * size of ticker
  $$("#important p").each(function(tickerText, index) {
    tickerSet[index] = new Array();
    tickerSet[index].tStart = tickerWidth + 50;
    tickerSet[index].tWidth = tickerText.firstDescendant().getWidth() + tickerWidth;
    tickerSet[index].tDuration = (0.03 * tickerSet[index].tWidth);
    tickerText.setStyle(
    {
      width: tickerSet[index].tWidth+'px',
      position: 'absolute',
      top: '5px',
      left: tickerSet[index].tStart+'px',
      zIndex: '80',
      visibility: 'visible'
    });
    tickerDuration += tickerSet[index].tDuration;
  });

  // Start ticker for first round.
  tickerFillQueue();

  // Set interval to refill effect queue
  setInterval(tickerFillQueue, (1000*tickerDuration));
}

function tickerFillQueue() {
  // Build effect queue for ticker tape.
  $$("#important p").each(function(tickerText, index) {
    tickerText.setStyle({
      left: tickerSet[index].tStart+'px'
    });
    new Effect.MoveBy(tickerText, 0, -tickerSet[index].tWidth, {
      duration: tickerSet[index].tDuration,
      transition: Effect.Transitions.linear,
      queue: {
        position: 'end',
        scope: 'ticker'
      }
    });
  });
}

// Schedule tickertape setup in loader.
loader.schedule("Tickertape", setupTicker);

