
// Timeline Script - Jquery

var timeOffset = null;
var distItems = [];
var jqItems = [];

var futureStarts = null;

var selectedD = 10000;
var selected = false;

var onItems = false;

var thinking = false;

var changed = false;
var entered = false;
var previous = false;

var z = 100;

$(document).ready(function(){
	$('#timeline .bottomSlide').css('margin-left',"50%");
	calculatePositions();
	bindEvents();
});

function bindEvents(){
	$("#timeline .time").mousemove(function(e){
		if(!thinking){
			thinking = true;
			var xpos = e.pageX-timeOffset; 
			
			if( xpos > 0 && xpos < 900){
				previous = selected;
				entered = onItems;
				$('#timeline .bottomMousePointer').show();
				//$('#timeline .here .aqui').hide();
				
				if(selected !== false){
					selectedD =  Math.abs(xpos - (distItems[selected] -30 -timeOffset) -30);
					//selectedD =  Math.abs(xpos - (distItems[selected] -30) -30);
				}
				onItems = false;
				for(i=0; i<distItems.length ; i++){
					antes = distItems[i] - 30 - timeOffset;
					despues = distItems[i] + 30 - timeOffset;
					
					if(xpos > antes && xpos < despues){
						onItems = true;
						//jqItems[i].css('z-index',1000);
						var d = Math.abs(xpos - antes - 20);

						if(i !== selected && d < selectedD ){
							if(selected !== false){
								//jqItems[selected].removeClass('onTop');
								//jqItems[selected].parent().removeClass('onTop');
							}
							selected = i;
						}
					}
				}
				
				changed = false;
				if(onItems == true && entered == false){
					changed = true;
				}
				if(onItems == false && entered == true){
					changed = true;
				}
				if(onItems == true && selected !== previous){
					changed = true;
				}
				
				if(selected !== false) {
					var positionDot = distItems[selected]- timeOffset;
					
					
					
					
					if(changed == true){
						if(positionDot > futureStarts){
							$('#timeline .bottomMousePointer').addClass('futureItem');
						}
						else {
							$('#timeline .bottomMousePointer').removeClass('futureItem');
						}
						$('#timeline .bottomMousePointer .dotdot').addClass('bigRed');
						$('#timeline #bottom .dot').addClass('withInfo');
						$('#timeline .bottomMousePointer .info').html(itemsData[jqItems[selected].attr('id')]);
						$('#timeline .bottomMousePointer').css('margin-left',positionDot+"px");
						//jqItems[selected].parent().addClass('onTop');
						jqItems[selected].parent().css('z-index',z++);
						//jqItems[selected].addClass('onTop');
						jqItems[selected].css('z-index',z++);
						
						$('a.coverUpAnchor').attr('href',jqItems[selected].children('a').attr('href'));
						
						if(selected !== previous){
							
							jqItems[selected].hide();
							jqItems[selected].slideDown(280);
							
						}
					}
				}
				if(onItems == false) {
					//$('#timeline .here2 .aqui').css('display','block');
					//$('#timeline .bottomMousePointer').hide();
					
					if(changed == true){
						$('a.coverUpAnchor').attr('href','javascript:;');
						$('#timeline .bottomMousePointer .dotdot').removeClass('bigRed');
						$('#timeline .bottomMousePointer .info').html('');
						$('#timeline #bottom .dot').removeClass('withInfo');
						
					}
					$('#timeline .bottomMousePointer').css('margin-left',xpos+"px");
				}
				
				
			}
			thinking = false;
		}	
		
	});
	
	$("#timeline .time").mouseout(function(e){
		//$('#timeline .bottomSlide').css('margin-left',"25%");
		//$('#timeline .bottomSlide .here .aqui').css('display','block');
		//$('#timeline .bottomSlide .here .info').html('');
		$('#timeline .here2').css('display','none');
	});
	
	$(window).resize(function(){
		 calculatePositions();
	});
}

function calculatePositions(){
	var time = $('#timeline .time').get(0);
	timeOffset = time.offsetLeft;
	if(jQuery.support.opacity == false){
		var timeline = $('#timeline').get(0);
		var wrap = $('#wrapper')[0];
		var timelineOffset = timeline.offsetLeft;
		var wrapperOffset = wrap.offsetLeft;
		timeOffset = wrapperOffset + timelineOffset;
	}
	
	var future = $('#timeline .time .after').get(0);
	futureStarts = future.offsetLeft;
	
	var items = $('#timeline .item');	
	items.each(function(i){
		var elem = items.get(i);
		if(elem.style.marginLeft == ''){
			xleft = 0;
		}
		else {
			xleft = Math.abs(parseInt(elem.style.marginLeft));
		}
		
		var offset = elem.offsetLeft+elem.offsetParent.offsetLeft+xleft+timeOffset;
		distItems[i] = offset; 
		jqItems[i] = items.eq(i);
	});
}