﻿// adapted from http://www.dynamicdrive.com/dynamicindex4/imagetooltip.htm
var ddimgtooltip = {

    tiparray: function () {
        var tooltips = []

        tooltips[0] = ["/images/tool_tip.png", "Out of stock", { width: "105px"}]
        tooltips[1] = ["/images/tool_tip.png", "Available", { width: "105px"}]
        


        return tooltips //do not remove/change this line
    } (),

    tooltipoffsets: [-18, 16], //additional x and y offset from mouse cursor for tooltips


    tipprefix: 'imgtip', //tooltip ID prefixes

    createtip: function ($, tipid, tiptext,tipclass) {
        if ($('#' + tipid).length == 0) { //if this tooltip doesn't exist yet
            return $('<div id="' + tipid + '" class="' + tipclass + '" />').html(
				'<div style="text-align:center">' + tiptext + '</div>'
				)
            //.css(tipinfo[2] || {})
			.appendTo(document.body)
        }
        return null
    },

    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 - (ddimgtooltip.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.show()
        this.positiontooltip($, $tooltip, e)
    },

    hidebox: function ($, $tooltip) {
        $tooltip.hide()
    },


    init: function (targetselector) {
        jQuery(document).ready(function ($) {
            var tiparray = ddimgtooltip.tiparray
            var $targets = $(targetselector)
            if ($targets.length == 0)
                return
            var tipids = []
            $targets.each(function () {
                var $target = $(this)
                $target.attr('rel').match(/\[(\d+)\]/) //match d of attribute rel="imgtip[d]"
                var tipsuffix = parseInt(RegExp.$1) //get d as integer
                var tipid = this._tipid = Math.floor(Math.random() * 1000000) //construct this tip's ID value and remember it
                //alert(tipid);
                // HACK: Added 3. custom attribute 'tipclass' to constructor for dynamic css
                var $tooltip = ddimgtooltip.createtip($, tipid, $target.attr("alt"), $target.attr("tipclass"))
                $target.mouseenter(function (e) {
                    var $tooltip = $("#" + this._tipid)
                    ddimgtooltip.showbox($, $tooltip, e)
                })
                $target.mouseleave(function (e) {
                    var $tooltip = $("#" + this._tipid)
                    ddimgtooltip.hidebox($, $tooltip)
                })
                $target.mousemove(function (e) {
                    var $tooltip = $("#" + this._tipid)
                    ddimgtooltip.positiontooltip($, $tooltip, e)
                })
                if ($tooltip) { //add mouseenter to this tooltip (only if event hasn't already been added)
                    $tooltip.mouseenter(function () {
                        ddimgtooltip.hidebox($, $(this))
                    })
                }
            })

        }) //end dom ready
    }
}

//ddimgtooltip.init("targetElementSelector")
ddimgtooltip.init("*[rel^=imgtip]")
