onLoads = new Array();

function DoOnLoad()
{
  for (f in onLoads) {
    onLoads[f]();
  }
  // end DoOnLoad()
}

//----------------------------------------------------------------------
//----------------------------------------------------------------------
function BannerImage(src, descrip, attrib)
{
    this.src = src;
    this.descrip = descrip;
    this.attrib = attrib;
}

var kBannerImages = new Array();
var gBannerIndex=-1;
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2007-nu-jgunn.jpg",
		  "Dual Slalom at Northeastern's inaugural Sunday River race, 2007.",
		  "Jeff Gunn");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2007-philo-jgunn.jpg",
		  "Riders on the final punishing climb of UVM's Mount Philo course, 2007.",
		  "Jeff Gunn");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2007-uvm-jgun.jpg",
		  "Downhill hucking, 2007.",
		  "Jeff Gunn");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2009-clusterhuck.jpg",
		  "DH riders waiting for their XC partners at the inaugural Lehigh ClusterHuck, 2009.",
		  "");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-dartmouth-lineup-chat.jpg",
		  "Men's C staging at the 2010 Dartmouth Easterns road race.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-a-field3-chat.jpg",
		  "The Men's A field rounds a curve at Bucknell, 2010.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-a-leftline-chat.jpg",
		  "The Men's A peloton, 2010.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-a-sprint-chat.jpg",
		  "Men's A sprint at the 2010 Philly Phlyer.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-b-field-chat.jpg",
		  "Men's B racers at the 2010 Philly Phlyer.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-c-ttt-lineup-chat.jpg",
		  "Men's C TTT staging at the 2010 USMA Spring Classic.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-men-feedzone-chat.jpg",
		  "The bulk of the Men's A field goes through the feedzone at the 2010 Dartmouth Easterns road race.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-women-a-field2-chat.jpg",
		  "Women's A racers attack the hill at the 2010 USMA Spring Classic circuit race.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-women-a-field-chat.jpg",
		  "Women's A racers get underway at the 2010 Dartmouth Easterns road race.",
		  "Chatura Atapattu");
kBannerImages[++gBannerIndex] =
  new BannerImage("/eccc/art/banners/banner-2010-women-b-field-chat.jpg",
		  "Women's B racers stage at the 2010 Philly Phlyer circuit race.",
		  "Chatura Atapattu");

function StartBannerImage()
{
    var bannerImg = document.getElementById("banner-photo-img");

    var res = readCookie("banner");
    if (res == null) {
      gBannerIndex = Math.round(Math.random()*kBannerImages.length);
    } else {
      gBannerIndex = res;
    }

    if (gBannerIndex >= kBannerImages.length) { gBannerIndex = 0; }
    else if (gBannerIndex < 0) { gBannerIndex = kBannerImages.length-1; }

    bannerImg.src = kBannerImages[gBannerIndex].src;
    bannerImg.alt = kBannerImages[gBannerIndex].descrip;
    if (kBannerImages[gBannerIndex].attrib.length > 0) {
      bannerImg.alt += " (" + kBannerImages[gBannerIndex].attrib + ")";
    }
    bannerImg.style.visibility = "visible";

    createCookie("banner", gBannerIndex, 0.33);

  // and StartBannerImage
}



//----------------------------------------------------------------------
//----------------------------------------------------------------------
function SideImage(src, full, descrip, attrib)
{
    this.src = src;
    this.full = full;
    this.descrip = descrip;
    this.attrib = attrib;
}

