$(document).ready(function(){
  //$('#swap').FadeState=2;
  document.getElementById('swap').FadeState=2;
  $('#logo').click(function(event){
    event.preventDefault();
    swap('index.html');
  });
  $('#nav a').each(function(idx){$(this).html($(this).html()+'<br /><br />'+$(this).html()+'<br /><br />');});
  
  //$('#nav a').html()+'<br /><br />'+$('#nav a').html());
  $('#nav a').hover(function(){$(this).animate({top: '-=42'}, 200)},
                    function(){$(this).animate({top: '+=42'}, 1)});
  $('#nav a').click(function(event){
    event.preventDefault();
    swap(this.href.substr(this.href.lastIndexOf('/')+1));
  });
});

function swap(page){
  var req;
  if(window.XMLHttpRequest)
    req=new XMLHttpRequest();
  else// for older IE 5/6
    req=new ActiveXObject("Microsoft.XMLHTTP");
  req.open("GET",page,false);
  req.send();
  ret=req.responseText;
  fade();
}

function done(){
  document.getElementById('swap').innerHTML=ret.substr(ret.indexOf('^^')+6,ret.indexOf('$$')-ret.indexOf('^^')-11);
  fade();
}

var TimeToFade = 500.0;
function fade(){
  var element=document.getElementById('swap');
  element.FadeState = element.FadeState == 2 ? -1 : 1;
  element.FadeTimeLeft = TimeToFade;
  setTimeout("animateFade("+new Date().getTime()+")",13);
}

function animateFade(lastTick,ret){  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  var element=document.getElementById('swap');
  if(element.FadeTimeLeft <= elapsedTicks){
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    if(element.FadeState==-2)
      done();
  }
  else{
    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+")",13);
  }
}

