ADD infos bulles (pas fini, quelques bugs à corriger)
[euphorik.git] / js / euphorik.js
index b44f042..1b78ba8 100755 (executable)
@@ -134,6 +134,49 @@ Util.prototype.messageDialogue = function(message, type, boutons, formate)
    this.timeoutMessageDialogue = setTimeout(fermer, conf.tempsAffichageMessageDialogue)   
 }\r
 
+/**
+  * Affiche un info bulle lorsque le curseur survole l'élément donné.
+  * FIXME : le width de element ne tient pas compte du padding !?
+  */
+Util.prototype.infoBulle = function(message, element)
+{
+   var virerMess = function()
+      {   
+         $("#flecheBulle").remove()
+         $("#messageBulle").remove()
+      }
+
+   element.click(virerMess)
+
+   element.hover(
+      function(e)
+      {
+         f = $('<div id="flecheBulle"></div>').appendTo("body")
+         m = $('<div id="messageBulle"><p>' + message + '</p></div>').appendTo("body")
+         var positionFleche = {
+            left : element.offset().left + element.width() / 2 - f.width() / 2,
+            top : element.offset().top - f.height()
+         }
+         var positionMessage = {
+            left : element.offset().left + element.width() / 2 - m.width() / 2,
+            top : element.offset().top - f.height() - m.height()
+         }
+         var depassementDroit = (positionMessage.left + m.width()) - $("body").width()
+         if (depassementDroit > 0)
+            positionMessage.left -= depassementDroit
+         else
+         {
+            if (positionMessage.left < 0)
+               positionMessage.left = 0
+         }
+         
+         m.css("top", positionMessage.top).css("left", positionMessage.left).show()
+         f.css("top", positionFleche.top).css("left", positionFleche.left).show()
+      },
+      virerMess
+   )
+}
+
 /**
   * Utilisé pour l'envoie de donnée avec la méthode ajax de jQuery.
   */