var kSideImages = new Array();
var gSideIndex=-1;
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-collin-nationals.jpg",
    "/eccc/art/fulls/collin-nats.jpg",
    "Collin (UNH) at MTB Nats, 2007.",
    "Jeff Gunn");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-ben-and-daniel.jpg",
    "/eccc/art/fulls/ben-and-daniel.jpg",
    "Ben Stephens and Dan Aduna (CMU) plot their next move at the inaugural Steel City Showdown, 2007.",
    "Jeff");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-erik-snow.jpg",
    "/eccc/art/fulls/army-snow-cross.jpg",
    "Erik (USMA) slides his way around in some traditional cyclocross weather, 2008.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-bucknell-ttt.jpg",
    "/eccc/art/fulls/bucknell-ttt.jpg",
    "A Bucknell TTT squad digs deep into the pain cave, 2008.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-judy-fanclub.jpg",
    "/eccc/art/fulls/judy-fanclub.jpg",
    "Judy Wexler's Tufts fanclub gets its game on at the Beanpot, 2008.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-unh-ttt.jpg",
    "/eccc/art/fulls/unh-ttt.jpg",
    "The UNH ladies work their magic on the TTT course, 2008.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-sarah-flair.jpg",
    "/eccc/art/fulls/sarah-flair.jpg",
    "Sarah (the superstar) takes her flair everywhere she goes, even Nationals 2008.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-stef-tongue.jpg",
    "/eccc/art/fulls/stef-tongue.jpg",
    "Stefan (Kutztown) should pay more attention to the business at hand, 2008...",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-ill-will.jpg",
    "/eccc/art/fulls/ill-will.jpg",
    "Ill Will (UVM) flagrantly violates number plate policy, 2007.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-nate.jpg",
    "/eccc/art/fulls/nate.jpg",
    "Nate (Brandeis) trudges up one last climb.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-lipka-corner.jpg",
    "/eccc/art/fulls/lipka-corner.jpg",
    "Josh (UNH) shows them how it's done.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-ryan-attack.jpg",
    "/eccc/art/fulls/ryan-attack.jpg",
    "Ryan leads the PSU ninjas on the attack.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-greg-celebrate.jpg",
    "/eccc/art/fulls/greg-celebrate.jpg",
    "Greg (BC) pulls it off at Easterns, 2007.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-adam-barriers.jpg",
    "/eccc/art/fulls/adam-barriers.jpg",
    "Adam Leman (Drexel) lets it rip in some heated ECCC 'cross action.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-chuck-mtb.jpg",
    "/eccc/art/fulls/chuck-mtb.jpg",
    "Chuck (BC) whips through a grass section.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-rose.jpg",
    "/eccc/art/fulls/rose.jpg",
    "Rose (UVM) destroys the field yet again.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-kim.jpg",
    "/eccc/art/fulls/kim.jpg",
    "Kim (DeSales) on the hunt.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-big-four.jpg",
    "/eccc/art/fulls/big-four.jpg",
    "Ben (USMA) works to protect the yellow jersey.",
    "");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-abramson.jpg",
    "/eccc/art/fulls/abramson.jpg",
    "Mark Abramson struggles to grasp that the ECCC has gotten even more awesome by 2010.",
    "Chatura Atapattu");
