var t = null ; // Timeout
var tt = null ; // Tooltip Timeout

function jceTooltipInit() {
	$("a.jTip").hover(function() {
		var current = this ;
		t = setTimeout(function() {
			$("#tooltip").remove() ;
			jceTooltipShow(current.href,current.id,current.name)
		},300) ;
	},function() {
		clearTimeout(t) ;
		tt = setTimeout(function() {
			$("#tooltip").remove() ;
		},300) ;
		$("#tooltip").animate({ opacity: 0.4 },300) ;
	}).click(function() {
		return false ;
	});
}

function jceTooltipShow(linkHref,linkId,linkName) {
	options = jceParseUrl(linkHref) ;
	if(options['link'] !== undefined) {
		$('#' + linkId).bind('click',function() {
			parent.location.href = options['link'] ;
		}).css('cursor','pointer') ;
	}
	$("#thetimeline").append('<div id="tooltip"><h2>' + linkName + '</h2><div id="journalistlist"></div></div>') ;
	$.ajax({ type: "GET", url: linkHref, dataType: "html", success: function(dat) {
		$("#tooltip #journalistlist ul, #tooltip #journalistlist p").remove() ;
		$("#tooltip #journalistlist").append(dat) ;
		$("#tooltip #journalistlist a").click(function() { parent.location.href = $(this).attr("href") }) ;
		jceTooltipPosition(options,linkId) ;
	} }) ;
}

function jceTooltipPosition(options,linkId) {
	var xL = parseInt($("#content-timeline").css("left")) + parseInt($("#" + linkId).parent("li").css("left")) ;
	var xR = parseInt($("#content-timeline").css("left")) + parseInt($("#" + linkId).parent("li").css("left")) + parseInt($("#" + linkId).parent("li").width());
	if (xR < 499) {
		var left = xR ;
	}
	else if (xL > 250) {
		var left = xL - 250 ;
	}
	else {
		var left = xL ;
		var modifyHeight = true ;
	}
	
	$("#tooltip").css("left",left) ;
	
	var xT = parseInt($("#" + linkId).parent("li").css("top")) ;
	var xH = parseInt($("#tooltip").height()) ;
	$("#tooltip").css("top",((xT + xH) < 470 ? xT : 470 - xH) + (modifyHeight ? 12 : 0)) ;
	
	$("#tooltip").animate({ opacity: 1 },300) ;
	$("#tooltip").hover(function() { 
		clearTimeout(tt) ;
		$("#tooltip").stop().animate({ opacity: 1 },1) ;
	},function() {
		tt = setTimeout(function() {
			$("#tooltip").remove() ;
		},300) ;
		$("#tooltip").animate({ opacity: 0.4 },300) ;
	}) ;
}

function jceParseUrl(url) {
	var query = url.replace(/^[^\?]+\??/,'');

	var Options = new Object ();
	if ( ! query ) return Options ; // return empty object
	var Pairs = query.split(/[;&]/);
	for ( var i = 0; i < Pairs.length; i++ ) {
		var KeyVal = Pairs[i].split('=') ;
		if ( ! KeyVal || KeyVal.length != 2 ) continue ;
		var key = unescape( KeyVal[0] ) ;
		var val = unescape( KeyVal[1] ) ;
		val = val.replace(/\+/g, ' ') ;
		Options[key] = val ;
	}
	return Options ;
}

