function addEvent(elm, evType, fn, useCapture) {
  // cross-browser event handling for IE5+, NS6 and Mozilla 
  // By Scott Andrew 
  if (elm.addEventListener) { 
    elm.addEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.attachEvent) { 
    var r = elm.attachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = fn;
  }
}

// Here's the smart link code

function handleLink(e) {
  var el;
  if (window.event && window.event.srcElement)
    el = window.event.srcElement;
  if (e && e.target)
    el = e.target;
  if (!el)
    return;

  while (el.nodeName.toLowerCase() != 'a' &&
      el.nodeName.toLowerCase() != 'body')
    el = el.parentNode;
  if (el.nodeName.toLowerCase() == 'body')
    return;

  if (document.getElementById('mainImg')) {
    document.getElementById('mainImg').src = el.href;
	document.getElementById('mainCaption').innerHTML = el.title;
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.stopPropagation && e.preventDefault) {
      e.stopPropagation();
      e.preventDefault();
    }
  }
}

function cancelClick() {
    return false;
}

// here's the bit that installs the listeners

function addListeners() {
  if (!document.getElementById)
    return;

  var thumb_links = document.getElementById('thumbnails').getElementsByTagName('a');

  for (var i = 0; i < thumb_links.length; i++) {
    addEvent(thumb_links[i], 'click', handleLink, false);
    thumb_links[i].onclick = cancelClick;
	if (thumb_links[i].href == document.getElementById('mainImg').src) {
		document.getElementById('mainCaption').innerHTML = thumb_links[i].title;
	}
  }
}

addEvent(window, 'load', addListeners, false);

// JavaScript Document