var effect;
var current;

document.observe('dom:loaded', function () {
  if ($('home-tabs')!=null) $('home-tabs').addClassName('with-js');
  if ($('p1')!=null) panelprep();
});

// panelprep
function panelprep(pos) {
  $$('.inner-panel').invoke('hide');
  if (pos) {
    new Effect.Appear('p'+pos);
    current = pos;
    changelink(pos);
  } else {
    new Effect.Appear('p1');
    current = 1;
    changelink(1);
    // panel transition
    effect = setTimeout(function() {paneltransition(1, 2, true)}, 12000);
  }
  if ($('ajax-indicator').hasClassName('ajax-show')) $('ajax-indicator').removeClassName('ajax-show');
}

// welcome transition
function paneltransition(c, n, loop){
  if (($('p'+c)!=null) && ($('p'+n)!=null)) {
    new Effect.Fade('p'+c);
    new Effect.Appear('p'+n);
    setTimeout(function() {
      changelink(n);
    }, 500);
    current = n;
  }
  if (loop) {
    if ($('p'+(n+1))) effect = setTimeout(function(){paneltransition(n, n+1, true)}, 12000);
    else effect = setTimeout(function(){paneltransition(n,1, true)}, 12000);
  }
}

// switch panel link selected
function changelink(no) {
  $$('.tertiary-nav a.selected').invoke('removeClassName', 'selected');
  $('pl'+no).addClassName('selected');
  var listHeight = $('tertiary-nav').getHeight();
  if (listHeight > 206) {
    var pos = $('pl'+no).positionedOffset().top;
    if (pos > 60) {
      var max = listHeight - 206;
      pos = pos - 67;
      if (pos > max) pos = max;
      $('tertiary-nav').setStyle({
        top: '-'+pos+'px'
      });
    } else {
      $('tertiary-nav').setStyle({
        top: '0px'
      });
    }
    if (current == 1) {
      $('plless').hide();
    } else {
      $('plless').show();
    }
    if ($('p'+no).next() == null) {
      $('plmore').hide();
    } else {
      $('plmore').show();
    }
  }
}

// catch onclick events
document.observe( 'click', function( event ) {
  clearTimeout(effect);
  var elem = event.element();
  if (elem.match( '.panel-links a' )) {
    Event.stop(event);
    $$('.panel-links a').invoke('removeClassName', 'selected');
    $(elem).addClassName('selected');
    new Ajax.Updater('welcome', elem, { method:"get", onCreate : startLoading, onComplete: function() {panelprep();} });
  }

  if (elem.match( '.keywords a' )) {
    if (elem.href.match(/home_(what)|(how)/)) {
      Event.stop(event);
      // strip anchor as it broke ie
      var url = elem.href;
      var anchor = url.indexOf('#');
      if (anchor != -1) url = url.substring(0, anchor);
      new Ajax.Updater('welcome', url, { method:"get", onCreate : startLoading, onComplete: function() {panelprep(parseInt(elem.hash.substring(2)));} });
    }
  }

  if (elem.match( '.tertiary-nav a' )) {
    Event.stop(event);
    var n = parseInt(elem.hash.substring(2));
    if (n != current) paneltransition(current,n, false);
  }

  if (elem.identify() == 'plless') {
    Event.stop(event);
    paneltransition(current, current-1, false);
  }

  if (elem.identify() == 'plmore') {
    Event.stop(event);
    paneltransition(current, current+1, false);
  }
});

function startLoading() {
  if ($('ajax-indicator')!=null) $('ajax-indicator').addClassName('ajax-show');
}
