/**
 * Tipsta - jQuery plugin to display custom animated tooltips for image maps
 *
 * @version 1.0.1 (2010 April 13th)
 * @require jQuery 1.4 or above
 * @require jQuery easing functions 1.3+ (for animation effects)
 *
 * @author Greg Knapp (virtual dot greg at gmail dot com)
 * http://www.gregk.co.uk/software/tipsta
 *
 * This software is licensed under the MIT license:
 * http://www.opensource.org/licenses/mit-license.php
 */
(function(a){a.fn.tipsta=function(g){g=a.extend({},a.fn.tipsta.defaults,g);function d(j,i){return j-i}function f(i){i=i.replace(/[^\-\.0-9]/g,"");if(i==""){i=0}return Math.round(parseFloat(i))}function c(j){var i=false;if(j.attr("tagName").toLowerCase()=="map"){i=true}return i}function e(j){var i=a("<div>").attr("id",j);if(arguments[1]){i.html(arguments[1])}if(g.cssClass!=""){i.addClass(g.cssClass)}return i.appendTo(g.anchor)}function b(m,k){var i=m.attr("title");m.attr("title","");if(k!==undefined&&k!=""){return k}var j="<no caption>";if(c(m)){var l=m.find("area");if(l.length){m=(l.length>1)?l[g.area]:l}}var n=m.attr("alt");if(n!==undefined&&n!=""){j=n}else{if(i!==undefined&&n!=""){j=i}}return j}function h(n,C){var z=0;var m=0;var k;var t,q;if(c(n)){var l=n.find("area");if(l.length){l=(l.length>1)?l[g.area]:l}else{throw new Error("No area found for image map '"+n.attr("id")+"'")}var B=l.attr("coords").split(",");var A=[];var w=[];var E;for(t=1,q=B.length;t<=q;t++){E=parseInt(B[t-1],10);if(t/2!=Math.round(t/2)){A[A.length]=E}else{w[w.length]=E}}A.sort(d);w.sort(d);var u=w[w.length-1]-w[0];var s=A[A.length-1]-A[0];z=u+w[0];m=Math.round(s/2)+A[0];var r;a.each(a("img[usemap]"),function(j,p){p=a(p);if(p.attr("usemap").substr(1)==n.attr("id")){r=p}});if(!r.length){throw new Error("Could not find an image using map: "+n.attr("id"))}k=a(r).parent()}else{k=n.parent()}var D=["","margin-","padding-"];var o={x:g.x,y:g.y};for(t=0,q=D.length;t<q;t++){o.y+=f(k.css(D[t]+"top"));o.x+=f(k.css(D[t]+"left"))}C.css({visibility:"hidden",display:"block"});o.x-=Math.round(C.attr("offsetWidth")/2);C.css({visibility:"visible",display:"none"});o.y+=f(C.css("padding-top"));o.y+=f(C.css("margin-top"));z+=o.y;m+=o.x;return{top:z,left:m}}return this.each(function(){if(!a(this).length){throw new Error("Cannot find "+a(this).attr("id")+" in document")}var k=a(this).attr("id")+"_tip";var j=a(k);if(!j.length){j=e(k,b(a(this),g.caption))}var i=h(a(this),j);j.css("top",i.top);j.css("left",i.left);a(this).hover(function(l){if(j.queue("fx").length>1){j.clearQueue();return}j.fadeIn(g.duration).animate({top:i.top-g.distance},{duration:g.duration,easing:g.easing,queue:false})},function(l){j.animate({top:i.top},{duration:g.duration,easing:g.easing,queue:false}).fadeOut(g.duration)})})}})(jQuery);$.fn.tipsta.defaults={anchor:"body",area:0,caption:"",cssClass:"tooltip",distance:20,duration:120,easing:"easeOutQuad",x:0,y:0};
