function closeInfoBox(el)
{
    var fx = new Fx.Elements($(el),
    {
        duration: 250,
        onComplete: function()
        {
            //el.remove();
        }
    });
    $(el).setStyle("opacity", "0");
    /* fx.start(
    {
        '0': {
            'opacity': [0,1]
        },
        '1': {
            'opacity': [1,0]
        }
    });*/

}

function getWindowSize()
{
    var windowSize = {};

    windowSize.width = window.getWidth();
    if (windowSize.width == 0)
    {
        //for IE
        windowSize.width = document.body.offsetWidth;
    }
    windowSize.height = window.getHeight();
    if (windowSize.height == 0)
    {
        //for IE
        if (document.compatMode && document.compatMode != "BackCompat")
        {
            windowSize.height = document.documentElement.scrollHeight;
        }
        else
        {
            windowSize.height = document.body.scrollHeight;
        }
    }

    if (window.innerHeight)
    {
        windowSize.innerHeight = window.innerHeight;
    }
    else if (document.body.offsetHeight)
    {
        windowSize.innerHeight = document.body.offsetHeight;
    }
    return windowSize;

}

function showInfoBox(sourceEl, id)
{
    var pos = $(sourceEl).getCoordinates();

    var elInfoBox = new Element("div", {
        'class': 'infobox',
        'id': 'infoboxdiv'
    });

    var elInfoBoxText = new Element("div", {
        'class': 'txt'
    });

    elInfoBoxText.injectInside(elInfoBox);

    var elInfoBoxCloseBtn = new Element("div", {
        'class': 'closeBtn',
        'events':
        {
            'click': function()
            {
                closeInfoBox(elInfoBox);
            }
        } ,
        'title': 'InfoBox schließen'
    });
    elInfoBoxCloseBtn.injectInside(elInfoBox);

    var el = $(id);
    elInfoBoxText.set('html', el.innerHTML);

    var x = pos.left;
    var y = pos.top;

    elInfoBox.setStyle("display", "block");
    elInfoBox.setStyle("visibility", "visible");
    elInfoBox.setStyle("opacity", "0");
    elInfoBox.injectInside($$("body")[0]);


    // > Window.getWidth();
    var windowSize = getWindowSize();

    var includeScrolling = false;
    var possibleHeight = 0;

    if (includeScrolling)
    {
        possibleHeight = windowSize.height + Window.getScrollTop();
    }
    else
    {
        possibleHeight = windowSize.innerHeight + Window.getScrollTop();
        // Window.getHeight();
        //alert("Window.getHeight(" + Window.getHeight());
        //alert("window.height" + window.innerHeight);
        //alert("Window.getScrollTop()" + Window.getScrollTop());
    }


    var elInfoBoxHeight = elInfoBox.getSize().y;
    var elInfoBoxWidth = elInfoBox.getSize().x;
    //alert("elInfoBoxHeight=" + elInfoBoxHeight);


    if (x < 0)
    {
        x = 20;
    }
    if (x + elInfoBoxWidth > windowSize.width)
    {
        x = windowSize.width - elInfoBoxWidth - 20;
    }

    if (y + elInfoBoxHeight > possibleHeight)
    {
        y = possibleHeight - elInfoBoxHeight - 40;
    }

    elInfoBox.setStyle("top", y + "px");
    elInfoBox.setStyle("left", x + "px");

    var fx = new Fx.Elements($(elInfoBox),
    {
        duration: 250
    });
    /* fx.start(
    {
        '0': {
            'opacity': [0,1]
        },
        '1': {
            'opacity': [1,0]
        }
    });*/
    $(elInfoBox).setStyle("opacity", "1");

    return elInfoBox;
}

/**
 *
 * @param htmlFile
 * @param usePHPLoader
 * @param onCompleteCallback
 * @param config
 */
