﻿/* popup */
var _foregroundElement;
var _saveTabIndexes = new Array();
var _saveDesableSelect = new Array();
var _tagWithTabIndex = new Array('A','AREA','BUTTON','INPUT','OBJECT','SELECT','TEXTAREA','IFRAME');
function initWelcomePopup(popup, panel, width, height, frameId)
{
    var popupLijst = $(popup);
    this._foregroundElement = popupLijst;
    var popup = $(panel);
    
    var bodyWidth = document.body.clientWidth;
    var bodyHeight = window.screen.height;
    var popupHeight = height;// bodyHeight - 100;
    var popupWidth = width;//bodyWidth - 200;
    var popupLeft = (bodyWidth - width) / 2;
    var popupTop = (bodyHeight - height) / 2;

    var popupLijstChildren = popupLijst.getChildren();

    popupLijstFirstChild = popupLijstChildren[0];
    popupLijstFirstChild.style.left = popupLeft + 'px';
    popupLijstFirstChild.style.top = '200px';

    var shadow = popupLijstChildren[0].getChildren()[1];

    shadow.style.width = popupWidth + 'px';
    shadow.style.height = popupHeight + 'px';
    popup.style.width = popupWidth + 'px';
    popup.style.height = popupHeight + 'px';
    
    popupLijst.style.visibility = 'visible';
    
    disableTabPopup();
    
    $(frameId).focus();
}

function hideWelcomePopup(popup)
{
    var popupLijst = document.getElementById(popup);
    var background = popupLijst.getChildren()[1];
    background.style.display = 'none';
    popupLijst.style.display = 'none';
    
    restoreTabPopup();
}

function disableTabPopup()
{
    /// <summary>
    /// Change the tab indices so we only tab through the modal popup
    /// (and hide SELECT tags in IE6)
    /// </summary>

    var i = 0;
    var tagElements;
    var tagElementsInPopUp = new Array();
    Array.clear(this._saveTabIndexes);

    //Save all popup's tag in tagElementsInPopUp
    for (var j = 0; j < this._tagWithTabIndex.length; j++) {
        tagElements = this._foregroundElement.getElementsByTagName(this._tagWithTabIndex[j]);
        for (var k = 0 ; k < tagElements.length; k++) {
            tagElementsInPopUp[i] = tagElements[k];
            i++;
        }
    }

    i = 0;
    for (var j = 0; j < this._tagWithTabIndex.length; j++) {
        tagElements = document.getElementsByTagName(this._tagWithTabIndex[j]);
        for (var k = 0 ; k < tagElements.length; k++) {
            if (Array.indexOf(tagElementsInPopUp, tagElements[k]) == -1)  {
                this._saveTabIndexes[i] = {tag: tagElements[k], index: tagElements[k].tabIndex};
                tagElements[k].tabIndex="-1";
                i++;
            }
        }
    }

    //IE6 Bug with SELECT element always showing up on top
    i = 0;
    if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) {
        //Save SELECT in PopUp
        var tagSelectInPopUp = new Array();
        for (var j = 0; j < this._tagWithTabIndex.length; j++) {
            tagElements = this._foregroundElement.getElementsByTagName('SELECT');
            for (var k = 0 ; k < tagElements.length; k++) {
                tagSelectInPopUp[i] = tagElements[k];
                i++;
            }
        }

        i = 0;
        Array.clear(this._saveDesableSelect);
        tagElements = document.getElementsByTagName('SELECT');
        for (var k = 0 ; k < tagElements.length; k++) {
            if (Array.indexOf(tagSelectInPopUp, tagElements[k]) == -1)  {
                this._saveDesableSelect[i] = {tag: tagElements[k], visib: tagElements[k].style.visibility};
                tagElements[k].style.visibility = 'hidden';
                i++;
            }
        }
    }
}

function restoreTabPopup()
{
    /// <summary>
    /// Restore the tab indices so we tab through the page like normal
    /// (and restore SELECT tags in IE6)
    /// </summary>

    for (var i = 0; i < this._saveTabIndexes.length; i++) {
        this._saveTabIndexes[i].tag.tabIndex = this._saveTabIndexes[i].index;
    }

    //IE6 Bug with SELECT element always showing up on top
    if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.version < 7)) {
        for (var k = 0 ; k < this._saveDesableSelect.length; k++) {
            this._saveDesableSelect[k].tag.style.visibility = this._saveDesableSelect[k].visib;
        }
    }
}