//////////////////////////////////////
//
// homeSlideShow
//
function homeSlideShow() {
  this.nFadeOut = 5000;
  this.nFadeIn = 5000;
  this.nWait = 7000;
  this.oOld = null;
  this.bStop = false;
  this.nSlide = 1;
  this.nMaxSlide = 6;
  this.hTimer = null;
}

homeSlideShow.prototype.startShow = function(fCallback) {
  // start new timer
  this.bStop = false;
  this.nSlide = 1;
  // call time for next slide
  if (fCallback) {
    this.hTimer = setTimeout(fCallback, (null == this.oOld ? 100 : this.nWait));
  }
}

homeSlideShow.prototype.showSlide = function(fCallback) {
  // cancel current timer
  if (this.hTimer) {
    clearTimeout(this.hTimer);
    hTimer = null;
  }
  // fade out
  if (this.oOld) {
    this.oOld.fadeOut(this.nFadeOut);
  }
  // stop?
  if (this.bStop) {
    this.oOld = null;
    this.bStop = false;
    this.nSlide = 1;
    return;
  }
  // fade in
  this.oOld = $('#home0'+this.nSlide);
  this.oOld.fadeIn(this.nFadeIn);
  // increment slide number
  this.nSlide++;
  if (this.nSlide > this.nMaxSlide) {
    this.nSlide = 1;
  }
  // start next cycle
  this.bStop = false;
  if (fCallback) {
    this.hTimer = setTimeout(fCallback, this.nWait);
  }
}

homeSlideShow.prototype.stopShow = function() {
  // stop timer
  if (this.hTimer) {
    clearTimeout(this.hTimer);
    this.hTimer = null;
  }
  // fade out
  if (this.oOld) {
    this.oOld.fadeOut(1000);
  }
  // reset to initial values
  this.oOld = null;
  this.bStop = true;
  this.nSlide = 1;
}

//////////////////////////////////////
//
// round corner stuff
//
if(!addresses) var addresses = new Array();
addresses.push("25021 16467 18958 11917 6659 8662 9594 16497 19965 11917 4887 4887 11917 23940 11917 5305 9594 14336 16497 16824 24181 4440 19615 6659 16824 4887 19615 11934 20091 11917 23940 16497 16497 22273 19501 16497 18958");

//////////////////////////////////////
//
// pageController
//
function pageController() {
  // initialize variables
  this.nFadeIn = 2000;
  this.nFadeOut = 2000;
  this.oPage = null;

  // create slide show divs
  for (var n = 1; n < 7; n++) {
    $('<div id="home0'+n+'" style="position:absolute; top:0; left:0; display:none;"><img id="homeslide0'+n+'" src="'+szIncludePath+'media/2007_fall_home_slide_show_0'+n+'.jpg" width="800" height="440"></div>').appendTo('div#page');
  }

  // size and position divs
  this.onResize();
}

pageController.prototype.onResize = function () {
  // get canvas position, dimensions
  var oCanvas = $('#canvas');
  var pos = {};
  var w = oCanvas.innerWidth();
  var h = oCanvas.innerHeight();
  oCanvas.position(pos);

  // set divs to match
  $('#divHome').css(pos);
  $('#divHome').css("width", w);
  $('#divHome').css("height", h);

  // position slides
  for (var n = 0; n < 7; n++) {
    $('#home0'+n).css(pos);
  }

  var oCollections = $('#divCollections');
  oCollections.css(pos);
  oCollections.css("width", w);
  oCollections.css("height", h);

  var oArchive = $('#divArchive');
  oArchive.css(pos);
  oArchive.css("width", w);
  oArchive.css("height", h);

  var oShows = $('#divShows');
  oShows.css(pos);
  oShows.css("width", w);
  oShows.css("height", h);

  var oAbout = $('#divAbout');
  oAbout.css(pos);
  oAbout.css("width", w);
  oAbout.css("height", h);

  var oPress = $('#divPress');
  oPress.css(pos);
  oPress.css("width", w);
  oPress.css("height", h);

  var oContact = $('#divContact');
  oContact.css(pos);
  oContact.css("width", w);
  oContact.css("height", h);
}

pageController.prototype.display = function(oPage) {
  // fade out existing page
  if (this.oPage) {
    this.oPage.fadeOut(this.nFadeOut);
  }
  // fade in
  this.oPage = oPage;
  this.oPage.fadeIn(this.nFadeIn);
}

///////////////////////////////////
// homeSlideSwitcher
//
function homeSlideSwitcher() {
  if (oHomeSlideShow) {
    oHomeSlideShow.showSlide('homeSlideSwitcher()');
  }
}

///////////////////////////////////
// initialize
//
var oHomeSlideShow = null;
var oPageController = null;

///////////////////////////////////
// on document ready
//
$(document).ready(function() {
  // load only visible images
  //$('img').lazyload();

  // create home slide show
  oHomeSlideShow = new homeSlideShow();

  // create page controller
  oPageController = new pageController();

  // on browser resize, reset dimensions and positions
  $(window).resize(function() {
    oPageController.onResize();
  });

  // fade in opening slide
  //$('div#home01').fadeIn(2400);

  // start the show
  $('#homeslide01').load(function() {
    oHomeSlideShow.startShow('homeSlideSwitcher()');
  });

  // bind page switchers to menu items
  $('a#navHome').click(function() {
    oPageController.display($('div#home01'));
    oHomeSlideShow.startShow('homeSlideSwitcher()');
  });
  $('a#navCollections').click(function() {
    $('divhome').hide();
    $('div#divCollectionDescription').load(szHomeUrl+'/collectiondescription');
    oPageController.display($('div#divCollections'));
    oHomeSlideShow.stopShow();
  });
  $('a#navArchive').click(function() {
    $('divhome').hide();
    //$('div#divArchiveDescription').load(szHomeUrl+'/archivedescription');
    oPageController.display($('div#divArchive'));
    oHomeSlideShow.stopShow();
  });
  $('a#navShows').click(function() {
    $('#divShowsAndGalleries').load(szHomeUrl+'/showsandgalleries');
    oHomeSlideShow.stopShow();
    $('#divhome').hide();
    oPageController.display($('#divShows'));
  });
  $('a#navAbout').click(function() {
    $('divhome').hide();
    $('div#divAboutAnnaHartzog').load(szHomeUrl+'/aboutannahartzog');
    oPageController.display($('div#divAbout'));
    oHomeSlideShow.stopShow();
  });
  $('a#navPress').click(function() {
    $('divhome').hide();
    $('div#divPress').load(szHomeUrl+'/press');
    oPageController.display($('div#divPress'));
    oHomeSlideShow.stopShow();
  });
  $('a#navContact').click(function() {
    $('divhome').hide();
    $('div#divContactInformation').load(szHomeUrl+'/contactinformation');
    oPageController.display($('div#divContact'));
    oHomeSlideShow.stopShow();
  });
});

