var animate = false;
Math.easeOutCirc = function (t, b, c, d) {
	return c*t/d + b;
};

rotate = function(a, p){
	for(var l = a.length, p = (Math.abs(p) >= l && (p %= l), p < 0 && (p += l), p), i, x; p; p = (Math.ceil(l / p) - 1) * p - l + (l = p))
		for(i = l; i > p; x = a[--i], a[i] = a[i - p], a[i - p] = x);
	return a;
};

var ul = ge("mycarousel"), li = ul.getElementsByTagName("li");

var itens = [];
for(var i = 0, l = li.length; l--; i++)
	itens[i] = li[i].cloneNode(true);

ul.innerHTML = "";

var tempo = .4;
var w = 313;

for(var s, p = 0; p < 3; p++){
	s = itens[p].style;
	s.left = p * w + "px";
	if(p != 1){
		//s.filter = "alpha(opacity:25)";
		s.left = parseInt(s.left) + 45 + "px";
		itens[p].className += " corner";
		s.opacity = .25;
	}
	else{
		var img = itens[p].getElementsByTagName("img")[0];
		img.style.margin = "-50px auto";
		img.style.width = "287px";
		img.style.height = "81px";
	}
	ul.appendChild(itens[p]);
}

function next(){
	animate = true;
	var s = itens[0].style;
	s.left = -w + "px";
	//s.filter = "alpha(opacity:0)";
	s.opacity = 0;

	ul.insertBefore(itens[itens.length - 1].cloneNode(true), ul.getElementsByTagName("li")[0]);

	var a = ul.getElementsByTagName("li");

	a[0].className = "corner";
	a[0].style.opacity = 0; a[0].style.filter = "opacity(0)";
	(new Effect(25, a[0], Math.easeOutCirc)).init(
		function(o, c, e){
			var img = o.getElementsByTagName("img")[0], s = o.style;
			img.style.width = 197 + "px";
			img.style.height = 56 + "px";
			img.style.margin = "auto " + (35 * e) + "px";
			s.left = -w + (w * e) + "px";
			//s.filter = "alpha(opacity:" + Math.round(e * 25) + ")";
			s.opacity = e * .25;
		},
	"", 0, 1, tempo);

	var e = new Effect(25, a[1], Math.easeOutCirc);
	e.onEnd = function(o){
		var p = o.getElementsByTagName("p")[0];
		p.style.opacity = 0;
		a[1].className = "";
		(new Effect(25, p, Math.easeOutCirc)).init("opacity","", 0, 1, .2);
	}
	e.init(
		function(o, c, e){
			var img = o.getElementsByTagName("img")[0], s = o.style;
			img.style.width = 197 + ((287 - 197) * e) + "px";
			img.style.height = 56 + ((81 - 56) * e) + "px";
			img.style.margin = (-45 * e) + "px auto";

			s.left = w * e + "px";
			//s.filter = "alpha(opacity:" + Math.round(e * 75 + 25) + ")";
			s.opacity =  e * .75 + .25;

		},
	"", 0, 1, tempo);

	a[2].className = "corner";
	(new Effect(25, a[2], Math.easeOutCirc)).init(
		function(o, c, e){
			var img = o.getElementsByTagName("img")[0], s = o.style;
			img.style.width = 287 - ((287 - 197) * e) + "px";
			img.style.height = 81 - ((81 - 56) * e) + "px";
			img.style.margin = (55 * e - 55) + "px auto";

			s.left = w + (w * e) + "px";
			//s.filter = "alpha(opacity:" + Math.round(-(e * 100) * 75 + 25) + ")";
			s.opacity =  (1 - e) * .75 + .25;
		},
	"", 0, 1, tempo);

	var e = new Effect(25, a[3], Math.easeOutCirc);
	e.onEnd = function(o){
		o.parentNode.removeChild(o);
		animate = false;
	}
	e.init(
		function(o, c, e){
			var img = o.getElementsByTagName("img")[0], s = o.style;
			img.style.width = 197 + "px";
			img.style.height = 56 + "px";

			s.left = (2 * w) + (w * e) + "px";
			//s.filter = "alpha(opacity:" + Math.round((1 - e * 100) * 75 + 25) + ")";
			s.opacity =  (1 - e) * .25;
		},
	"", 0, 1, tempo);

	itens = rotate(itens, 1);
}


function previous(){
		animate = true;
		var s = itens[0].style;
		s.left = (w * 4) + "px";
		//s.filter = "alpha(opacity:0)";
		s.opacity = 0;
		ul.appendChild(itens[0].cloneNode(true));

		var a = ul.getElementsByTagName("li");

		var e = new Effect(25, a[0], Math.easeOutCirc);
		e.onEnd = function(o){
			o.parentNode.removeChild(o);
		}
		e.init(
			function(o, c, e){
				var img = o.getElementsByTagName("img")[0], s = o.style;
				img.style.width = 197 + "px";
				img.style.height = 56 + "px";

				s.left = -w * e + "px";
				//s.filter = "alpha(opacity:" + Math.round(-25 - e * 25) + ")";
				s.opacity =  -.25 - e * .25;
			},
		"", 0, 1, tempo);

		a[1].className = "corner";
		(new Effect(25, a[1], Math.easeOutCirc)).init(
			function(o, c, e){
				var img = o.getElementsByTagName("img")[0], s = o.style;
				img.style.width = 287 - ((287 - 197) * e) + "px";
				img.style.height = 81 - ((81 - 56) * e) + "px";
				img.style.margin = (55 * e - 55) + "px auto";

				s.left = w - w * e + "px";
				//s.filter = "alpha(opacity:" + Math.round(e * 75 + 25) + ")";
				s.opacity =  .75 - e * .75 + .25;

			},
		"", 0, 1, tempo);

		var e = new Effect(25, a[2], Math.easeOutCirc);
		e.onEnd = function(o){
			var p = o.getElementsByTagName("p")[0];
			p.style.opacity = 0;
			a[2].className = "";
			(new Effect(25, p, Math.easeOutCirc)).init("opacity","", 0, 1, .2);
		}
		e.init(
			function(o, c, e){
				var img = o.getElementsByTagName("img")[0], s = o.style;
				img.style.width = 197 + ((287 - 197) * e) + "px";
				img.style.height = 56 + ((81 - 56) * e) + "px";
				img.style.margin = (-55 * e) + "px auto";

				s.left = (2 * w) - (w * e) + "px";
				//s.filter = "alpha(opacity:" + Math.round(75 - (1 - e * 100) * 75 + 25) + ")";
				s.opacity =  .75 - (1 - e) * .75 + .25;
			},
		"", 0, 1, tempo);

		a[3].className = "corner";
		var e = new Effect(25, a[3], Math.easeOutCirc);
		e.onEnd = function(){
			animate = false;
		}
		e.init(
			function(o, c, e){
				var img = o.getElementsByTagName("img")[0], s = o.style;
				img.style.width = 197 + "px";
				img.style.height = 56 + "px";
				img.style.margin = "auto " + (35 * e) + "px";
				s.left = (3 * w) - (w * e) + "px";
				//s.filter = "alpha(opacity:" + Math.round(e * 25) + ")";
				s.opacity =  e * .25;
			},
		"", 0, 1, tempo);
		itens = rotate(itens, -1);
}
ge("bt_proximo").onclick = function(){
	if(!animate)
		next();
}
ge("bt_anterior").onclick = function(){
	if(!animate)
		previous();
}
