SLIDELEFT = function(overlay, dur)
{
	var Easing = YAHOO.util.Easing;
	var Dom = YAHOO.util.Dom;
	var x = overlay.cfg.getProperty("x") || Dom.getX(overlay.element);
	var y = overlay.cfg.getProperty("y") || Dom.getY(overlay.element);

	var	clientWidth = Dom.getClientWidth(),
		offsetWidth = overlay.element.offsetWidth,

		sin =  { 
			attributes: { points: { to: [x, y] } },
			duration: dur,
			method: Easing.easeIn 
		},

		sout = {
			attributes: { points: { to: [((-25) - offsetWidth), y] } },
			duration: dur,
			method: Easing.easeOut 
		};

    var slide = new YAHOO.widget.ContainerEffect(overlay, sin, sout, overlay.element, YAHOO.util.Motion);

	slide.handleStartAnimateIn = function (type,args,obj) {
		obj.overlay.element.style.left = ((-25) - offsetWidth) + "px";
		obj.overlay.element.style.top  = "0px";
	};

	slide.handleTweenAnimateIn = function (type, args, obj)
	{
		var pos = Dom.getXY(obj.overlay.element),
			currentX = pos[0],
			currentY = pos[1];
	
		if (Dom.getStyle(obj.overlay.element, "visibility") == 
			"hidden" && currentX < x) {

			Dom.setStyle(obj.overlay.element, "visibility", "visible");

		}
	
		obj.overlay.cfg.setProperty("xy", [currentX, currentY], true);
		obj.overlay.cfg.refireEvent("iframe");
	};
	
	slide.handleCompleteAnimateIn = function (type, args, obj)
	{
		obj.overlay.cfg.setProperty("xy", [x, y], true);
		obj.startX = x;
		obj.startY = y;
		obj.overlay.cfg.refireEvent("iframe");
		obj.animateInCompleteEvent.fire();
	};

	slide.handleStartAnimateOut = function (type, args, obj)
	{
		var vw = Dom.getViewportWidth(),
			pos = Dom.getXY(obj.overlay.element),
			yso = pos[1];

		obj.animOut.attributes.points.to = [(vw + 25), yso];
	};
	
	slide.handleTweenAnimateOut = function (type, args, obj)
	{
		var pos = Dom.getXY(obj.overlay.element),
			xto = pos[0],
			yto = pos[1];
	
		obj.overlay.cfg.setProperty("xy", [xto, yto], true);
		obj.overlay.cfg.refireEvent("iframe");
	};
	
	slide.handleCompleteAnimateOut = function (type, args, obj)
	{
		Dom.setStyle(obj.overlay.element, "visibility", "hidden");
	
		obj.overlay.cfg.setProperty("xy", [x, y]);
		obj.animateOutCompleteEvent.fire();
	};
	
	slide.init();
	return slide;
};

SLIDERIGHT = function(overlay, dur)
{
	var Easing = YAHOO.util.Easing;
	var Dom = YAHOO.util.Dom;
	var x = overlay.cfg.getProperty("x") || Dom.getX(overlay.element);
	var y = overlay.cfg.getProperty("y") || Dom.getY(overlay.element);

	var	clientWidth = Dom.getClientWidth(),
		offsetWidth = overlay.element.offsetWidth,

		sin =  { 
			attributes: { points: { to: [x, y] } },
			duration: dur,
			method: Easing.easeIn 
		},

		sout = {
			attributes: { points: { to: [(clientWidth + 25), y] } },
			duration: dur,
			method: Easing.easeOut 
		};
   
    var slide = new YAHOO.widget.ContainerEffect(overlay, sin, sout, overlay.element, YAHOO.util.Motion);

	slide.handleStartAnimateIn = function (type,args,obj) {
		obj.overlay.element.style.left = ((-25) - offsetWidth) + "px";
		obj.overlay.element.style.top  = "0px";
	};

	slide.handleTweenAnimateIn = function (type, args, obj)
	{
		var pos = Dom.getXY(obj.overlay.element),
			currentX = pos[0],
			currentY = pos[1];
	
		if (Dom.getStyle(obj.overlay.element, "visibility") == 
			"hidden" && currentX < x) {

			Dom.setStyle(obj.overlay.element, "visibility", "visible");

		}
	
		obj.overlay.cfg.setProperty("xy", [currentX, currentY], true);
		obj.overlay.cfg.refireEvent("iframe");
	};
	
	slide.handleCompleteAnimateIn = function (type, args, obj)
	{
		obj.overlay.cfg.setProperty("xy", [x, y], true);
		obj.startX = x;
		obj.startY = y;
		obj.overlay.cfg.refireEvent("iframe");
		obj.animateInCompleteEvent.fire();
	};

	slide.handleStartAnimateOut = function (type, args, obj)
	{
		var vw = Dom.getViewportWidth(),
			pos = Dom.getXY(obj.overlay.element),
			yso = pos[1];

		obj.animOut.attributes.points.to = [(vw + 25), yso];
	};
	
	slide.handleTweenAnimateOut = function (type, args, obj)
	{
		var pos = Dom.getXY(obj.overlay.element),
			xto = pos[0],
			yto = pos[1];
	
		obj.overlay.cfg.setProperty("xy", [xto, yto], true);
		obj.overlay.cfg.refireEvent("iframe");
	};
	
	slide.handleCompleteAnimateOut = function (type, args, obj)
	{
		Dom.setStyle(obj.overlay.element, "visibility", "hidden");
	
		obj.overlay.cfg.setProperty("xy", [x, y]);
		obj.animateOutCompleteEvent.fire();
	};
	
	slide.init();
	return slide;
};


YAHOO.util.Event.onDOMReady(function() {
	setInterval(ChangeTestimonial, 10000); // 10 seconds
});

// Choose and display a testimonial.
function ChangeTestimonial()
{
	// Hide the existing testimonial.
	testimonial_cites['left'].hide();
	testimonial_cites['right'].hide();
	testimonial_quotes[current_testimonial].hide();
	testimonial_imgs[current_testimonial].hide();
	
	// Set the quote to reappear after the image reappears.
	setTimeout(ShowQuote, 350);
	setTimeout(ShowCite, 350); // needs to be long enough (or alternating left/right) so there is no overlap of the fade out & in
	
	// Increment to the next testimonial.
	current_testimonial = (current_testimonial + 1) % testimonials.length;
	
	// Display the new image.
	testimonial_imgs[current_testimonial].show();
}

function ShowQuote()
{
	// Redisplay the quotes.
	testimonial_quotes[current_testimonial].show();
}

function ShowCite()
{	
	// Replace the quote with the correct info.
	// Position the basketball on the correct side.
	if (testimonials[current_testimonial].quoteside == 'left')
	{
		document.getElementById('testimonial-left-name').innerHTML = testimonials[current_testimonial].fullname;
		document.getElementById('testimonial-left-location').innerHTML = testimonials[current_testimonial].location;
		document.getElementById('testimonial-left-bio').innerHTML = testimonials[current_testimonial].bio;
		testimonial_cites['left'].show();
	}
	else
	{
		document.getElementById('testimonial-right-name').innerHTML = testimonials[current_testimonial].fullname;
		document.getElementById('testimonial-right-location').innerHTML = testimonials[current_testimonial].location;
		document.getElementById('testimonial-right-bio').innerHTML = testimonials[current_testimonial].bio;
		testimonial_cites['right'].show();
	}
}
