﻿

slideshow = {
	current:0,
	init:function(){
		if(document.getElementById && document.createTextNode){
			var list = document.getElementById('slideshow');
			if(list){
				slideshow.items = list.getElementsByTagName('li');
				slideshow.all = slideshow.items.length;
				if(slideshow.all > 1){
					slideshow.addClass(list, 'js');
					slideshow.createNav(list);
				}
			}
		}
		slideshow.show();
	},
	createNav:function(o){
		var p = document.createElement('p');
		slideshow.addClass(p, 'slidenav');
		slideshow.prev = document.createElement('a');
		slideshow.prev.setAttribute('href', '#');
		var templabel = document.createTextNode('<<');
		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) + ' / ' + slideshow.all);
		slideshow.count.appendChild(templabel);
		p.appendChild(slideshow.count);
		slideshow.next = document.createElement('a');
		slideshow.next.setAttribute('href', '#');
		var templabel = document.createTextNode('>>');
		slideshow.next.appendChild(templabel);
		slideshow.addEvent(slideshow.next, 'click', slideshow.show);		
		p.appendChild(slideshow.next);
		o.parentNode.insertBefore(p, o);
	},
	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) + ' / ' + 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);