//kSideImages[++gSideIndex] = new SideImage(
//    "/eccc/art/sides/sides-180x270-ari.jpg",
//    "/eccc/art/fulls/ari.jpg",
//    "Ari (Dartmouth) attacks the Women's A field, 2010.",
//    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-billy.jpg",
    "/eccc/art/fulls/billy.jpg",
    "Billy (UNH) snipes Chris (UVM) at the line in the 2010 Easterns STXC.",
    "Tori Sulewski"); // ASK
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-bob-stumpf.jpg",
    "/eccc/art/fulls/2010-bob-stumpf.jpg",
    "Bob Stumpf (UPitt) gauges the field at the 2010 USMA Crit.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-charlie-zamastil-2010.jpg",
    "/eccc/art/fulls/charlie-zamastil-2010.jpg",
    "Charlie Zamastil (Temple) takes the crown on the Rock, Yale 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-yale-sprint.jpg",
    "/eccc/art/fulls/2010-yale-sprint.jpg",
    "One of the Delaware Blue Hens goes for the win on the Rock, Yale 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-jamey-driscoll.jpg",
    "/eccc/art/fulls/2010-jamey-driscoll.jpg",
    "Jamey Driscoll (UVM) shows off his stars and bars, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-chris-hong.jpg",
    "/eccc/art/fulls/2010-chris-hong.jpg",
    "Chris Hong (Harvard) enjoys his last ECCC race---for now!---Army 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-jackie.jpg",
    "/eccc/art/fulls/2010-jackie.jpg",
    "Jackie (NU) gives her bike a pre-race inspection, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-rudy.jpg",
    "/eccc/art/fulls/2010-rudy.jpg",
    "Jon Awerbuch (Yale) makes a go for it at the home race, Yale 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-women-c.jpg",
    "/eccc/art/fulls/2010-women-c.jpg",
    "Women's C racers wait for their race to begin, Dartmouth 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-nu-ds.jpg",
    "/eccc/art/fulls/2010-nu-ds.jpg",
    "A UVM racer rails the berms at NU's 2010 Easterns.",
    "Max Saccoccio");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-nu-ds-santos.jpg",
    "/eccc/art/fulls/2010-nu-ds-santos.jpg",
    "Santos (UVM) chases his shadow at the 2010 Easterns slalom.",
    "Max Saccoccio");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-jess-kutz.jpg",
    "/eccc/art/fulls/2010-jess-kutz.jpg",
    "Jessica Kutz (PSU) laughs off the 2010 NU Easterns STXC.",
    "Tori Sulewski"); // ASK
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-hamilton.jpg",
    "/eccc/art/fulls/2010-hamilton.jpg",
    "A Hamilton rider can't get enough of the sunshine, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-nyu.jpg",
    "/eccc/art/fulls/2010-nyu.jpg",
    "An NYU rider realizes ECCC racing is the best thing ever, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-zach-repp.jpg",
    "/eccc/art/fulls/2010-zach-repp.jpg",
    "Zach Repp (PSU) works around the Lehigh STXC, 2010.",
    "Tori Sulewski"); // ASK
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-vanya-temnykh.jpg",
    "/eccc/art/fulls/2010-vanya-temnykh.jpg",
    "Vanya Temnykh (PSU) hauls his bike around the upper corner of the Lehigh STXC, 2010.",
    "Tori Sulewski"); // ASK
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-drexel-ttt.jpg",
    "/eccc/art/fulls/2010-drexel-ttt.jpg",
    "Brett Houser and Nick Calgani (Drexel) should have discussed their TTT strategory beforehand, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-anna-mcloon.jpg",
    "/eccc/art/fulls/2010-anna-mcloon.jpg",
    "Anna McLoon (Harvard) plots how to crush her competitors, 2010.",
    "Chatura Atapattu");
kSideImages[++gSideIndex] = new SideImage(
    "/eccc/art/sides/sides-180x270-2010-army-martha-buckley.jpg",
    "/eccc/art/fulls/2010-army-martha-buckley.jpg",
    "Martha Buckley (MIT) attacks in the 2010 USMA Spring Classic circuit race.",
    "Chatura Atapattu");

//----------------------------------------------------------------------
//----------------------------------------------------------------------
var gFullImage;
var kSideImageNextTryTimeout = 100;
var kSideImageScrollTimeout = 5;
var kSideImageScrollDelta = 10;
var gTopPosition;

function CloseSideImageWindow()
{
  var overlay = document.getElementById("photo-overlay");
  overlay.style.visibility = "hidden";
  var container = document.getElementById("photo-overlay-container");
  container.style.visibility = "hidden";
}

function ScrollSideImageWindow()
{
  var container = document.getElementById("photo-overlay-container");
  gTopPosition += kSideImageScrollDelta;
  if (gTopPosition >= 0) {
    gTopPosition = 0;
  } else {
    setTimeout("ScrollSideImageWindow()", kSideImageScrollTimeout);
  }
  container.style.top = gTopPosition + "px";
}

