/*
 * JTip
 * By Cody Lindley (http://www.codylindley.com)
 * Under an Attribution, Share Alike License
 * JTip is built on top of the very light weight jquery library.
 * Revu et corrigé par Johann
 * Reste le problème d'affichage avec Ajax : rien n'apparait même si le code est chargé correctement et le javascript déclenché???
 */

//on page load (as soon as its ready) call JT_init
$(document).ready(JT_init);

function JT_init(){
	       $("*[@infobulle_content]")
		   .hover(
		   		function(){JT_show(this)},
		   		function(){$('#JT').remove()}
		   		)  
}

function JT_show(elt){
	var title = $(elt).attr("infobulle_title");
	var data = $(elt).attr("infobulle_content");
	
	if(title == undefined)
		title="&nbsp;";
		
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - JT_getAbsoluteLeft(elt);
	var clickElementy = JT_getAbsoluteTop(elt) - 3; //set y position	
	
	if(hasArea>(250+75)){
		$("body").append("<div id='JT' style='width:"+250+"px;'><div id='JT_arrow_left'></div><div id='JT_close_left'>"+title+"</div><div id='JT_copy'>"+data+"</div>");//right side
		var arrowOffset = JT_getElementWidth(elt) + 11;
		var clickElementx = JT_getAbsoluteLeft(elt) + arrowOffset; //set x position
	}else{
		$("body").append("<div id='JT' style='width:"+250+"px;'><div id='JT_arrow_right' style='left:"+(250+1)+"px'></div><div id='JT_close_right'>"+title+"</div><div id='JT_copy'>"+data+"</div>");//left side
		var clickElementx = JT_getAbsoluteLeft(elt) - (250 + 15); //set x position
	}

	$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
	$('#JT').css("z-index", 10000);
	$('#JT').show();	
}

function JT_getElementWidth(x) {
	return x.offsetWidth;
}

function JT_getAbsoluteLeft(o) {
	// Get an object left position from the upper left viewport corner
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	return oLeft
}

function JT_getAbsoluteTop(o) {
	// Get an object top position from the upper left viewport corner
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	return oTop
}
