function navClickEvent()  {
  $('images').observe('click', function() { navToggle_default('images'); });
  $('imagesS').observe('click', function() { navToggle('images'); });
  $('news').observe('click', function() { navToggle_default('news'); });
  $('newsS').observe('click', function() { navToggle('news'); });
  $('schedule').observe('click', function() { navToggle_default('schedule'); });
  $('scheduleS').observe('click', function() { navToggle('schedule'); });
  $('presenters').observe('click', function() { navToggle_default('presenters'); });
  $('presentersS').observe('click', function() { navToggle('presenters'); });
}

var navPages = ['images','news','schedule','presenters'];
var curPage;
function navLoad_primer()  {
  navPages.each(function(i) {
    $(i).show();
  });
}
function navToggle_default(page)  {
  updatePage(page);

  navPages.each(function(i) {
    new Effect.Fade(i, { duration: .3, queue: {scope: 'nav'}});
  });

  var tmp = navPages.without(page);
  tmp.each(function(i) {
    new Effect.Appear(i + 'S', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  });

  new Effect.BlindDown(page + 'B', { duration: .5, queue: {position: 'end', scope: 'nav'}});
  curPage = page;
}
function navToggle(page)  {
  updatePage(page);

  new Effect.BlindUp(curPage + 'B', { duration: .6, queue: {position: 'end', scope: 'nav'}});
  new Effect.BlindDown(page + 'B', { duration: .6, queue: {position: 'end', scope: 'nav'}});

  $(page + 'S').hide();
  $(curPage + 'S').show();

  curPage = page;
}
function navLoad(page)  {
  var tmp = navPages.without(page);
  tmp.each(function(i) {
    new Effect.Appear(i + 'S', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  });

  new Effect.BlindDown(page + 'B', { duration: .5, queue: {position: 'end', scope: 'nav'}});

  curPage = page;
}
function navLoad_inner()  {
  new Effect.Appear('innerS', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  new Effect.BlindDown('innerB', { duration: .5, queue: {position: 'end', scope: 'nav'}});
}

function navLoad_inner()  {
  new Effect.Appear('innerS', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  new Effect.BlindDown('innerB', { duration: .5, queue: {position: 'end', scope: 'nav'}});
}
function navSwitch(page,sect)  {
  var queue = Effect.Queues.get('hpIntro');
  queue.each(function(e) { e.cancel() });

  var queue = Effect.Queues.get('setcontent0');
  queue.each(function(e) { e.cancel() });

  var queue = Effect.Queues.get('setcontent1');
  queue.each(function(e) { e.cancel() });

  var onlinks = $$('#nav .navcB div.link a.on');
  onlinks.each(function(i) {
    $(i).removeClassName('on');
  });

  if (sect == 'A') {
    $(page + 'Sect-A').addClassName('on');
    $(page + 'Sect-B').removeClassName('on');
    if ($(page + 'Sect-C')) { $(page + 'Sect-C').removeClassName('on'); }

    if ($(page + '-B').visible()) {
      new Effect.Fade(page + '-B', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    } else if ($(page + '-C') && $(page + '-C').visible()) {
      new Effect.Fade(page + '-C', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    }

    new Effect.Appear(page + '-A', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  } else if (sect == 'B') {
    $(page + 'Sect-A').removeClassName('on');
    $(page + 'Sect-B').addClassName('on');
    if ($(page + 'Sect-C')) { $(page + 'Sect-C').removeClassName('on'); }

    if ($(page + '-A').visible()) {
      new Effect.Fade(page + '-A', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    } else if ($(page + '-C') && $(page + '-C').visible()) {
      new Effect.Fade(page + '-C', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    }

    new Effect.Appear(page + '-B', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  } else if (sect == 'C') {
    $(page + 'Sect-A').removeClassName('on');
    $(page + 'Sect-B').removeClassName('on');
    $(page + 'Sect-C').addClassName('on');

    if ($(page + '-A').visible()) {
      new Effect.Fade(page + '-A', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    } else if ($(page + '-B').visible()) {
      new Effect.Fade(page + '-B', { duration: .2, queue: {position: 'end', scope: 'nav'}});
    }

    new Effect.Appear(page + '-C', { duration: .2, queue: {position: 'end', scope: 'nav'}});
  }

  new Ajax.Request(
    "/ti.php",
    {
      method: "post",
      postBody: "p=" + page + "&n=true",
      onComplete: processReq
    }
  )

  if ($(page + '-' + sect + '-anchor')) { window.setTimeout(function() { if ($(page + '-scroll').scrollTop > 0) { $(page + '-scroll').scrollTo(0,0); } new Effect.Scroll($(page + '-scroll'), { y: ($(page + '-' + sect + '-anchor').cumulativeOffset().top - $(page + '-scroll').cumulativeOffset().top), duration: 0.2 }); }, 300); }
}

function updatePage(page)  {
  var queue = Effect.Queues.get('hpIntro');
  queue.each(function(e) { e.cancel() });

  new Ajax.Request(
    "/ti.php",
    {
      method: "post",
      postBody: "p=" + page,
      onComplete: processReq
    }
  )
}

function loadPage(page,link,sect)  {
  var queue = Effect.Queues.get('hpIntro');
  queue.each(function(e) { e.cancel() });

  if (sect) { var spost = "&s=" + sect; }

  var onlinks = $$('#nav .navcB div.link a.on');
  onlinks.each(function(i) {
    $(i).removeClassName('on');
  });
  var onlinks = $$('#nav .navicBi div.link a.on');
  onlinks.each(function(i) {
    $(i).removeClassName('on');
  });

  if (sect) {
    $(sect + '-' + link).addClassName('on');
  } else {
    $(page + '-' + link).addClassName('on');
  }

  new Ajax.Request(
    "/ti.php",
    {
      method: "post",
      postBody: "p=" + page + "&l=" + link + spost,
      onComplete: processReq
    }
  )
}

function hpIntro()  {
  new Effect.Appear('introImg', { duration: 3.0, queue: {position: 'end', scope: 'hpIntro'}});
  new Effect.Appear('introImg-l1', { duration: 2.0, delay: -1.5, queue: {position: 'end', scope: 'hpIntro'}});
  new Effect.Appear('introImg-l2', { duration: 2.0, queue: {position: 'end', scope: 'hpIntro'}});
  new Effect.Appear('introImg-l3', { duration: 2.0, queue: {position: 'end', scope: 'hpIntro'}});
  new Effect.Fade('introImg', { duration: 2.0, delay: 2, queue: {position: 'end', scope: 'hpIntro'}});
  new Effect.Appear('introTxt', { duration: 1.2, queue: {position: 'end', scope: 'hpIntro'}});
}

function introImg()  {
  new Effect.Appear('introImg', { duration: 2.0, queue: {position: 'end', scope: 'hpIntro'}});
}

function login()  {
 $('loginmsg').innerHTML = $('username-error').innerHTML = $('passwd-error').innerHTML = ""; 
  new Ajax.Request(
    "/ti.php",
    {
      method: "post",
      postBody: "action=login&" + $('lgnForm').serialize(),
      onComplete: processReq
    }
  )
}

function processReq(trans)  {
  //alert(trans.responseText);
  var response = trans.responseXML.documentElement;
  var commands = response.getElementsByTagName('command');

  for(var i=0;i<commands.length;i++)  {
    method = commands[i].getAttribute('method');

    switch(method)  {
      case 'alert':
        var message = getNodeValue(commands[i],'message');
        alert(message);
        break;

      case 'setcontent':
        var target  = getNodeValue(commands[i],'target');
        var content = getNodeValue(commands[i],'content');

        if(target && content)  {
          $(target).innerHTML = content; 
        }
        break;

      case 'setcontent-effect':
        var target  = getNodeValue(commands[i],'target');
        var content = getNodeValue(commands[i],'content');
        var init    = getNodeValue(commands[i],'init');

        if(target && content && init)  {
          new Effect.Fade(target, { duration: 0.5, queue: {position: 'end', scope: 'setcontent' + i}, afterFinish: function() { $(target).innerHTML = content; new Effect.Appear(target, { duration: 0.5, queue: {position: 'end', scope: 'setcontent' + i}, afterFinish: function() { eval(init); }}); }}); 
        } else if(target && content)  {
          new Effect.Fade(target, { duration: 0.5, queue: {position: 'end', scope: 'setcontent' + i}, afterFinish: function() { $(target).innerHTML = content; new Effect.Appear(target, { duration: 0.5, queue: {position: 'end', scope: 'setcontent' + i}}); }}); 
        }
        break;

      case 'setstyle':
        var target   = getNodeValue(commands[i],'target');
        var property = getNodeValue(commands[i],'property');
        var value    = getNodeValue(commands[i],'value');
        if(target && property && value)  {
          document.getElementById(target).style[property] = value;
        }
        break;

      case 'scroll':
        var page = getNodeValue(commands[i],'page');
        window.setTimeout(function() { if ($(page + '-scroll').scrollTop > 0) { $(page + '-scroll').scrollTo(0,0); } new Effect.Scroll($(page + '-scroll'), { y: ($(page + '-A-anchor').cumulativeOffset().top - $(page + '-scroll').cumulativeOffset().top), duration: 0.2 }); }, 1200);
        break;

      case 'eval':
        var value = getNodeValue(commands[i],'value');
        eval(value);
        break;

      case 'location':
        var url = getNodeValue(commands[i],'url');
        window.location = url;
        break;
    }
  }
}

function getNodeValue(parent,tagName)  {
  var node = parent.getElementsByTagName(tagName)[0];
  return (node && node.firstChild) ? node.firstChild.nodeValue : false;
}

if (navigator.userAgent.match(/Safari/))  {
  document.write('<style type="text/css">');
  document.write('#topnav span.dot { margin: 0 12px 0 12px; }');
  document.write('</style>');
} 