function ua_loadHTML(htmlFile, usePHPLoader, onCompleteCallback, config)
{
    if (config == undefined)
    {
        config = {};

    }
    if (usePHPLoader == undefined)
    {
        usePHPLoader = false;
    }
    else
    {
        htmlFile = "ajax_loader.php?file=" + htmlFile;
    }
    var elBody = $$("body")[0];

    var elBG = new Element("div",
    {
        'id': 'ajaxpanel_bg',
        'title':'QuickReview schließen',
        'events':
        {
            'click': function()
            {
                ua_closeHTML(elBG, elContent);
            }
        }
    });

    var elContent = new Element("div",
    {
        'id': 'ajaxpanel_content'
    });
    elContent.injectInside(elBody);

    var elLeftCloseBtn = new Element("div",
    {
        'class':'closebtnleft',
        'title':'Box schließen',
        'events':
        {
            'click':function()
            {
                ua_closeHTML();
            }
        }
    });

    var elRightCloseBtn = new Element("div",
    {
        'class':'closebtnright',
        'title':'Box schließen',
        'events':
        {
            'click':function()
            {
                ua_closeHTML();
            }
        },
        'styles':
        {
            'opacity':'1',
            'z-index':'30000'
        }
    });

    var elAjaxLoader = new Element("img",
    {
        'src': 'res/pics/ajax-loader.gif',
        'styles':
        {
            'position': 'absolute'
        },
        'height':'32',
        'width':'32'
    });

    elAjaxLoader.injectInside(elBG);
    elLeftCloseBtn.injectInside(elBG);
    elRightCloseBtn.injectInside(elBG);
    elBG.injectInside(elBody);

    //zentrieren
    var windowSize = getWindowSize();
    var ajaxX = (windowSize.width / 2 ) - elAjaxLoader.getAttribute("width") / 2;
    var ajaxY = (windowSize.innerHeight / 2 ) - elAjaxLoader.getAttribute("height") / 2;


    elAjaxLoader.setStyle("top", ajaxY);
    elAjaxLoader.setStyle("left", ajaxX);


    var myAjax = new Ajax(htmlFile,
    {
        method: 'post',
        encoding: 'ISO-8859-1',
        evalScripts: true,
        onComplete: function(e)
        {

            elContent.setHTML(e);
            elContent.setStyle("left", "-10000px");
            elContent.setStyle("opacity", "1");
            elContent.setStyle("display", "block");

            // elBG.setHTML("");
            elAjaxLoader.remove();
            elBG.setStyle("opacity", "0.8");
            elBG.setStyle("display", "block");

            //var imgW = elQRContent.getElement("div.quickreview_img").getSize().size.x;
            // alert(imgW);
            var contentWidth;
            var contentHeight;
            if (config.width != undefined)
            {
                contentWidth = config.width;
            }
            else
            {
                contentWidth = elContent.getSize().size.x;
            }
            if (config.height != undefined)
            {
                contentHeight = config.height;
            }
            else
            {
            }

            var h = elContent.getSize().size.y;

            var bgH = windowSize.height;
            if (h > bgH)
            {
                bgH = h;
            }
            elBG.setStyle("height", bgH + "px");

            window.scrollTo(0, 0);

            var x = (windowSize.width - contentWidth) / 2;
            if (x < 29) //wegen closeBtnLeft
            {
                x = 30;
            }
            //alert(x);

            elContent.setStyle("left", x + "px");
            elContent.setStyle("width", contentWidth + "px");
            if (contentHeight != undefined)
            {
                elContent.setStyle("height", imgH + "px");
            }


            var elContentCoords = elContent.getCoordinates();

            elLeftCloseBtn.setStyle("left", elContentCoords.left - 29 + "px");
            elLeftCloseBtn.setStyle("display", "block");


            elRightCloseBtn.setStyle("left", elContentCoords.right - 10 + "px");
            elRightCloseBtn.setStyle("display", "block");

            if (onCompleteCallback != undefined)
            {
                onCompleteCallback();
            }

        }
    });
    myAjax.request();

    //elBG.setHTML();

    elBG.setStyle("opacity", "0.8");
    elBG.setStyle("display", "block");

    //elBG.setStyle("height", "100%");
    elBG.setStyle("height", windowSize.height + "px");
}

function ua_closeHTML(elBG, elContent)
{
    if (elBG == undefined)
    {
        elBG = $("ajaxpanel_bg");
    }
    elBG.remove();

    if (elContent == undefined)
    {
        elContent = $("ajaxpanel_content");
    }

    elContent.remove();

}

function ua_closeHTML2()
{
    var fx1 = new Fx.Style('quickreview_content', 'opacity', {duration:500});
    //fx1.start(0);
    fx1.hide();

    var fx2 = new Fx.Style('quickreview_bg', 'opacity', {duration:500});
    //fx2.start(0);
    fx2.hide();

    //display off comments
    $("quickreview_container").setStyle("display", "none");


}