var FadeInterval = 9000.0;
var TimeToFade = 1000.0;

var fadeSwitcher = function() {
  setTimeout('fadeSwitcher(fade("wwdc_home_splash"))', FadeInterval);
}

var fade = function (eid) {
  var element = document.getElementById(eid);
  if(element == null)
    return;

  if (element.FadeState == null) {
    element.FadeState = 2;
  }

  element.FadeState = -1;

  element.FadeTimeLeft = TimeToFade;
  setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "', false)", 33);
}

var animateFade = function (lastTick, eid, reachedApex) {  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;

  var element = document.getElementById(eid);
  var childImage = element.getElementsByTagName("img")[0];

  if (element.FadeTimeLeft <= elapsedTicks) {
    var opacity;
    var alpha;
    var finalFadeState;

    if (element.FadeState == 1) {
      opacity = '1';
      alpha = '100';
      finalFadeState = 2;
    }
    else {
      opacity = '0';
      alpha = '0';
      finalFadeState = -2;
    }

    element.style.opacity = opacity;
    element.style.filter = 'alpha(opacity = ' + alpha + ')';
    element.FadeState = finalFadeState;

    if (!reachedApex) {
      reachedApex = true;
      element.FadeTimeLeft = TimeToFade;
      element.FadeState = 1;
      elapsedTicks = 33;

      wwdc_toggle_splash('', 0);
    }
    else {
      element.FadeState = 2;
      return;
    }
  }

  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft / TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

  setTimeout("animateFade(" + curTick + ",'" + eid + "', " + reachedApex.toString() +")", 33);
}

function wwdc_toggle_splash(param_path, param_image_number)
{
  var parent = document.getElementById("wwdc_home_splash");
  var child_image = parent.getElementsByTagName("img")[0];

  if (param_image_number == 0)
  {
    if (child_image.id == "wwdc_home_splash_1")
    {
      parent.style.backgroundImage = "url('/assets/web/img/large/WGUC_AD_600w_300h.jpg')";
      child_image.setAttribute("src", "/assets/web/img/large/nav_home_splash_2.gif");
      child_image.setAttribute("id", "wwdc_home_splash_2");
      child_image.setAttribute("usemap", "#home_splash_map_2");
    }
    else if (child_image.id == "wwdc_home_splash_2")
    {
      parent.style.backgroundImage = "url('/assets/web/img/large/epub_main.png')";
      child_image.setAttribute("src", "/assets/web/img/large/nav_home_splash_3.gif");
      child_image.setAttribute("id", "wwdc_home_splash_3");
      child_image.setAttribute("usemap", "#home_splash_map_3");
    }
    else if (child_image.id == "wwdc_home_splash_3")
    {
      parent.style.backgroundImage = "url('/assets/web/img/large/reverb_day_banner_600w_300h.jpg')";
      child_image.setAttribute("src", "/assets/web/img/large/nav_home_splash_1.gif");
      child_image.setAttribute("id", "wwdc_home_splash_1");
      child_image.setAttribute("usemap", "#home_splash_map_1");
    }
  }
  else if (parent.style.backgroundImage.indexOf(param_path) == -1)
  {
    parent.style.backgroundImage = "url('" + param_path + "')";
    child_image.setAttribute("src", "/assets/web/img/large/nav_home_splash_" + param_image_number + ".gif");
    child_image.setAttribute("id", "wwdc_home_splash_" + param_image_number);
    child_image.setAttribute("usemap", "#home_splash_map_" + param_image_number);
    
    window.focus(); // Only reset focus when the user clicks...
  }
}

fadeSwitcher();


