function prepareSlideshow(target, numShows){
	var speed = 30;
	var slide = 1;
	var distance = 528;//DISTANCE MOVED BY EACH SLIDE
	//var butPrev = document.getElementById('but-previous');
	//var butNext = document.getElementById('but-next');
	var container = document.getElementById(target);
			//get previous and next links inside a DIV with class name of 'web-nav'
	var prevNnext = function() {
				links = container.nextSibling;
				var alinks = links.getElementsByTagName('a');
				var prevNnextLinks = new Array();
				for(var i = 0; i < alinks.length; i++){
					if(alinks[i].className.indexOf('mod-pg') != -1){
						prevNnextLinks.push(alinks[i]);
					}	
				}
				return prevNnextLinks; //return an array of links (2)
			}();
	var preview = container.getElementsByTagName('ul')[0];
	//var preview = document.getElementById('preview');
	var numSlide = (preview.getElementsByTagName('li').length)/numShows;
	numSlide = Math.ceil(numSlide);
	preview.style.width = numSlide*(distance+12) + 'px';
	preview.style.position = 'absolute';
	preview.style.top = '0px';
	preview.style.left = '0px';
	
	//SET WITH OF PAGINATIONS DEPENDING ON THE NUMBER OF SLIDES
	links.style.width = (15*numSlide - numSlide) + 'px';
	
	//INITIATE TOP SLIDE LINKS
	if(numSlide == 1) {
		prevNnext[1].className += ' inactive';
		}
	for(var i=1; i <= numSlide; i++){
		var linksContainer = links.getElementsByTagName('div')[0];
		var slideLinks = document.createElement('a');
		slideLinks.setAttribute('href','?'+i);
		slideLinks.setAttribute('class','mod-pg-num');
		var slideText = document.createTextNode(i);
		slideLinks.appendChild(slideText);
		linksContainer.appendChild(slideLinks);
		var getAllLinks = linksContainer.getElementsByTagName('a');
		linksContainer.style.width = getAllLinks.length * 16 + 'px';
		slideLinks.onclick = function(){
			clearClass(getAllLinks, true);//clear all selected classes
			addClass(this,'selected');
			moveElement(preview, (this.firstChild.nodeValue-1)*-distance, 0, speed); //POSITION STARTS AT 0
			slide = this.firstChild.nodeValue; //UPDATED slide TO CURRENT
			//reset inactive buttons
			if(slide > 1) {
				prevNnext[0].className = "mod-pg-prev";//reset inactive previous button
				}
			if(slide == 1) {
				prevNnext[0].className += " inactive";//reset inactive previous button
				}
			if(slide < numSlide) {
				prevNnext[1].className = "mod-pg-next";
				}
			if(slide == numSlide) {
				prevNnext[1].className += " inactive";//reset inactive previous button
				}
			return false;
			}
		}
	
	addClass(getAllLinks[0],'selected');
	//INITIATE PREV/NEXT BUTTONS **REQUIRED IF NEED TO CUT OFF MOVEMENT
 prevNnext[0].onclick = function(){
		//slide IS ALWAYS 1 AHEAD BECAUSE 1 IS SUBTRACTED AT THE END
	 prevNnext[1].className = "mod-pg-next"; //reset inactive next button
		if(slide>1 && slide <= numSlide){
			moveElement(preview, (slide*(-distance) + 2*distance), 0, speed);
			preview.setAttribute('alt',this.title);
			clearClass(getAllLinks, true);
			if(slide == 2){
				addClass(getAllLinks[0],'selected');
				}
			if(slide > 2){
			 addClass(getAllLinks[slide-2],'selected');
			 }
			slide--;
			if(slide == 1) {
				this.className = this.className + ' inactive';
				}			
			return false;
	 }	
		return false;
		}
	 prevNnext[1].onclick = function(){
		//slide IS ALWAYS 1 BEHIND BECAUSE IT IS ADDED ONLY AT THE END OF FUNCTION
		if(numSlide > 1) {
		 prevNnext[0].className = "mod-pg-prev"; //reset inactive previous button
		}
		if(slide>=1 && slide < numSlide){
			//opacity('preview',0, 100, 750);
			moveElement(preview, slide*(-distance), 0, speed);
			preview.setAttribute('alt',this.title);	
			clearClass(getAllLinks, true);		
			if(slide < numSlide){
				addClass(getAllLinks[slide],'selected');
				}
			slide++;
			if(slide == numSlide) {
				this.className += ' inactive';
				}
			return false;
		}
		return false;
	}
}

function clearClass(clearwhat, clearall){
	clearwhat.className = '';
	if(clearall == true){
		for(var num=0; num<clearwhat.length; num++){
			clearwhat[num].className ='';
			}		
		}
	}
	
function addClass(addwhere, newclass){
	addwhere.className = newclass;
	}

function moveElement(element, final_x, final_y, interval){
	var speed = 10;
	//var elem = elementID;
	if(element.movement){
		clearTimeout(element.movement);
		}
	var xpos = parseInt(element.style.left);
	var ypos = parseInt(element.style.top);
	if(xpos == final_x && ypos == final_y){
		return true;
		}
	if(xpos < final_x){
		var dist = Math.ceil((final_x - xpos)/speed);
		xpos = xpos + dist;
		}
	if(xpos > final_x){
		var dist = Math.ceil((xpos - final_x)/speed);
		xpos = xpos - dist;
		}
	if(ypos < final_y){
		var dist = Math.ceil((final_y - ypos)/speed);
		ypos = ypos + dist;
		}
	if(ypos>final_y){
		var dist = Math.ceil((ypos - final_y)/speed);
		ypos = ypos - dist;
		}
	element.style.left = xpos + "px";
	element.style.top = ypos + "px";
	var repeat = function() {
		moveElement(element,final_x,final_y,interval);
	 }
	element.movement = setTimeout(repeat, interval);
	}

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){
		 window.onload = func;
		}
	else{
		 window.onload = function(){
				 oldonload();
					func();
				}
		}
	}

function loadCarousel() {
	var carousel1 = new prepareSlideshow('mod-slideshow-up', 4);
	var carousel2 = new prepareSlideshow('mod-slideshow-upcoming', 4);
	}
addLoadEvent(loadCarousel);