var gOnload = []; 

function utAddOnload(func, param) 

{ 
	var item = {'func': func};
	
	if (xDef(param))
		item.param = param;
		
	gOnload.push(item);
	window.onload = utOnload;
}

function utOnload()

{
	var index;
	
	for (index = 0; index < gOnload.length; index++) {
		gOnload[index].func(gOnload[index].param);
	}	
}


function utSlideCornerTo(e, corner, targetX, targetY, totalTime)
{
  if (!(e=xGetElementById(e))) return;
  if (!e.timeout) e.timeout = 25;
  e.xT = targetX;
  e.yT = targetY;
  e.slideTime = totalTime;
  e.corner = corner.toLowerCase();
  e.stop = false;
  switch(e.corner) {
    case 'nw': e.xA = e.xT - xLeft(e); e.yA = e.yT - xTop(e); e.xD = xLeft(e); e.yD = xTop(e); break;
    case 'sw': e.xA = e.xT - xLeft(e); e.yA = e.yT - (xTop(e) + xHeight(e)); e.xD = xLeft(e); e.yD = xTop(e) + xHeight(e); break;
    case 'ne': e.xA = e.xT - (xLeft(e) + xWidth(e)); e.yA = e.yT - xTop(e); e.xD = xLeft(e) + xWidth(e); e.yD = xTop(e); break;
    case 'se': e.xA = e.xT - (xLeft(e) + xWidth(e)); e.yA = e.yT - (xTop(e) + xHeight(e)); e.xD = xLeft(e) + xWidth(e); e.yD = xTop(e) + xHeight(e); break;
    default: alert("utSlideCornerTo: Invalid corner"); return;
  }
  e.B = Math.PI / ( 2 * e.slideTime );
  var d = new Date();
  e.C = d.getTime();
  if (!e.moving) _utSlideCornerTo(e);
}

function _utSlideCornerTo(e)
{
  if (!(e=xGetElementById(e))) return;
  var now, seX, seY;
  now = new Date();
  t = now.getTime() - e.C;
  if (e.stop) { e.moving = false; e.stop = false; if (typeof(e.onSlideComplete) == 'string') { eval(e.onSlideComplete);   } return; }
  else if (t < e.slideTime) {
    e.slideTimeout = setTimeout("_utSlideCornerTo('"+e.id+"')", e.timeout);
    s = Math.sin( e.B * t );
    newX = Math.round(e.xA * s + e.xD);
    newY = Math.round(e.yA * s + e.yD);
  }
  else { newX = e.xT; newY = e.yT; }  
  seX = xLeft(e) + xWidth(e);
  seY = xTop(e) + xHeight(e);
  switch(e.corner) {
    case 'nw': xMoveTo(e, newX, newY); xResizeTo(e, seX - xLeft(e), seY - xTop(e)); break;
    case 'sw': if (e.xT != xLeft(e)) { xLeft(e, newX); xWidth(e, seX - xLeft(e)); } xHeight(e, newY - xTop(e)); break;
    case 'ne': xWidth(e, newX - xLeft(e)); if (e.yT != xTop(e)) { xTop(e, newY); xHeight(e, seY - xTop(e)); } break;
    case 'se': xWidth(e, newX - xLeft(e)); xHeight(e, newY - xTop(e)); break;
    default: e.stop = true;
  }
  e.moving = true;
  if (t >= e.slideTime) {
    e.moving = false;
    if (typeof(e.onSlideComplete) == 'string') { eval(e.onSlideComplete);   }
  }
}


function Slideshow(id, s) {
	this.id = id;
	this.s = s;
	this.items = [ ];
}

Slideshow.prototype = {
	Add: function(id, rev, type, alt) {
		var item = { id: id, rev: rev, type: type, alt: alt, img: new Image() };
	
		item.img.src = '/library/rev'+rev+'/images/main/'+id+'.'+type;
		this.items.push(item);
	},
	
	Swap: function() {
		var item = this.items[Math.floor(Math.random()*this.items.length)];
		this.img = this.img || xGetElementById('SlideShow'+this.id);
		
		if (!this.img) return;
		
		this.img.src = item.img.src;
		this.img.alt = item.alt;
	},
	
	Start: function() {
		var item = this.items[Math.floor(Math.random()*this.items.length)];
		var oThis = this;
		
		document.write('<img id="SlideShow'+this.id+'" src=\"'+item.img.src+'" border="0" alt="'+item.alt+'" />');
		
		setInterval(function() { oThis.Swap(); }, this.s*1000 );
	}
}