﻿/************************************************************************************
* 
* @Resumo: Documento de DHTML, Carrousel PlugIn. - Made in Web
* @Autor: Victor Oreliana F. Faria
* @Site: www.madeinweb.com.br
* @Criacao: 01/04/2011
* @Ultima Atualizacao: 19/05/2010 
*
*************************************************************************************/


// VARIAVEIS GLOBAIS CARROUSEL
var tempo = 900;
var current_item = 1;
var interval; 
var ajuste = 12;
var tamanho = -1600; // tamhanho bg
var espacamento; //tamanho LI
var timeValue = 0;
var tempoLinha = 2000;
// [END] VARIAVEIS GLOBAIS CARROUSEL


// mobile 
var IsiPhone = navigator.userAgent.indexOf("iPhone") != -1 ;
var IsiPod = navigator.userAgent.indexOf("iPod") != -1 ;
var IsiPad = navigator.userAgent.indexOf("iPad") != -1 ;

var IsiPhoneOS = IsiPhone || IsiPad || IsiPod ;



/**
 * Funcao responsavel por alinhar o Carrousel
 */
function posCarrousel(){
		$('#slideContainer').css('left',($(window).width()/2)+tamanho/2+"px");
}
// [END] posCarrousel()


/**
 * Funcao responsavel por trocar o tema atual da página (arquivo CSS Alternate Stylesheet)
 */
function trocaCor(){
	$('#linha > ul > li').eq(current_item).switchstylesheet( { seperator:"color"} );
	$('#linha > ul > li').eq(current_item).click();
}
// [END] trocaCor()


/**
 * Funcao responsavel por distribuir os itens na timeLine
 */
function montaLinha(){
	
	var lastLi = $('#fotosSlider > li').size() -1;
	var separator = navigator.appName == 'Microsoft Internet Explorer' ? '</LI>' : '</li>';
	var li = $('#fotosSlider').html().split(separator)[lastLi].toString()+'</li>';
	
	$('#fotosSlider').html( li + $('#fotosSlider').html() );
	
	$('#fotosSlider > li').each(function(i,e){
		$('#linha > ul').append('<li title="'+$(e).attr('title').toString()+'-color">&nbsp;</li>');
	});
	
	var tamanho_linha = $('#linha').width();
	var qtd_items = $('#linha > ul > li').size() -1;
	espacamento = parseInt((tamanho_linha / qtd_items));
	$('#linha > ul > li:first-child').hide();
	$('#linha > ul > li').css('width',(espacamento-ajuste)+'px');
}
// [END] montaLinha()

/**
 * Funcao responsavel por movimentar a time line automaticamente
 */
function timer(){
	
	interval = window.setInterval("bola()",100);
	
	//console.log((tempoLinha * ($('#linha > ul > li').size() -1)));
	
	$('.ui-slider-handle').animate({'left': $('#linha').width() + 'px'}, (tempoLinha * ($('#linha > ul > li').size() -1)),function(){
		
		window.clearInterval(interval);
		current_item =  $('#linha > ul > li').size()-1;
		goto('d');
	});
	
	$('.ui-slider-range').animate({'width': $('#linha').width() + 'px'},(tempoLinha * ($('#linha > ul > li').size() -1)),function(){
	
		$('.ui-slider-range').css('width','0px');
		//timer();
	});
	
}
// [END] timer()



/**
 * Funcao: Move a timeLine um item (para esquerda ou para direita)
 * Parametros:
 *  @dir [string]
 */
function goto(dir){
	
		
	function move(index){
		$('.ui-slider-handle').animate({'left':$('#linha > ul > li').eq(index).position().left + ($('#linha > ul > li').eq(index).width() / 2) - 124 + 'px'},tempo);
		$('.ui-slider-range').animate({'width':$('#linha > ul > li').eq(index).position().left + ($('#linha > ul > li').eq(index).width() / 2) - 124 + 5 + 'px'},tempo);
	}
		
	if(!$('.ui-slider-handle').queue().length > 0) {
		window.clearInterval(interval);
		//$('.ui-slider-handle').stop();
		//$('.ui-slider-range').stop();
		switch(dir)
		{
			case 'd':
				if(current_item >= $('#linha > ul > li').size()-1){
					current_item = 0;
					trocaBgBolinha(current_item);
					$('#fotosSlider').css('left','0px');
					return goto("d");
				};
				current_item++;
				move(current_item);
				window.setTimeout('trocaBgBolinha('+current_item+')',tempo+20);
			break;
			case 'e':
				if(current_item == 1){ return false };
				current_item--;
				trocaBgBolinha(current_item);
				move(current_item);
			break;
			default:
				current_item = 0;
				trocaBgBolinha(current_item);
				move(current_item);
			break;
		}
		moveSlider(current_item);
		//window.setTimeout("timer()",tempoLinha/2);
		interval = window.setInterval("goto('d')",7000);
		trocaCor();
	}
}
// [END] goto()


/**
 * Funcao responsavel por selecionar o item corrente da timeLine
 * Parametros:
 *  @ir [string]
 */
