// slidebar into slideshow.js
if(typeof(AC)=="undefined"){AC={};}

AC.SliderBar={
imageSlider:null,
sliderVal:0,
animationId:false,
viewportWidth:946,
contentWidth:946,
categories:[
{id:'startslide',offset:0},
{id:'endslide',offset:1.00}
],
arrowScrollAmount:0.24,
isSliding:false,
lastX:0.32,
isMouseDown:false,
dif:0,
overlap:0,
offsetImageWidth:127,
sliderOffset:291,
offsetContentWidth:-946,
clicked:false,
startIndex:0,
init:function(setupArgs)
	{
		if(typeof(setupArgs.categories)!='undefined')this.categories=setupArgs.categories;
		if(typeof(setupArgs.imageOverlap)!='undefined')this.overlap=setupArgs.imageOverlap;
		if(typeof(setupArgs.sliderCentering)!='undefined')this.sliderOffset=setupArgs.sliderCentering;
		if(typeof(setupArgs.initialCategory)!='undefined')this.startIndex=setupArgs.initialCategory;
		if(typeof(setupArgs.arrowScrollAmount)!='undefined')this.arrowScrollAmount=setupArgs.arrowScrollAmount;
		$('slidestagetrack').style.visibility="visible";
		$('slidercontainer').style.overflow="hidden";
		this.viewportWidth=$('slidercontainer').getWidth();
		this.offsetImageWidth=$$('#slidestage .slideimage')[0].getWidth()-this.overlap;
		this.contentWidth=this.offsetImageWidth*$$('#slidestage .slideimage').length;
		this.offsetContentWidth=-1*(this.contentWidth-this.viewportWidth);
		this.imageSlider=new Control.Slider('slidestagehandle','slidestagetrack',{axis:'horizontal'});
AC.SliderBar.animateSlide(this.categories[this.startIndex].offset);

this.imageSlider.options.onChange=function(value)
	{
		$('slidestagehandleimage').style.left=$('slidestagehandle').style.left;
		if(AC.SliderBar.isThrow&&!AC.SliderBar.isSliding)
			{
				AC.SliderBar.isSliding=true;
				AC.SliderBar.isThrow=false;
				var mod=value+AC.SliderBar.throwMod;
				if(mod<0)mod=0;
				if(mod>1)mod=1;
				AC.SliderBar.animateSlide(mod);
			}else if(!AC.SliderBar.isSliding&&value)
				{
					AC.SliderBar.isSliding=true;
					AC.SliderBar.animateSlide(value);
				}
	};

this.imageSlider.options.onSlide=function(value)
	{
		$('slidestagehandleimage').style.left=$('slidestagehandle').style.left;
		if(value&&!AC.SliderBar.isSliding)
			{
				AC.SliderBar.isSliding=true;
				AC.SliderBar.isThrow=false;
		if(AC.SliderBar.isMouseDown)
			{
				AC.SliderBar.dif=value-AC.SliderBar.lastX;
				AC.SliderBar.lastX=value;
		if(AC.SliderBar.dif>0.05)
			{
				AC.SliderBar.isThrow=true;
				AC.SliderBar.throwMod=0.2;
			} else
		if(AC.SliderBar.dif<-0.04)
			{
				AC.SliderBar.isThrow=true;
				AC.SliderBar.throwMod=-0.2;
			}
	}

var w=AC.SliderBar.offsetContentWidth;
$('slidestage').style.left=w*value+"px";
this.sliderVal=value;
AC.SliderBar.lastX=value;
AC.SliderBar.colorCats();
AC.SliderBar.isSliding=false;
}


Element.setStyle($('slidercontainer'),{overflow:"hidden"});};
Event.observe('slidestagetrack','mousedown',function(e){var o=e.offsetX||e.layerX;
if(Event.element(e).id=='slidestagetrack'&&o<100)AC.SliderBar.animateSlide(0);});
Event.observe('leftarrow','mousedown',function(){AC.SliderBar.left();});
Event.observe('rightarrow','mousedown',function(){AC.SliderBar.right();});
Event.observe('slidestagehandle','mousedown',function(){AC.SliderBar.isMouseDown=true;
$('slidestagehandle').style.zIndex="5";});
Event.observe('slidestagehandle','mouseup',function(){AC.SliderBar.isMouseDown=false;});

AC.SliderBar.categories.each(function(c){Event.observe($(c.id),'mouseup',

function(e){AC.SliderBar.animateSlide(c.offset);});});},
animateSlide:function(toX)
	{
		if(toX>1)toX=1;
		if(toX<0)toX=0;
		AC.SliderBar.sliderVal=toX;
window.clearInterval(AC.SliderBar.animationId);
var w=AC.SliderBar.offsetContentWidth;
var stopPoint=w*toX;
var sliderStopPoint=(Math.round(AC.SliderBar.viewportWidth-AC.SliderBar.sliderOffset)*toX);

	

AC.SliderBar.isSliding=true;
AC.SliderBar.animationId=window.setInterval(function(){var sliderPos=parseInt($('slidestage').getStyle('left'))||0;
var handlePos=parseInt($('slidestagehandle').getStyle('left'))||0;
var x=AC.SliderBar.calculateDecel(sliderPos,stopPoint);
var sx=AC.SliderBar.calculateDecel(handlePos,sliderStopPoint);
$('slidestage').style.left=x+"px";
$('slidestagehandle').style.left=sx+"px";
$('slidestagehandleimage').style.left=sx+"px";
AC.SliderBar.colorCats();

if(x==stopPoint)
	{
		window.clearInterval(AC.SliderBar.animationId);
		AC.SliderBar.isSliding=false;
	}
},
30);},



colorCats:function()
	{
		var sliderX=parseInt($('slidestagehandle').getStyle('left'))+(($('slidestagehandle').getWidth()-20)/2);
		
		AC.SliderBar.categories.each(function(c)
			{
				var left=parseInt($(c.id).getStyle('left'))
				var clr=Math.ceil((Math.min(sliderX,left)/Math.max(sliderX,left))*10);
				$(c.id).className='pb-catclass'+clr;
			});
	},

left:function()
{
	AC.SliderBar.animateSlide(AC.SliderBar.sliderVal-AC.SliderBar.arrowScrollAmount);
},

right:function()
{
	AC.SliderBar.animateSlide(AC.SliderBar.sliderVal+AC.SliderBar.arrowScrollAmount);
},

calculateDecel:function(from,to)
	{
		var n=from-Math.floor((from-to)*.4);
		if(Math.abs(from-to)<4)
			return to;
			else return n;
	}
};
// EO slidebar







