
    var innerPopup = {

            // popup létrehozása
            build: function(popupW, popupH) {
              
                // ha még nem hoztuk létre a szükséges fedoréteget, akkor most megtesszük
                if (!$("overlay")) {

                    var documentFullSize = document.getScrollSize();
                    var overlay = new Element("div", {
                      id: "overlay",
                      styles: {
                        width: documentFullSize.x,
                        height: documentFullSize.y
                      }
                    });
                    overlay.inject(document.body);
                    overlay.setStyle("opacity", "0.9");
                    overlay.addEvent("click", innerPopup.close);

                    // a legördülo selecteket ie alatt nem fedi el az overlay, ezért elrejtjük oket
                    if (Browser.Engine.trident) $$("select").setStyle("visibility", "hidden");
                    
                    // close gomb
                    var close = new Element("div", { id: "overlayClose" });
                    close.inject(document.body);
                    close.addEvent("click", function() { innerPopup.close(); });

                } else {

                    innerPopup.close(); // a biztonság kedvéért bezárjuk azért
                    $("overlay").setStyle("display", "block");
                    $("overlayClose").setStyle("display", "block");
                    
                }

                // létrehozzuk a tényleges popupot
                var overlayContainer = new Element("div", {
                    id: "overlayContainer",
                    html: "<div class='close'><a href='javascript:;' onclick='innerPopup.close()'><span>[ x ]</span></a></div>"+
                          "<div id='popupContent'></div>",
                    styles: {
                        width: popupW
                    }
                });
                overlayContainer.inject(document.body);
                
                this.resizeToContent(popupW);
                
                // elkezdjük figyelni az escape-et
                window.addEvent('keydown', innerPopup.watchEsc);

            },
            
            // popup elrejtése
            close: function() {
              
                $("overlay").setStyle("display", "none");
                $("overlayClose").setStyle("display", "none");
                if ($("overlayContainer")) $("overlayContainer").dispose();
                if (Browser.Engine.trident) $$("select").setStyle("visibility", "");

            },
            
            watchEsc: function(event) {

                if (event.key == "esc") {
                    innerPopup.close();
                    window.removeEvent('keydown', innerPopup.watchEsc);
                }

            },

            setContent: function(where, what) {
              
                // a html struktúrában van a div
                if (where == "local") {
                  
                    if ($(what)) $("popupContent").set("html", $(what).get("html"));
                    innerPopup.resizeToContent();
                  
                }

                // ajax
                if (where == "remote") {
                  
                    var div = $("popupContent");
                    div.set('load', {
                      method: 'get',
                      onComplete: function() {
                         innerPopup.resizeToContent();
                      }
                    });
                    div.load(what);
                  
                }
              
            },
            
            resizeToContent: function(popupW) {
              
                // kiszámoljuk a pozícióját
                var overlayContainer = $("overlayContainer");
                var overlayContainerSize = overlayContainer.getSize();
                var documentSize = document.getSize();
                var scrollPosition = document.getScroll();

                var x = scrollPosition.y + (documentSize.y/2)-((overlayContainerSize.y)/2);
                overlayContainer.setStyle("top", x);
                
                if (popupW) {
                    overlayContainer.setStyles({
                        left: (documentSize.x/2)-(popupW/2)
                    });
                }
                
                // a close button is beigazítjuk
                $("overlayClose").setStyles({
                  "top": x-10,
                  "left": overlayContainer.getCoordinates().right-20
                });
              
            }
          
    }
    
    function loadVCard(id) {

        innerPopup.build(500);
        innerPopup.setContent("remote", url+"ajax/?action=loadVCard&id="+id);

    }