ev = {
	'delay': 5000,

	'anim_delay': 10,

	'anim_steps': 20,

	'm_init': 0,

	'p': 1,


	't': null,
	'anim_t': null,
	'n_anim': 0,
	'p_init': 0,
	'list': document.createElement('div'),

	'mklist': function(e)
	{
		var l = '';
		l += '<em>'+e.title+'</em> ';
		if (e.desc.length) { l += e.desc+' '; }
		l += '<a href="news_events/events.php#'+e.id+'">read more</a>';

		return l;
	},

	'mkbutton': function(t,i,c)
	{
		b = document.createElement('a');
		b.innerHTML = t;
		b.href = '#';
		b.onclick = c;
		b.style.background = 'url(\''+i+'\') top center no-repeat';
		b.className = 'button';
		b.id = 'ev_'+t;

		ev.box.parentNode.insertBefore(b,ev.box.parentNode.getElementsByTagName('h2')[0]);

		return b;
	},

	'init': function(a,o)
	{
		for (e in a)
		{
			var t = document.createElement('p');
			t.innerHTML = ev.mklist(a[e]);

			ev.list.appendChild(t);
		}

		ev.box = document.getElementById(o);

		if (!ev.box) { alert(o+' does not exist.'); return false; }

		ev.play_button = ev.mkbutton('Pause','components/play.gif',ev.pause);
		ev.prev_button = ev.mkbutton('Prev','components/prev.gif',ev.prev);
		ev.next_button = ev.mkbutton('Next','components/next.gif',ev.next);

		ev.box.innerHTML = '';
		ev.box.appendChild(ev.list);

		if (ev.list.offsetHeight > ev.box.offsetHeight)
		{
			ev.t = setTimeout('ev.next()',ev.delay);
		}
	},

	'toggle_buttons': function(s)
	{
		ev.next_button.style.backgroundPosition = (s)? 'top': 'bottom';
		ev.prev_button.style.backgroundPosition = (s)? 'top': 'bottom';
	},

	'pop_anim': function(m,d)
	{
		var o = ev.list.firstChild;

		if ((d > 0 && m == ev.m_init) || (d < 0 && m == ev.p_init))
		{
			if (ev.n_anim > 0) { return; }

			ev.n_anim++;
			o.anim_step = o.offsetHeight/ev.anim_steps;
			o.anim_target = (d > 0) ? -o.offsetHeight : ev.m_init;

			ev.toggle_buttons(0);
		}

		if (Math.abs(m - o.anim_target) > Math.abs(o.anim_step))
		{
			o.style.marginTop = m+'px';

			ev.anim_t = setTimeout('ev.pop_anim('+(m-(d*o.anim_step))+','+d+')',ev.anim_delay);
		}
		else
		{
			o.style.marginTop = o.anim_target+'px';

			if (d > 0)
			{
				ev.list.removeChild(o);
			}
			else
			{
				ev.list.removeChild(ev.list.lastChild);
			}

			ev.n_anim--;

			ev.toggle_buttons(1);

			if (ev.p) { ev.t = setTimeout('ev.next()',ev.delay); }
		}
	},

	'next': function()
	{
		if (ev.n_anim != 0) { return false; }

		if (ev.t) { clearTimeout(ev.t); }

		var last = ev.list.firstChild.cloneNode(true);

		ev.list.appendChild(last);

		ev.pop_anim(ev.m_init,1);

		return false;
	},

	'prev': function()
	{
		ev.pause();
		if (ev.n_anim != 0) { return false; }

		if (ev.t) { clearTimeout(ev.t); }

		var first = ev.list.lastChild.cloneNode(true);

		ev.p_init = -ev.list.lastChild.offsetHeight;
		first.style.marginTop = ev.p_init+'px';

		ev.list.insertBefore(first,ev.list.firstChild);

		ev.pop_anim(-ev.list.lastChild.offsetHeight,-1);

		return false;
	},

	'play': function()
	{
		ev.p = 1;
		ev.next();
		ev.play_button.innerHTML = 'Pause';
		ev.play_button.style.backgroundPosition = 'top';
		ev.play_button.onclick = ev.pause;

		return false;
	},

	'pause': function()
	{
		ev.p = 0;
		clearTimeout(ev.t);
		ev.t = null;
		ev.play_button.innerHTML = 'Play';
		ev.play_button.style.backgroundPosition = 'bottom';
		ev.play_button.onclick = ev.play;

		return false;
	}
}

ev.init(events,'event_list');