//eventsmanager into slideshow.js
function addEvent(elem, evtType, func, capture) {
   capture = (capture) ? capture : false;
   if (elem.addEventListener) {
      elem.addEventListener(evtType, func, capture);
   } else if (elem.attachEvent) {
      elem.attachEvent("on" + evtType, func);
   } else {
      // for IE/Mac, NN4, and older
      elem["on" + evtType] = func;
   }
}

function removeEvent(elem, evtType, func, capture) {
   capture = (capture) ? capture : false;
   if (elem.removeEventListener) {
      elem.removeEventListener(evtType, func, capture);
   } else if (elem.attachEvent) {
      elem.detachEvent("on" + evtType, func);
   } else {
      // for IE/Mac, NN4, and older
      elem["on" + evtType] = null;
   }
}

function addOnLoadEvent(func) {
    if (window.addEventListener || window.attachEvent) {
        addEvent(window,"load", func, false);
    } else {
        var oldQueue = (window.onload) ? window.onload : function() {};
        window.onload = function() {
            oldQueue();
            func();
        }
    }
}
// EO Eventsmanager


// Array of all slides
var allSlides;

// Slide counter
var currSlide = 0;

// Set global with array of slide elements
function getAllSlides() {
    var allChildren = document.getElementById("slides").childNodes;
    var slideElems = new Array();
    for (var i = 0; i < allChildren.length; i++) {
        if (allChildren[i].nodeType == 1) {
             slideElems[slideElems.length] = allChildren[i];
        }
    }
    allSlides = slideElems;
	allSlides[currSlide].style.display = "block";
}

// Switch to new slide
function switchSlide(newSlide) {
	allSlides[currSlide].style.display = "none";
   	allSlides[newSlide].style.display = "block";
	allSlides[currSlide] = allSlides[newSlide];

} // need to find a way to get the one broken slide to work!!

// Advance to next slide
function nextSlide() {
    if (currSlide < 0) {
        allSlides[++currSlide].style.display = "block";
    } else if (currSlide < allSlides.length - 1) {
        allSlides[currSlide].style.display = "none";
        allSlides[++currSlide].style.display = "block";
    } else if (currSlide == allSlides.length - 1) {
        allSlides[currSlide++].style.display = "none";
    }
}

// Go to previous slide
function prevSlide() {
    if (currSlide > allSlides.length - 1) {
        allSlides[--currSlide].style.display = "block";
    } else if (currSlide > 0) {
        allSlides[currSlide].style.display = "none";
        allSlides[--currSlide].style.display = "block";
    } else if (currSlide == 0) {
        allSlides[currSlide--].style.display = "none";
    }
}

// Initialize slide show
addOnLoadEvent(function() {getAllSlides()});
