﻿
var ginfobox = null;

function showEventInfoBox(event, events) {

    if (ginfobox != null) return;

    var ev = new Event(event);

    var elem = $(ev.target);

    if (elem.get('tag') == "a"){
        elem = elem.parentNode;
    }

    if (ginfobox != null) {
        document.body.removeChild(ginfobox);
        ginfobox = null;
    }

    ginfobox = new Element("div", { 'class': 'eventinfobox' });

    // füge den mouseout Event mit jQuery hinzu, weil IE einen anderen Eventhandler als die restlichen Browser braucht.
    jQuery(elem).mouseout(function () {
        if (ginfobox != null) {
            try {
                ginfobox.style.display = 'none';
                document.body.removeChild(ginfobox);
                ginfobox = null;
            } catch (exc) {

                return;
            }
        }
    });


    try 
    {
        ginfobox.setStyle('left', elem.getLeft() + elem.getSize().x - 1);
     }
     catch (ex) // IE unterstuetzt die elem.getLeft() Methode nicht
    {
        var qEl = jQuery(elem);
        ginfobox.setStyle('left', qEl.offset().left + qEl.width() - 1);
    }
    
    var html = "";
    for (var i = 0; i < events.length; i++) {

        if (events[i].title.length > 0) 
        {
                html += "<div class=\"title\">" + events[i].title + "</div><div class=\"infotext\">Datum: " + events[i].from;

                if (events[i].time.length > 0)
                    html += "<br/>Zeit: " + events[i].time;

                if (events[i].place.length > 0)
                    html += "<br/>Ort: " + events[i].place;

                html += "</div>";
        }
    }

    ginfobox.set('html', html);

    document.body.appendChild(ginfobox);

    var img = new Element("img", { 'class': 'eventinfoboxarrow', 'src': 'grafik/calendar_infobox_pfeil.jpg' });


    img.setStyle('top', ginfobox.getSize().y - 80);

    try 
    {
        ginfobox.setStyle('top', elem.getTop() - (ginfobox.getSize().y - 78));
    }
    catch (ex) { // IE unterstuetzt die elem.getTop() Methode nicht

        ginfobox.setStyle('top', window.event.clientY - (ginfobox.getSize().y - 78));
    }
    
    ginfobox.adopt(img);
    
    ginfobox.style.display = 'block';
}
