carrossel = {
	step : 0,
	duration : 0.25,
	init : function (){
		this.step = Ext.get('lista-lancamentos').first().getWidth();

		Ext.select('#lancamentos div.quadro').each(
			function(e){
				e = Ext.get(e.dom);
				e.on('click',
					function(){
						var qid = this.id;

						for (var i = 0; i < jsLancamentos.length; i++) {
							if (('q-' + jsLancamentos[i].oidLancamento) == qid) {
								Ext.get('lancamento-titulo').update(jsLancamentos[i].titulo);
								Ext.get('lancamento-texto').update(jsLancamentos[i].texto);
								Ext.get('lancamento-vejamais').set({href: jsLancamentos[i].linkInterno});
							}
						}

						lista = Ext.get('lista-lancamentos');
						this.parent().radioClass('sel');

						if (this.getOffsetsTo(lista)[0] > 300)
							carrossel.roda('esq', this, lista, 300);
						else
							carrossel.mostraDetalhe(this, lista);
					},
					e
				)
			}
		);
		Ext.select('#lancamentos button').each(
			function(e){
				e = Ext.get(e.dom);
				e.on('click',
					function(ev){
						ev.preventDefault();
						a = Ext.get('lancamento-detalhes');
						a	.setVisible(Ext.Element.DISPLAY)
							.hide(
								{
									callback: function() {
										Ext.select('#lista-lancamentos div.sel').each(
											function (r){
												r.removeClass('sel');
											}
										);
									}
								}
							);
					},
					e,
					{stopPropagation: true}
				)
			}
		);
		Ext.select('#fita-lancamentos div.seta').each(
			function(e){
				e = Ext.get(e.dom);
				e.on('select',
					function(ev) {
						ev.preventDefault();
						return false;
					}
				);
				if (e.hasClass('esquerda')) {
					e.on('click',
						function(){
							Ext.select('#lista-lancamentos div.sel').each(
								function (r){
									r.removeClass('sel');
								}
							);
							carrossel.roda('dir');
						}
					);
				} else {
					e.on('click',
						function(){
							Ext.select('#lista-lancamentos div.sel').each(
								function (r){
									r.removeClass('sel');
								}
							);
							carrossel.roda('esq');
						}
					);
				}
			}
		);
	},


	roda : function(para, quem, pai, quanto) {
		detalhes = Ext.get('lancamento-detalhes');
		if (detalhes.isVisible()) {
			detalhes	.setVisible(Ext.Element.DISPLAY)
						.sequenceFx()
						.hide(true);
		}

		var lista = Ext.get('lista-lancamentos');

		function cbk(el) {
			el.clearPositioning();

			if (quem && pai && quanto) {
				if (quem.getOffsetsTo(pai)[0] > quanto)
					carrossel.roda('esq', quem, pai, quanto);
				else
					carrossel.mostraDetalhe(quem, pai);
			}
		}

		if ('esq' == para) {
			lista	.first()
					.setWidth(
						0,
						{
							duration: carrossel.duration,
							easing: 'easeNone',
							callback: function(el) {
								el.setStyle({'position': 'absolute', 'top': 0, 'right': 0, 'z-index': -1}).appendTo(lista);
								if (Ext.query('#lista-lancamentos div.wrap').length > 6) {
									el.setWidth(
										carrossel.step,
										{
											callback: cbk
										}
									);

								}
								else {
									el.setWidth(
										carrossel.step,
										{
											duration: carrossel.duration,
											easing: 'easeNone',
											callback: cbk
										}
									);
								}
							}
						}
					);
		} else {
			var quadro = lista.last();

			if (Ext.query('#lista-lancamentos div.wrap').length > 6) {
				quadro.setWidth(0);
			} else {
				quadro.setWidth(
					0,
					{duration: carrossel.duration}
				);
			}

			quadro	.insertBefore(lista.first())
					.setWidth(
						carrossel.step,
						{
							duration: carrossel.duration,
							easing: 'easeNone'
						}
					);
		}
	},


	mostraDetalhe : function(item, lista) {
		Ext.get('lancamento-detalhes')
			.setVisible(Ext.Element.DISPLAY)
			.sequenceFx()
			.setLeft(item.getOffsetsTo(lista)[0] + item.getWidth() - 4)
			.show(true);
	}
}

