var photos=["senegal239.jpg","senegal231.jpg","senegal059.jpg","M050.jpg",
	    "M088.jpg","M098.jpg","P003.jpg","P020.jpg","senegal002.jpg",
	    "senegal375.jpg","senegal500.jpg"];

function rotate()
{
  var photo = photos.shift();
  $('photo').src = photo;
  photos.push(photo);
  setTimeout('rotate()',7000);
}

function $(x) { return document.getElementById(x); }

function $_(tag,attributes,html,appendTo,style)
{
  var elem = document.createElement(tag);
  if (attributes) {
    for (var att in attributes) {
      elem[att] = attributes[att];
    }
  }
  if (html) {
    elem.innerHTML = html;
  }
  if (style) {
    var stl = elem.style;
    for (var key in style) {
      stl[key] = style[key];
    }
  }
  if (appendTo) {
    appendTo.appendChild(elem);
  }
  return elem;
}

function addOnLoad(f)
{
  addEventHandler(window,'load',f);
}

// machine-independent analogues of addEventListener, stopPropagation,
// and preventDefault
if (document.addEventListener) { // DOM 2.0
  addEventHandler = function(element,event,handler) {
    element.addEventListener(event,handler,false);
  }
  cancelPropagation = function(event) {
    event.stopPropagation();
  }
  cancelDefault = function(event) {
    event.preventDefault();
  }
}
else if (document.attachEvent) { // IE
  addEventHandler = function(element,event,handler) {
    element.attachEvent('on'+event,handler);
  }
  cancelPropagation = function(event) {
    event = event || window.event;
    event.cancelBubble = true;
  }
  cancelDefault = function(event) {
    event = event || window.event;
    event.returnValue = false;
  }
}
else { // ancient DOM
  // adding events to browsers not supporting addEventListener or attachEvent
  var MyHandler = {
    all : [],

    add : function (element,event,handler)
    {
      for (var e = MyHandler.all.length-1;e >= 0;e--) {
	var eh = MyHandler.all[e];
	if (eh[0] == element) { // there were previous handlers for this element
	  var handlers = eh[1];
	  var hlist = handlers[event];
	  if (hlist) { // there are already handlers for this event and element
	    // check if this handler is already on the list
	    for (var j = hlist.length-1;j >= 0;j--) {
	      if (hlist[j] == handler) {
		return;
	      }
	    }
	    hlist.push(handler);
	    return;
	  }
	  // there are no handlers for this event and element added by MyHandler
	  hlist = element[event] ? [element[event],handler] : [handler];
	  handlers[event] = hlist;
	  element[event] = function(ev) {MyHandler.iterate(ev,hlist);};
	  return;
	}
      }
      var hlist = element[event] ? [element[event],handler] : [handler];
      MyHandler.all.push([element,{event:hlist}]);
      element[event] = function(ev) {MyHandler.iterate(ev,hlist);};
    },

    // the "onevent" function, applies all event handlers from the list attached to this element until one of them returns true
    iterate : function(event,hlist)
    {
      for (var i = 0;i < hlist.length;i++) {
	if (hlist[i](event)) return true;
      }
      return false;
    }
  }; // MyHandler
  addEventHandler = function(element,event,handler) {
    MyHandler.add(element,'on'+event,handler);
  }
  cancelPropagation = function() {}
  cancelDefault = function() {}
}

addOnLoad(rotate);
