﻿/// <reference path="jquery-1.4.2-vsdoc.js"/>
/// <reference path="jquery.hoverIntent.js"/>

(function () {



    function showTooltip() {

        var $this = $(this);
        $this.data("outerWidth", parseInt($this.outerWidth()));
        $this.data("outerHeight", parseInt($this.outerHeight()));

        var $tt = $("#staffelpreistooltip");
        if ($tt.length == 0) { $tt = $('<div id="staffelpreistooltip"></div>'); }
        $this.append($tt);
        $tt.css("left", "0px");
        $tt.css({ top: $this.outerHeight() + "px", width: "auto", height: "auto" });
        $tt.html('<img src="/images/ajax-loader.gif">&nbsp;Wird&nbsp;geladen');

        var id;
        var classes = $this.attr("class").split(" ");
        for (i = 0; i < classes.length; i++) {
            if (classes[i].indexOf("id") > -1) { id = classes[i].substr(2) };
        }
        if (id == "") return false;

        if ($this.data("daten")) {
            $tt.html($this.data("daten"));
            $tt.fadeIn(100);
            $tt.css({ width: "auto", height: "auto" });
            fixPosition($this, $tt);
            return;
        }

        $tt.fadeIn(100);
        fixPosition($this, $tt);

        $.get('/ashx/staffelpreistooltip.ashx', { nr: id }, function (data) {
            $this.data("daten", data);
            $tt.html(data);
            $tt.show();
            $tt.css({ width: "auto", height: "auto" });
            fixPosition($this, $tt);
        });

    }


    function hideTooltip() {
        $("#staffelpreistooltip").fadeOut(100);
    }


    function fixPosition(baseelm, elm) {
        $baseelm = $(baseelm);
        $elm = $(elm);

        var w = parseInt($elm.outerWidth(true));
        var h = parseInt($elm.outerHeight(true));

        //unten testen
        var ofs = $elm.offset();
        var posi = $elm.position();
        var diff = (ofs.top + h) - $(window).scrollTop() - $(window).height();
        if (diff > 0) {
            $elm.css("top", (-h - $baseelm.data("outerHeight")) + "px");
        }

        //rechts testen
        var ofs = $elm.offset();
        var posi = $elm.position();
        var diff = (ofs.left + w) - $(window).scrollLeft() - $(window).width();
        if (diff > 0) {
            $elm.css("left", (posi.left - diff - 5) + "px");
        }
    }



    $(document).ready(function () {
        $(".stprtooltip").hoverIntent({ interval: 250, over: showTooltip, out: hideTooltip, timeout: 250 });
    })


})()
