var slideshow = {
	current:0,
	createList:function()
	{
		var elDiv=document.createElement('div'), elP=document.createElement('p'), elImg=document.createElement('img'), elSpan=document.createElement('span'), elA=document.createElement('a'), elDiv2=document.createElement('div'), elU=document.createElement('ul');
		var list = [
			{src:'images/slideshow/slideshow_f01.jpg', alt:'Frame 1'},
			{src:'images/slideshow/slideshow_f02.jpg', alt:'Frame 2'},
			{src:'images/slideshow/slideshow_f03.jpg', alt:'Frame 3'},
			{src:'images/slideshow/slideshow_f04.jpg', alt:'Frame 4'},
			{src:'images/slideshow/slideshow_f05.jpg', alt:'Frame 5'},
			{src:'images/slideshow/slideshow_f06.jpg', alt:'Frame 6'},
			{src:'images/slideshow/slideshow_f07.jpg', alt:'Frame 7'},
			{src:'images/slideshow/slideshow_f08.jpg', alt:'Frame 8'},
			{src:'images/slideshow/slideshow_f09.jpg', alt:'Frame 9'},
			{src:'images/slideshow/slideshow_f10.jpg', alt:'Frame 10'},
			{src:'images/slideshow/slideshow_f11.jpg', alt:'Frame 11'},
			{src:'images/slideshow/slideshow_f12.jpg', alt:'Frame 12'},
			{src:'images/slideshow/slideshow_f13.jpg', alt:'Frame 13'},
			{src:'images/slideshow/slideshow_f14.jpg', alt:'Frame 14'},
			{src:'images/slideshow/slideshow_f15.jpg', alt:'Frame 15'}
		];
		elDiv.id = 'slideshow';
		elImg.src='images/logo_rdc_leaf.gif';
			elImg.alt='RDC Logo surrounded by two leaf branches';
		elA.id = 'play-slideshow';
			elA.href='#play-slideshow';
			elA.appendChild(document.createTextNode('Play Slideshow'));
		elSpan.appendChild(document.createTextNode('[ '));
			elSpan.appendChild(elA);
			elSpan.appendChild(document.createTextNode(' ]'));
		elP.id = 'pre-wrap';
			elP.appendChild(elImg);
			elP.appendChild(elSpan);
		elDiv.appendChild(elP);
		elU.id = 'slides';
		for(var c=0; c<list.length-1; c++)
		{
			var tmpLi = document.createElement('li');
			var tmp = document.createElement('img');
				tmp.src = list[c].src;
				tmp.alt = list[c].alt;
			tmpLi.appendChild(tmp);
			elU.appendChild(tmpLi);
		}
		elDiv2.appendChild(elU);
		elDiv.appendChild(elDiv2);
		document.getElementById('main-content').appendChild(elDiv);
	},
	init:function()
	{
		if(document.getElementById)
		{
			slideshow.createList();
			
			var getList = document.getElementById('slides');
			if(getList)
			{
				slideshow.items = getList.getElementsByTagName('li');
				slideshow.all = slideshow.items.length;
				if(slideshow.all > 1)
					slideshow.addClass(getList, 'js');
			}
			show = document.getElementById('play-slideshow');
			slideshow.addEvent(show, 'click', slideshow.start);
		}
	},
	start:function() 
	{
		if(slideshow.next && slideshow.prev) 
		{
		    document.getElementById('slideshow-wrapper').style.display='block';
		} 
		else 
		{
			document.getElementById('slides').parentNode.id = 'slideshow-wrapper';
		    slideshow.createNav(document.getElementById('slides'));
		}
		slideshow.show();
	},
	exit:function() 
	{
		document.getElementById('slideshow-wrapper').style.display='none';
	},
	createNav:function(o)
	{
		var p = document.createElement('p');
		slideshow.addClass(p, 'slidenav');
		slideshow.prev = document.createElement('a');
		slideshow.prev.href = '#';
		var templabel = document.createElement('img');
		templabel.src = 'images/icons/previous.png';
		templabel.alt = '< Previous';
		templabel.border = '0';
		slideshow.prev.appendChild(templabel);
		slideshow.addEvent(slideshow.prev, 'click', slideshow.show);		
		p.appendChild(slideshow.prev);
		slideshow.count = document.createElement('span');
		templabel = document.createTextNode( (slideshow.current+1) + ' of ' + slideshow.all);
		slideshow.count.appendChild(templabel);
		p.appendChild(slideshow.count);
		slideshow.next = document.createElement('a');
		slideshow.next.href = '#';
		var templabel = document.createElement('img');
		templabel.src = 'images/icons/next.png';
		templabel.alt = 'Next >';
		templabel.border = '0';
		slideshow.next.appendChild(templabel);
		slideshow.addEvent(slideshow.next, 'click', slideshow.show);		
		p.appendChild(slideshow.next);
		slideshow.closeshow = document.createElement('a');
		slideshow.closeshow.href = '#play-slideshow';
		slideshow.closeshow.id = 'close-show';
		var templabel = document.createElement('img');
		templabel.src = 'images/icons/close.png';
		templabel.alt = 'Close';
		templabel.border = '0';
		slideshow.closeshow.appendChild(templabel);
		slideshow.addEvent(slideshow.closeshow, 'click', slideshow.exit);
		p.appendChild(slideshow.closeshow);
		o.parentNode.insertBefore(p, o);
		var overlay = document.createElement('p');
		overlay.id = 'slideshow-overlay';
		p.parentNode.insertBefore(overlay,p);
	},
	show:function(e)
	{
		if(this === slideshow.next || this === slideshow.prev)
		{
			slideshow.removeClass(slideshow.items[slideshow.current], 'current');
			var addto = this === slideshow.next ? 1 : -1;
			slideshow.current = slideshow.current + addto;
			
			if(slideshow.current < 0)
				slideshow.current = (slideshow.all-1);
			
			if(slideshow.current > slideshow.all-1)
				slideshow.current = 0;
		}
		var templabel = document.createTextNode( (slideshow.current+1) + ' of ' + slideshow.all);
		slideshow.count.replaceChild(templabel, slideshow.count.firstChild);
		slideshow.addClass(slideshow.items[slideshow.current], 'current');
		slideshow.cancelClick(e);
	},
	/* helper methods */
	addEvent:function( obj, type, fn ) 
	{
		if ( obj.attachEvent ) 
		{
			obj['e'+type+fn] = fn;
			obj[type+fn] = function()
			{
				obj['e'+type+fn]( window.event );
			}
			obj.attachEvent('on'+type, obj[type+fn]);
		} 
		else
			obj.addEventListener( type, fn, false );
	},
	removeClass:function(o,c)
	{
		var rep = o.className.match(' '+c) ? ' '+c : c;
		o.className = o.className.replace(rep,'');
	},
	addClass:function(o,c){
		var test = new RegExp("(^|\\s)" + c + "(\\s|$)").test(o.className);
		if(!test)
			o.className += o.className ? ' '+c : c;
	},
	cancelClick:function(e){
		if (window.event)
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		if (e && e.stopPropagation && e.preventDefault)
		{
			e.stopPropagation();
			e.preventDefault();
		}
	}
}
slideshow.addEvent(window,'load',slideshow.init);
