﻿function InitialisePopup()
{
    var objElement = document.createElement("div");
    objElement.id = "theLayer";
    objElement.style.position = "absolute";
    objElement.style.left = "0px";
    objElement.style.top = "0px";
    objElement.style.visibility = "hidden";
    document.body.appendChild(objElement);

    Event.observe(objElement, 'mousedown', ddInit);
    Event.observe(objElement, 'mouseup', function() {
        ddEnabled=false;
    });
}

function GetWindowWidth()
{
    if (window.innerWidth)
    {
        return window.innerWidth
    }
    else if (document.body.offsetWidth)
    {
        return document.body.offsetWidth;
    }
    else //take a guess at something reasonable
    {
        return 800;
    }
}

function GetWindowHeight()
{
    if (window.innerHeight)
    {
        return window.innerHeight
    }
    else if (document.body.offsetHeight)
    {
        return document.body.offsetHeight;
    }
    else //take a guess at something reasonable
    {
        return 600;
    }
}

function ShowPopup(strURL,intLeft,intTop)
{
    var objElement = $('theLayer');
    objElement.style.left = intLeft + "px";
    objElement.style.top = intTop + "px";
    objElement.style.visibility = "visible";

    var myAjax = new Ajax.Request(
        strURL, 
        {
            method: 'get',
            onComplete: LoadComplete
        });
}

function LoadComplete(response)
{
    if (response.status == 200) //success
    {
        var strResponse = GetContent(response.responseText);
        
        var objElement = $('theLayer');
        objElement.innerHTML = strResponse;
    }
}

function GetContent(strInput)
{
    var objRegex = /<body>([\s\S]*?)<\/body>/gmi;
    var m = objRegex.exec(strInput);
    var strInnerContent = m[1];
    
    strInnerContent = strInnerContent.replace(/\n|[\s]{2,}/gmi,"");
    strInnerContent = strInnerContent.replace(/>[\s]+</gmi,"");
    strInnerContent = strInnerContent.replace(/[\s]{2,}/gmi," ");
    
    return strInnerContent;
}

