/*!
SmallIPop 0.1.1 (10/19/2011)
Copyright (c) 2011 Small Improvements (http://www.small-improvements.com)

Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.

@author Sebastian Helzle (sebastian@small-improvements.com)
*/
(function(a){a.smallipop={version:"0.1.1",defaults:{popupOffset:31,popupYOffset:0,popupDistance:20,popupDelay:100,hideTrigger:false,theme:"default",infoClass:"smallipopHint",hideSpeed:150,moveSpeed:200,invertAnimation:false,horizontal:false},popup:null,lastId:1,hideSmallipop:function(){var e,b,d,c,g,f;b=a.smallipop;e=b.popup.data("shown");d=a(".smallipop"+e);c=d.data("options")||b.defaults;if(e&&c.hideTrigger){d.stop(true).fadeTo(c.hideSpeed,1)}g=b.popup.data("xDistance")*(c.invertAnimation?-1:1);f=b.popup.data("yDistance")*(c.invertAnimation?-1:1);return b.popup.data({hideDelayTimer:null,beingShown:false}).stop(true).animate({top:"-="+g+"px",left:"+="+f+"px",opacity:0},{duration:c.speed,step:b.func_ease,complete:function(){if(!a(this).data("beingShown")){return a(this).css("display","none").data("shown","")}}})},killTimers:function(){var c,b,d;b=a.smallipop.popup;c=b.data("hideDelayTimer");d=b.data("showDelayTimer");if(c){clearTimeout(c)}if(d){return clearTimeout(d)}},func_ease:function(f,g,e,i,h){if((g/=h/2)<1){return i/2*g*g+e}else{return -i/2*((--g)*(g-2)-1)+e}},triggerMouseover:function(){var g,f,c,d,e,b;d=a(this);g=d.data("id");b=a.smallipop;c=b.popup;e=c.data("shown");b.killTimers();c.data((g?"triggerHovered":"hovered"),true);if(g&&!c.data("beingShown")&&e!==g){f=d.data("options");return c.data("showDelayTimer",setTimeout(function(){var p,t,v,j,u,k,w,q,m,l,r,n,h,s,i,o;if(!c.data("triggerHovered")){return}m=a(".smallipop"+e);l=m.data("options")||b.defaults;if(e&&l.hideTrigger){m.stop(true).fadeTo(l.fadeSpeed,1)}r=a(window);s=i=f.popupDistance;o=f.popupYOffset;c.removeClass().addClass(f.theme).data({beingShown:true,shown:g}).find(".sipContent").html(d.data("hint")||d.find("."+f.infoClass).html());p=d.offset();v=c.outerHeight();k=c.outerWidth();t=k/2;n=r.width();q=d.outerWidth();w=d.outerHeight();h=30;j=p.left+q/2;u=p.top-v+o;if(f.horizontal){s=0;u+=w/2+v/2;if(p.left+q+k>n-h){c.addClass("sipPositionedLeft");j=p.left-k-f.popupOffset;i=-i}else{c.addClass("sipPositionedRight");j=p.left+q+f.popupOffset}}else{i=0;if(j+t>n-h){j-=t*2-f.popupOffset;c.addClass("sipAlignLeft")}else{if(j-t<h){j-=f.popupOffset;c.addClass("sipAlignRight")}else{j-=t}}if(p.top-r.scrollTop()<v+f.popupDistance+h-o){u+=v+w;s=-s;o=0;c.addClass("sipAlignBottom")}}if(f.hideTrigger){a(".smallipop"+g).stop(true).fadeTo(f.hideSpeed,0)}return c.data({xDistance:s,yDistance:i}).stop(true).css({top:u,left:j,display:"block",opacity:0}).animate({top:"-="+s+"px",left:"+="+i+"px",opacity:1},{duration:f.moveSpeed,step:b.func_ease,complete:function(){return c.data("beingShown",false)}})},f.popupDelay))}},triggerMouseout:function(){var e,c,d,b;d=a(this);b=a.smallipop;c=b.popup;e=d.data("id");b.killTimers();c.data((e?"triggerHovered":"hovered"),false);if(!(c.data("hovered")||c.data("triggerHovered"))){return c.data("hideDelayTimer",setTimeout(b.hideSmallipop,500))}}};return a.fn.smallipop=function(d,e){var c,b;if(d==null){d={}}if(e==null){e=""}b=a.smallipop;c=a("#smallipop");if(!c.length){c=b.popup=a('<div id="smallipop"><div class="sipContent"/><div class="sipArrowBorder"/><div class="sipArrow"/></div>').css("opacity",0).bind({mouseover:b.triggerMouseover,mouseout:b.triggerMouseout});a("body").append(c);a("a",c.get(0)).live("click",b.hideSmallipop)}return this.each(function(){var g,f;f=a(this);if(!f.hasClass("sipInitialized")){b=a.smallipop;g=b.lastId++;f.addClass("sipInitialized smallipop"+g).data({id:g,options:a.extend({},b.defaults,d),hint:e||f.attr("title")||""}).attr("title","").bind({mouseover:b.triggerMouseover,mouseout:b.triggerMouseout,click:b.hideSmallipop});return a("a",this).live("click",b.hideSmallipop)}})}})(jQuery);