function DoSideImageWindow()
{
    if (!gFullImage.complete) {
        setTimeout("DoSideImageWindow()", kSideImageNextTryTimeout);
    } else {
      var width = gFullImage.width + 24;
      var height = gFullImage.height+24;

      var overlay = document.getElementById("photo-overlay");
      overlay.style.visibility = "visible";

      var img = document.getElementById("photo-overlay-img");
      img.src = gFullImage.src;

      var text = document.getElementById("photo-overlay-text");
      text.style.width = gFullImage.width;
      text.innerHTML = kSideImages[gSideIndex].descrip;

      var attrib = document.getElementById("photo-overlay-attrib");
      if (kSideImages[gSideIndex].attrib.length > 0) {
	attrib.innerHTML = "Photo by " + kSideImages[gSideIndex].attrib;
      } else {
	attrib.innerHTML = "";
      }

      var primaryContainer = document.getElementById("primary-container");
      var container = document.getElementById("photo-overlay-container");
      container.style.left = ((1000 - width)/2)+"px";
      gTopPosition = -container.offsetHeight;
      container.style.top = gTopPosition + "px";
      container.style.visibility = "visible";
      setTimeout("ScrollSideImageWindow()", kSideImageScrollTimeout);

    }
    // end DoSideImageWindow
}

function SideImageWindow()
{
    gFullImage = new Image();
    gFullImage.src = kSideImages[gSideIndex].full;
    gFullImage.onLoad = DoSideImageWindow();
  // end SideImageWindow
}


//----------------------------------------------------------------------
//----------------------------------------------------------------------
function StartSideImage()
{
    var sideImg = document.getElementById("side-photo-img");

    gSideIndex = Math.round(Math.random()*kSideImages.length);
    if (gSideIndex >= kSideImages.length) { gSideIndex = 0; }

    sideImg.src = kSideImages[gSideIndex].src;
    sideImg.alt = kSideImages[gSideIndex].descrip;
    if (kSideImages[gSideIndex].attrib.length > 0) {
      sideImg.alt += " (" + kSideImages[gSideIndex].attrib + ")";
    }
    sideImg.style.visibility = "visible";

  // and StartSideImage
}

function NextSideImage()
{
  gSideIndex++;
  if (gSideIndex >= kSideImages.length) { gSideIndex = 0; }
  var sideImg = document.getElementById("side-photo-img");
  sideImg.src = kSideImages[gSideIndex].src;
  sideImg.alt = kSideImages[gSideIndex].descrip;
  if (kSideImages[gSideIndex].attrib.length > 0) {
    sideImg.alt += " (" + kSideImages[gSideIndex].attrib + ")";
  }
  // end NextSideImage
}

function PreviousSideImage()
{
  gSideIndex--;
  if (gSideIndex < 0) { gSideIndex = kSideImages.length-1; }
  var sideImg = document.getElementById("side-photo-img");
  sideImg.src = kSideImages[gSideIndex].src;
  sideImg.alt = kSideImages[gSideIndex].descrip;
  if (kSideImages[gSideIndex].attrib.length > 0) {
    sideImg.alt += " (" + kSideImages[gSideIndex].attrib + ")";
  }
  // end PreviousSideImage
}

function ShowSideImageNav()
{
  var sideImgNav = document.getElementById("side-photo-navigation");
  sideImgNav.style.visibility = "visible";
}
function HideSideImageNav()
{
  var sideImgNav = document.getElementById("side-photo-navigation");
  sideImgNav.style.visibility = "hidden";
}


//----------------------------------------------------------------------
//----------------------------------------------------------------------
//-- Modified from http://www.quirksmode.org/js/cookies.html

function createCookie(name,value,hours)
{
	if (hours) {
		var date = new Date();
		date.setTime(date.getTime()+(hours*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

//----------------------------------------------------------------------
//----------------------------------------------------------------------
function EventToggle(divID, symID)
{
  var div = document.getElementById(divID);
  var sym = document.getElementById(symID);
  if (div.style.display == 'none') {
    div.style.display = 'block';
    div.style.width= "658px";
    sym.innerHTML = "&#x25B2;";
  } else {
    div.style.display = 'none';
    sym.innerHTML = "&#x25BC;";
  }

// end EventToggle
}

