﻿var IE = document.all?true:false;
var url = "/_popups/";
var yPos = 0;
var xPos = 0;

var request = null;
function postBack()
{
    abortRequest();
     
    request = (!window.XMLHttpRequest) ? (ActiveXObject ? (new ActiveXObject("Microsoft.XMLHTTP")) : "") : (new XMLHttpRequest());
    request.open("GET", url, true); 
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.onreadystatechange = new Function("getResponse()");
    request.send(null);
}

var responding = false;
function getResponse()
{
    if (request.readyState == 4 && responding == false)
    {
        responding = true;
        var responseStatus = 0
        var response = "";
        try
        {
            response = request.responseText;
            responseStatus = request.status;
            response = response.replace('<?xml version="1.0" encoding="utf-8"?>', '');
        }
        catch(e)
        {
        }
        if (responseStatus == 200 || response != "")
            renderResults(response); 
	    abortRequest();
        responding = false;
    }
}

function abortRequest()
{
    if (request != null) //is there an active request?
    {
        request.abort(); //abort it
        request = null;
    }         
}

function replaceChars(entry, replace, changeTo) 
{
    temp = "" + entry; // temporary holder

    while (temp.indexOf(replace) > -1) 
    {
        pos = temp.indexOf(replace);
        temp = "" + (temp.substring(0, pos) + changeTo + temp.substring((pos + changeTo.length + replace.length - 1), temp.length));
    }

    return temp;
}

var divWidth;
var divHeight;
var inlineObj = function(width, height, path, file, params, obj)
{
    showAllSelects();
    showFlash();

    divWidth = width;
    divHeight = height;
    if (path != '') 
        url = "/" + path + "/_popups/" + file + "?" + params;
    else
        url = "/_popups/" + file + "?" + params; 
        
    getRequest(obj); 
}

var attachToObj = "";
function getRequest(obj)
{
    attachToObj = obj;
    postBack(); 
}

var div = document.createElement("div");

function renderResults(response)
{
    response = replaceChars(response, '&lt;', '<');
    response = replaceChars(response, '&gt;', '>');
    response = replaceChars(response, '&amp;', '&');
 
    if (response.length != 0)
    {
        yPos = getTop(document.getElementById(attachToObj)) - 150;
        xPos = getLeft(document.getElementById(attachToObj)) - 50;
        
        if (yPos <= 0)
            yPos = yPos + 100;
        
        hideAllSelects();    
        if (document.getElementById('flashcontent') != null)
        {
            xPos = xPos - 70;
            hideFlash();
        }
        
        div.style.cssText = "z-Index:100;left:" + xPos + "px;" + "top:" + yPos + "px" + ";position:absolute;width:" + divWidth + "px;height:" + divHeight;
        div.innerHTML = response;
        document.body.appendChild(div); 
   } 
}

function hideDiv()
{
    yPos = 0;
    xPos = 0;
     
    showAllSelects();
    showFlash();

    if (div != null)
        div.style.cssText = "display:none;";
        
    if (document.getElementById('media') != null)
        document.getElementById('media').style.display='none';
}

function hideFlash()
{
    if (document.getElementById('flashcontent') != null)
        document.getElementById('flashcontent').style.display = 'none';
}

function showFlash()
{
    if (document.getElementById('flashcontent') != null)
        document.getElementById('flashcontent').style.display = '';
}

function escKey(evt) 
{
	var evt  = (evt) ? evt : ((event) ? event : null);
	if (evt.keyCode == 27) //esc
	    hideDiv()
}
document.onkeypress = escKey;

function detectClick()
{
    if (document.getElementById(attachToObj) != null)
    { 
        thisX = event.clientX + document.body.scrollLeft;
        if (thisX < xPos || thisX > (xPos + divWidth))
            hideDiv();
    }
}
if (IE) 
    document.onclick = detectClick;
else
{
    document.onclick = function (e)
    {
        if (document.getElementById(attachToObj) != null)
        {
            thisX = e.pageX;
            if (thisX < xPos || thisX > (xPos + divWidth))
                hideDiv();
        }
    } 
}

function getLeft(obj)
{   
    var xPos = obj.offsetLeft; 
 
    var tempEl = obj.offsetParent;  
    while (tempEl != null) 
    {
          xPos += tempEl.offsetLeft; 
          tempEl = tempEl.offsetParent; 
    } 
    return xPos;
} 

function getTop(obj)
{
    var yPos = obj.offsetTop; 
    var tempEl = obj.offsetParent; 
    while (tempEl != null) 
    { 
          yPos += tempEl.offsetTop; 
          tempEl = tempEl.offsetParent; 
    } 
    return yPos;
}