﻿var RedirectFromOverlay = function (uri) {
    HideIFrameOverlay();
    location.href = uri;
}

var currentIFrameOverlayWindow = null;
var currentOnloadCallback = null;

var OnIFrameLoaded = function (vWindow, vForm) {
    currentIFrameOverlayWindow = vWindow;
    FitIFrameOverlay(vForm);
    if (typeof (currentOnloadCallback) == "function") {
        currentOnloadCallback(window, vForm);
    }
}

var FitIFrameOverlay = function (ele) {
    var middle = $("iFrameBorderMiddle");
    var iframe = $("overlayIFrame");

    if (!defined(ele.scrollHeight))
        return;

    var scrollHeight = ele.scrollHeight + 20;

    iframe.height = scrollHeight.toString();
    middle.style.height = scrollHeight.toString() + "px";

    if (!defined(ele.scrollWidth) || !defined(middle.scrollWidth))
        return;
    
    //attempt to center (using padding)
    var innerWidth = ele.scrollWidth;
    var baseWidth = middle.scrollWidth;
    var delta = baseWidth - innerWidth;
    if (delta / 2 > 46) {
        middle.style.paddingLeft = (delta / 2 - 23).toString() + "px";
    }
}

var ShowIFrameOverlay = function (uri, styleOptions, onloadcallback, onCloseRedirUrl) {
    currentOnloadCallback = onloadcallback;
    currentOnCloseRedirUrl = onCloseRedirUrl;

    var overlay = $("iFrameOverlay");
    var wrapper = $("iFrameWrapper");
    var middle = $("iFrameBorderMiddle");
    var iframe = $("overlayIFrame");

    var vpHeight;
    if (defined(window.innerHeight) == true)
        vpHeight = window.innerHeight;
    else if (defined(document.documentElement))
        vpHeight = document.documentElement.clientHeight;
    else
        vpHeight = document.body.clientHeight;

    overlay.style.display = "";
    overlay.setAttribute("class", "");
    // overlay.style.height = screen.availHeight.toString() + "px";

    var totalHeight = styleOptions.Height;
    var margin = (totalHeight / 2) - 20;
    if (margin > ((vpHeight / 2) - 20))
        margin = (vpHeight / 2) - 60;

    middle.style.height = styleOptions.Height.toString() + "px";
    wrapper.style.marginTop = (-1 * margin).toString() + "px";

    //attempt to center (using padding) if a width is specified
    if (defined(styleOptions) && defined(styleOptions.Width)) {
        var baseWidth = middle.scrollWidth;
        var innerWidth = styleOptions.Width;
        var delta = baseWidth - innerWidth;
        if (delta / 2 > 46 /*Minimum distance from left side is 23px*/) {
            middle.style.paddingLeft = (delta / 2 - 23).toString() + "px";
        }
    }

    iframe.height = styleOptions.Height.toString();
    if (styleOptions.Class != null) {
        // overlay.setAttribute("class", styleOptions.Class);
        // ie7 specific
        overlay.className = styleOptions.Class;
    }
    iframe.src = uri;
}

var ShowIFrameOverlay1 = function (uri, onloadcallback, onCloseRedirUrl) {
    ShowIFrameOverlay(uri, { Height: 380 });
}

var HideIFrameOverlay = function (dontReload) {
    var overlay = $("iFrameOverlay");
    overlay.style.display = "none";
    var url = window.location.href;

    if (currentIFrameOverlayWindow != null && typeof (currentIFrameOverlayWindow.ImClosing) == "function") {
        currentIFrameOverlayWindow.ImClosing();
    }

    if (typeof (dontReload) == "undefined" || dontReload == false) {
        if (defined(currentOnCloseRedirUrl)) {
            window.location.href = currentOnCloseRedirUrl;
        }
        else if (url.match('rm=1')) {
            window.location.href = url.slice(0, url.indexOf('rm=1'));
        }
        else if (url.match('pg=1')) {
            window.location.href = url.slice(0, url.indexOf('pg=1'));
        }
        else if (url.match('RepeatConference.aspx')) {
            window.location.href = 'NewConfAccept.aspx';
        }
        else if (defined(QueryString["show"])) {
            window.location.href = url + "&showComplete=1";
        }
        else {
            window.location.href = window.location.href;
        }
    }
}

var RegisterIFrameOverlayEventHandler = function (eventName, callback) {
    if (currentIFrameOverlayWindow != null && typeof (currentIFrameOverlayWindow.RegisterEventHandler) == "function") {
        currentIFrameOverlayWindow.RegisterEventHandler(eventName, callback);
    }
}
