req = false; // Request-Hilfsvariable
Details_in_obj_timer = null;
close_lang = "";
help_lang = "";

$(document).ready(function(){
    var bubble_in = function(){ // über den Hundenamen
        if ($(this).attr("isVisible") == 1){
            $(this).attr("isVisible", 0);
            bubble_out();
        } else {
            $(this).attr("isVisible", 1);
            var btn = $(this);
            clearTimeout(Details_in_obj_timer); // Timer zurücksetzen
            var bubble_in_obj = $(this).parent("div");
            Details_in_obj_timer = setTimeout(function(){
                bubble_Ajax(bubble_in_obj);
                btn.attr("isVisible", 1);
            },10);
        }
    }

    function bubble_hide(){
        clearTimeout(Details_in_obj_timer); // Timer zurücksetzen
        if (req) req.abort(); // Falls ein Ajax kommt, das dann abbrechen, damit überlagerungen vermiden werden
        $(".bubble_infobox_visible").removeClass("bubble_infobox_visible"); // wieder unsichtbar machen
        $(".bubble_code_img").attr("isVisible", 0);
    }

    var bubble_out = function(){ // wieder raus
        bubble_hide();        
    }

    var bubble_box_over = function(){ // über die Detailskarte
        bubble_hide();
    }

    $.each($(".bubble_code"), function(){
        var obj = $(this).parent("div");
        obj.html('<div class="bubble_txt">' + obj.html() + '</div><div class="bubble_infobox" ></div>');
    });


    function bubbleReposRight(xdiv){
        var right_parent = xdiv[0].offsetParent.offsetWidth + xdiv[0].offsetParent.offsetLeft;
        var right_div = xdiv[0].offsetLeft + xdiv[0].offsetWidth;
        if (right_parent < right_div) xdiv.css("right", 0);
    }

    function bubble_Ajax(obj){
        bubble_hide();
        var xname = obj;
        var xobj = xname.parent("div");
        var xdiv = xobj.find(".bubble_infobox");
        var bubbleID = xobj.find(".bubble_code").val(); // Die ID die gesucht werden soll

        if (obj.attr("isAjaxStatus") == 1){ // 1 = Ajax wurde abgeschlossen und suche war erfolgreich
            xdiv.addClass("bubble_infobox_visible"); // sichbar machen
            bubbleReposRight(xdiv);
       } else if (xname.attr("isAjaxStatus") == 2){
            return; // nichts tun, da nichts gefunden wurde beim abfragen
        } else { // alles andere, Ajax nun starten
            xdiv.html($("#bubble_loading").html()); // Ladebild anzeigen
            xdiv.addClass("bubble_infobox_visible"); // Box anzeigen
            bubbleReposRight(xdiv);
            xname.attr("isAjaxStatus", 3); // Ajax wird geladen
            req = $.post("/ajax_bubble_help.php", {"bcode": bubbleID}, function(res){
                if (res.length > 10){ // HTML wurde geliefert
                    xname.attr("isAjaxStatus", 1); // 1 = Ajax wurde gefunden und suche erfolgreich
                    xdiv.html(res); // html ins DOM das geliefert wurde
                    xdiv.addClass("bubble_infobox_visible"); // sichbar machen
                    bubbleReposRight(xdiv);
                } else {
                    xdiv.html(""); // html leeren
                    xname.attr("isAjaxStatus", 2); // 2 = Ajax wurde abgeschlossen und suche fehlgeschlagen
                    xdiv.removeClass("bubble_infobox_visible"); // sichbar machen
                    bubbleReposRight(xdiv);
                }
            });
        }
    }

    $(".bubble_code_img").live("click", bubble_in);
    $(".bubble_close_button").live("click", bubble_out);
    //$(".bubble_code_img").live("mouseleave", bubble_out);
    //$(".bubble_infobox").live("mouseenter", bubble_box_over);
});

// How To einbinden...
// <input class="bubble_code" type="hidden" name="bubble_code" value="schaubewertung" />

