﻿function ShowLoadingBar(validationGroup) {

    if (Page_ClientValidate(validationGroup))
        ShowLoadingBarNoValidate()
}

function ShowLoadingBarNoValidate() {
    popUpThePopup("pageLoadingPopup", 200, 150);
}

function ShowRequestRolePopup() {  
    popUpThePopup("popupLayer", 209, 150);
}

function ShowImageGalleryPopup() {
    popUpThePopup("popupLayer", 350, 250);
}

var globalUrl;
function ShowConfirmationPopup(url) {

    globalUrl = url;
    
    popUpThePopup("popupLayer", 209, 150);
}

function Delete() {
    if (globalUrl != "")
        document.location.href = globalUrl;
}

function BeforePostBack(itemId) {

    if (document.getElementById("itemIdHolder")) {
        document.getElementById("itemIdHolder").innerHTML = itemId;
        popUpThePopup("popupLayer", 209, 150);
    }
    else
        alert("ConfirmControl is missing");
}

function popUpThePopup(popupId, xDiff, yDiff) {

    var objOverlay = document.getElementById("popupOverlay");
    var objPopup = document.getElementById(popupId);

    if (!objOverlay) {
        alert("You must add the UserControl - 'LoadingBarControl' - to the page")
        return;
    }    

    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();

    objOverlay.style.height = (arrayPageSize[1] + 'px');

    setOpacity('popupOverlay', 3, "up");
    

    objOverlay.style.display = 'block';

    objPopup.style.display = 'block';
    objPopup.style.position = 'absolute';
    objPopup.style.zIndex = 100;

    objPopup.style.left = (arrayPageSize[2] / 2 - xDiff) + "px";
    objPopup.style.top = (arrayPageSize[3] / 2 - yDiff + arrayPageScroll[1]) + "px";

}

function closePopup(popupId) {
    var objOverlay = document.getElementById("popupOverlay");
    var objPopup = document.getElementById(popupId);

    setOpacity('popupOverlay', 5, "down");
    
    //objOverlay.style.display = 'none';
    objPopup.style.display = 'none';
}

function setOpacity(objId, value, mode) {
    obj = document.getElementById(objId);
    obj.style.opacity = value / 10;
    obj.style.filter = 'alpha(opacity=' + value * 10 + ')';
    
    if (value < 7 && mode == "up")
        setTimeout("setOpacity('" + objId + "', " + (value + 1) + ", 'up')", 10);
    else if (value > 0 && mode == "down")
        setTimeout("setOpacity('" + objId + "', " + (value - 1) + ", 'down')", 10);
    else if (value <= 0)
        obj.style.display = 'none';
}


//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll() {

    var yScroll;

    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
        yScroll = document.documentElement.scrollTop;
    } else if (document.body) {// all other Explorers
        yScroll = document.body.scrollTop;
    }

    arrayPageScroll = new Array('', yScroll)
    return arrayPageScroll;
}

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize() {

    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }

    var windowWidth, windowHeight;
    if (self.innerHeight) {	// all except Explorer
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }

    // for small pages with total height less then height of the viewport
    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }

    // for small pages with total width less then width of the viewport
    if (xScroll < windowWidth) {
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }


    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)
    return arrayPageSize;
}

