/* Sticky Tooltip script (v1.0)
* Created: Nov 25th, 2009. This notice must stay intact for usage 
* Author: Dynamic Drive at http://www.dynamicdrive.com/
* Visit http://www.dynamicdrive.com/ for full source code
*/

var stickytooltip={
        tooltipoffsets: [20, -30],
        fadeinspeed: 200,
        rightclickstick: true,
        stickybordercolors: ["#44546E", "#2D384D"],
        stickynotice1: ["naci¶nij prawy przycisk myszy", "by zatrzymać chmurkę"],
        stickynotice2: "kliknij poza chmurk± by zniknęła",

        //***** NO NEED TO EDIT BEYOND HERE

        isdocked: false,

        positiontooltip:function($, $tooltip, e){
                var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1]
                var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(), 
                x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(stickytooltip.tooltipoffsets[0]*2) : x
                y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
                $tooltip.css({left:x, top:y})
        },
        
        showbox:function($, $tooltip, e){
                $tooltip.fadeIn(this.fadeinspeed)
                this.positiontooltip($, $tooltip, e)
        },

        hidebox:function($, $tooltip){
                if (!this.isdocked){
                        $tooltip.stop(false, true).hide()
                        $tooltip.css({borderColor:'#2D384D'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[0]}).html(this.stickynotice1)
                }
        },

        docktooltip:function($, $tooltip, e){
                this.isdocked=true
                $tooltip.css({borderColor:'darkred'}).find('.stickystatus:eq(0)').css({background:this.stickybordercolors[1]}).html(this.stickynotice2)
        },


        init:function(targetselector, tipid){
                jQuery(document).ready(function($){
                        var $targets=$(targetselector)
                        var $tooltip=$('#'+tipid).appendTo(document.body)
                        if ($targets.length==0)
                                return
                        var $alltips=$tooltip.find('div.atip')
                        if (!stickytooltip.rightclickstick)
                                stickytooltip.stickynotice1[1]=''
                        stickytooltip.stickynotice1=stickytooltip.stickynotice1.join(' ')
                        stickytooltip.hidebox($, $tooltip)
                        $targets.bind('mouseenter', function(e){
                                $alltips.hide().filter('#'+$(this).attr('data-tooltip')).show()
                                stickytooltip.showbox($, $tooltip, e)
                        })
                        $targets.bind('mouseleave', function(e){
                                stickytooltip.hidebox($, $tooltip)
                        })
                        $targets.bind('mousemove', function(e){
                                if (!stickytooltip.isdocked){
                                        stickytooltip.positiontooltip($, $tooltip, e)
                                }
                        })
                        $tooltip.bind("mouseenter", function(){
                                stickytooltip.hidebox($, $tooltip)
                        })
                        $tooltip.bind("click", function(e){
                                e.stopPropagation()
                        })
                        $(this).bind("click", function(e){
                                if (e.button==0){
                                        stickytooltip.isdocked=false
                                        stickytooltip.hidebox($, $tooltip)
                                }
                        })
                        $(this).bind("contextmenu", function(e){
                                if (stickytooltip.rightclickstick && $(e.target).parents().andSelf().filter(targetselector).length==1){ //if oncontextmenu over a target element
                                        stickytooltip.docktooltip($, $tooltip, e)
                                        return false
                                }
                        })
                        $(this).bind('keypress', function(e){
                                var keyunicode=e.charCode || e.keyCode
                                if (keyunicode==115){ //if "s" key was pressed
                                        stickytooltip.docktooltip($, $tooltip, e)
                                }
                        })
                }) //end dom ready
        }
}

//stickytooltip.init("targetElementSelector", "tooltipcontainer")
stickytooltip.init("*[data-tooltip]", "mystickytooltip")

