 var onHomePage = true;
 var fullFade = false;
 var selected = 0;

function homePage()
{
  select('home');

  if(!onHomePage)
  {
    onHomePage = true;
    new Effect.Opacity('backgroundImg',
      { 
        duration: 2.0, 
        transition: Effect.Transitions.linear, 
        from: (fullFade ? 0.0 : 0.22), 
        to: 1.0 
      });
    $('backgroundImg').style.display = '';
	
    pageRequests('home', 3, true);
	
    //new Effect.Morph('subheader',   {style: {height:  '65px'}});
    new Effect.Appear('subheader');
    new Effect.Appear('sideBarHome');
    new Effect.Appear('contact');
    new Effect.DropOut('sideBar');
    //new Effect.Morph('sideBar',     {style: {opacity: '0%'}}); 
    //new Effect.Morph('sideBarHome', {style: {opacity: '100%'}});    
    //new Effect.Morph('contact',     {style: {opacity: '100%'}});    
  }
}

function page(pageName, fadeBackground)
{ 
  if(pageName == 'home') 
  {
  	homePage();
  	return;
  }
  
  if(onHomePage)
  {
  	//new Effect.Morph('subheader',   {style: {height:  '0px'}});
    new Effect.DropOut('subheader');
    new Effect.DropOut('sideBarHome');
    new Effect.DropOut('contact');
    //new Effect.Morph('sideBar',     {style: {opacity: '100%'}}); 
    new Effect.Appear('sideBar');
    //new Effect.Morph('sideBarHome', {style: {opacity: '0%'}});
    //new Effect.Morph('contact',     {style: {opacity: '0%'}});
  }
  
  select(pageName);
  adjustBackground(fadeBackground);
  
  $('content').update("Loading...<img src='./img/indicator.gif'/>");

  pageRequests(pageName, 0, false);
}

function pageRequests(pageName, random, home)
{
  if(random > 0) {
    randStr = '-' + Math.floor(Math.random() * random);
  } else {
    randStr = '';
  }
  if(home) {
    new Ajax.Request('ajax.php', 
        {
      onSuccess: function(transport) {
          var div = $$('div#sideBarHome div.bottom div.imgArea')[0];
          var contentElement = transport.responseXML.getElementsByTagName('content')[0];    
          var result = contentElement.childNodes[0].nodeValue ; 
          div.update(result);
          fixLinks();
           },
      onException: function(req, exception) 
           {
            alert("The request had a fatal exception thrown.\n\n" + exception.message);
            return true;
           },
      method: 'get',			 
      parameters: 
          { 
          page: 'sidebar/' + pageName + randStr + '.php'
          }
        });
  } else {
    new Ajax.Request('ajax.php', 
        {
      onSuccess: function(transport) {
          var div = $('imgArea'); 
          var contentElement = transport.responseXML.getElementsByTagName('content')[0];    
          var result = contentElement.childNodes[0].nodeValue ; 
          div.update(result);
          fixLinks();
           },
      onException: function(req, exception) 
           {
            alert("The request had a fatal exception thrown.\n\n" + exception.message);
            return true;
           },
      method: 'get',			 
      parameters: 
          { 
          page: 'sidebar/' + pageName + randStr + '.php'
          }
        });
  }
  new Ajax.Request('ajax.php', 
      {
          onSuccess: function(transport) {
						var div = $('content');
                      	var contentElement = transport.responseXML.getElementsByTagName('content')[0];    
                        var result = contentElement.childNodes[0].nodeValue ; 
                        div.update(result);
                        fixLinks();
                     },
          onException: function(req, exception) 
                     {
                      alert("The request had a fatal exception thrown.\n\n" + exception.message);
                      return true;
                     },
		  method: 'get',			 
          parameters: 
              { 
                  page: 'content/' + pageName + '.php'
              }
      });
}

function select(linkId)
{

  $('home').className = '';
  if($(selected) != null)
  	$(selected).className = '';

  selected = linkId ;
  if($(linkId) != null)
  	$(linkId).className = 'selected';
}

function adjustBackground(full)
{
  var toVal = (full ? 0.0 : 0.22);
  var fromVal = 0;
  
  if(onHomePage)
  {
      fromVal = 1.0;
  }
  else
  {
      fromVal = 0.22;
  }
  
  if(onHomePage || fullFade != full)
  {
    onHomePage = false;
    fullFade = full;
    new Effect.Opacity('backgroundImg',
      { 
        duration: 2.0, 
        transition: Effect.Transitions.linear, 
        from: fromVal, 
        to: toVal 
      }
    );
  }
}

