/**
 * @author Patrig Droumaguet
 */
var sicabol_tip_timer;
var sicabol_tip_in_delay = 0.5;	// Délai avant l'arrivée du tip (en secondes)
var sicabol_tip_out_delay = 1;	// Temps d'affichage du tip
var sicabol_tip_elem;
var sicabol_tip_div;
var mouse_clientX;
var mouse_clientY;
var mouse_pageY;
$(document).ready(function(){
    $('body').append('<div id="jQueryTip" class="jQueryTip" style="display: block; opacity: 0; moz-opacity: 0; filter:alpha(opacity=0); position: absolute; left: -5000; z-index: 9999;"></div>');
    $('div#jQueryTip').hide().mouseenter(function(){
        clearTimeout(sicabol_tip_timer);
    });
	sicabol_tip_div = $('div#jQueryTip');
	sicabol_tip_update();
    $(document).bind('keydown click', sicabol_tip_hide).bind('mousemove', function(e){
		mouse_clientY = e.clientY;
		mouse_pageY = e.pageY;
		mouse_clientX = e.clientX;
		sicabol_tip_div.filter(':visible').css({
	        'top': sicabol_tip_get_pos(),
	        'left': mouse_clientX + 20,
			'z-index' : 999999
	    });
		sicabol_tip_div.filter(':hidden').css({
	        'top': 0,
	        'left': 0
	    });
	});
});
function sicabol_tip_get_pos() {
	var delta = $(window).height() - mouse_pageY - parseInt(sicabol_tip_div.height()) - 35;
	return mouse_clientY + ((delta < 0) ? delta : -20);
}
function sicabol_tip_update() {
	$('form [tip]').not('label').each(function() {
		var field_name = $(this).attr('name');
		var field_tip = $(this).attr('tip');
		$(this).parents('form').find('label[for=' + field_name + ']').not('[tip]').each(function() {
			$(this).attr('tip', field_tip);
		});
	})
    $('[tip]').live('mouseover', sicabol_tip_mouseover).live('mouseout', sicabol_tip_mouseout).css('cursor', 'help');
    $('.jQueryHtmlTip').parent().bind('mouseover', sicabol_tip_mouseover).bind('mouseleave', sicabol_tip_mouseout).css('cursor', 'help');
}
function sicabol_tip_mouseover(){
    	clearTimeout(sicabol_tip_timer);
        $(this).removeAttr('title');
        sicabol_tip_hide();
        sicabol_tip_elem = this;
        sicabol_tip_timer = setTimeout(function(){
            sicabol_tip_show(sicabol_tip_elem);
        }, sicabol_tip_in_delay * 1000);
}
function sicabol_tip_mouseout(){
    	clearTimeout(sicabol_tip_timer);
		sicabol_tip_timer = setTimeout(function(){
            sicabol_tip_hide();
        }, sicabol_tip_out_delay * 1000);
}
function sicabol_tip_show(elem){
	elem = $(elem);
	clearTimeout(sicabol_tip_timer);
	var tip_content = '';
	var tip_html_elem = elem.children('.jQueryHtmlTip');
	if (tip_html_elem.length) {
		tip_content = tip_html_elem.html();
	} else {
		var tip_title = elem.attr('tiptitle');
		if (tip_title == undefined) {
			tip_title = "Help";
		}
		if (tip_title != '') {
			tip_title = '<h3>' + tip_title + '</h3>';
		}
		tip_content = tip_title + elem.attr('tip');
	}
	var tip_class = elem.attr('tipclass');
	if (tip_class == undefined) {
		tip_class = 'jQueryTip';
	}
    sicabol_tip_div.removeAttr('class').addClass(tip_class).html(tip_content).show().stop().css({
        top: sicabol_tip_get_pos(),
        left: mouse_clientX + 20
    }).fadeTo(1000, 1);
}

function sicabol_tip_hide(){
    clearTimeout(sicabol_tip_timer);
	sicabol_tip_div.stop().fadeTo('slow', 0, function() {
		$(this).hide().html('');
	});
}