function trocaBgBolinha(ir){
	
	$('#linha > ul > li').each(function(i,e){
		if(i <= ir)	
			$(e).css('background-image','url("/imagens/circulo_linha_selected.png")');
		else
			$(e).css('background-image','url("/imagens/circulo_linha.png")');
	});
}
// [END] trocaBgBolinha()


/**
 * Funcao responsavel pelo efeito Slider do topo
 * Parametros:
 *  @ir [integer]
 */
function moveSlider(ir){
	if(!$('#fotosSlider').queue().length > 0) $('#fotosSlider').stop().animate({'left':(ir*tamanho) + 'px'},tempo/2);	
}
// [END] moveSlider()
	

/*function bola(){
		var pos = parseInt($('.ui-slider-handle').offset().left) - $('.ui-slider-handle').width()/2;
		var item_linha_esq = 1;  // Item mais proximo da esquerda do scroller
		$('#linha > ul > li').each(function(i,e){
			if($(e).offset().left < pos && i >= item_linha_esq) item_linha_esq = i;
		});
		if(current_item != item_linha_esq){
			current_item = item_linha_esq;
			window.setTimeout("trocaBgBolinha("+item_linha_esq+")",400);
			window.setTimeout("moveSlider("+item_linha_esq+")",400);
		}
}*/

function carrousel(){ //MAIN FUNCTION
		
		montaLinha();
		
		$("#linha_azul").slider({

			range: "min",
			value: 100, 
			min: 1,
			max: 200 * ($('#linha > ul > li').size()-1),
			slide:function(event, ui){
				
				window.clearInterval(interval);
				$('.ui-slider-handle').stop();
				$('.ui-slider-range').stop();
				
				//window.clearInterval(interval);
				var pos = parseInt($('.ui-slider-handle').offset().left) - $('.ui-slider-handle').width()/2;
				var item_linha_esq = 0;  // Item mais proximo da esquerda do scroller
				
				$('#linha > ul > li').each(function(i,e){
					if($(e).offset().left < pos && i >= item_linha_esq) item_linha_esq = i;
				});
				
				trocaBgBolinha(item_linha_esq);
			},
			change:function(event, ui){
				//console.log('cliquei');
			},
			stop: function(event, ui) { 
				
				window.clearInterval(interval);
				
				var item_linha = 0;	
				var item_linha_esq = 0; 
				var item_linha_dir =  $('#linha > ul > li').size(); 
				var pos = parseInt($('.ui-slider-handle').position().left);
				var largura = ($('#linha > ul > li').width()/2);
				var i=0;
				
				var lista = new  Array(); 
				
				$('#linha > ul > li').each(function(i,e){
					lista[i] = e;
				});
				
				lista.shift();
								
				for(i=0; i < lista.length; i++)
				{
					if( ($(lista[i]).position().left - largura) < pos && i > item_linha_esq) item_linha_esq = i; //mais proximo da esquerda do scroller
					if( ($(lista[i]).position().left - largura) > pos && i < item_linha_dir) item_linha_dir = i; //mais proximo da direita do scroller
				}

				var posCentro = pos;//+$('.ui-slider-handle').width()/2;
				
				if(item_linha_dir >= $('#linha > ul > li').size()-1) item_linha_dir = $('#linha > ul > li').size()-2;
				
				var distancia_esq = posCentro - (parseInt($('#linha > ul > li').eq(item_linha_esq).position().left) + largura);
				var distancia_dir = (parseInt($('#linha > ul > li').eq(item_linha_dir).position().left) + largura) - posCentro;

				if(distancia_esq < distancia_dir){
					var ir = item_linha_esq;
				}
				else if(distancia_dir < distancia_esq){
					var ir = item_linha_dir;
				}
				else{ //igual
					var ir = item_linha_esq;
				}
				ir++; //Primeiro escondido
				if(ir<1) ir=1;

				var pos_vigente = parseInt($('#linha > ul > li').eq(ir).position().left);
				var salto = $('#linha > ul > li').eq(ir).position().left + ($('#linha > ul > li').eq(ir).width() / 2) - 124;
				
				$('.ui-slider-handle').animate({'left': salto + 'px'},{duration:tempo, easing:'easeOutElastic'});
				$('.ui-slider-range').animate({'width': salto +5 + 'px'},{duration:tempo, easing:'easeOutElastic'});
				
				interval = window.setInterval("goto('d')",7000);
				window.setTimeout('trocaBgBolinha('+ir+')',tempo+20);
				//window.setTimeout('timer()',tempoLinha);
				current_item = ir;
				moveSlider(ir);
				
				trocaCor();
				
			}
		});

		
		
		interval = window.setInterval("goto('d')",7000);
		//interval = window.setInterval("bola()",100);
		//window.setTimeout("timer()",tempoLinha/2);
		
		
		if (IsiPhoneOS || ('ontouchstart' in document.documentElement)){
			$('#arrow_dir').bind('touchstart', function(evt){goto('d');});
			$('#arrow_esq').bind('touchstart', function(evt){goto('e');});
		}	
		else {
			$('#arrow_dir').click(function(){goto('d');});
			$('#arrow_esq').click(function(){goto('e');});	
		}
		

		$('#fotosSlider').css('left',tamanho+'px');
		trocaBgBolinha(current_item);
		
		posCarrousel();
		$(window).resize(posCarrousel);
}
