function getWindowSize() {
    if (typeof(window.innerWidth) == 'number') {
        return Array(window.innerWidth, window.innerHeight);
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        return Array(document.documentElement.clientWidth, document.documentElement.clientHeight);
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        return Array(document.body.clientWidth, document.body.clientHeight);
    } else {
        return Array(0, 0);
    }
}

function getWindowScroll() {
    if (typeof(window.pageYOffset) == 'number') {
        return Array(window.pageXOffset, window.pageYOffset);
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        return Array(document.body.scrollLeft, document.body.scrollTop);
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        return Array(document.documentElement.scrollLeft, document.documentElement.scrollTop);
    } else {
        return Array(0, 0);
    }
}

function getAjaxObject() {
    var result = false;
    if (window.XMLHttpRequest) {
        result = new XMLHttpRequest();
        if (result.overrideMimeType) {
            result.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) {
        try {
            result = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                result = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    return result;
}

function showPopup() {
    var hideScreen = document.getElementById('hideScreen');
    if (hideScreen) {
        hideScreen.style.display = 'block';
    }

    var popupContainer = document.getElementById('popupContainer');
    if (popupContainer) {
        popupContainer.style.display = 'block';
    }

    var flashLogo = document.getElementById('flashLogo');
    if (flashLogo) {
       // flashLogo.style.visibility = 'hidden';
    }

    updatePopup();
}

function hidePopup() {
    var hideScreen = document.getElementById('hideScreen');
    if (hideScreen) {
        hideScreen.style.display = 'none';
    }

    var popupContainer = document.getElementById('popupContainer');
    if (popupContainer) {
        popupContainer.style.display = 'none';
    }

    var flashLogo = document.getElementById('flashLogo');
    if (flashLogo) {
        //flashLogo.style.visibility = 'visible';
    }
}

function updatePopup() {
    var hideScreen = document.getElementById('hideScreen');
    if (hideScreen) {
        var size  = getWindowSize();
        var main  = document.getElementById('body');
        var sizeX = (main.offsetWidth  > size[0] ? main.offsetWidth  : size[0]);
        var sizeY = (main.offsetHeight > size[1] ? main.offsetHeight : size[1]);

        hideScreen.style.width   = '100%';
        hideScreen.style.height  = sizeY + 'px';
    }

    var popupContainer = document.getElementById('popupContainer');
    if (popupContainer) {
        var siz = getWindowSize();
        var scr = getWindowScroll();
        var lft = ( (siz[0] / 2) - (popupContainer.clientWidth  / 2) + scr[0] );
        var top = ( (siz[1] / 2) - (popupContainer.clientHeight / 2) + scr[1] );
        popupContainer.style.left = ( lft > 0 ? lft : '0' ) + 'px';
        popupContainer.style.top  = ( top > 0 ? top : '0' ) + 'px';
    }
}

function popupFieldActive(sender, active) {
    if (sender.className != 'disable') {
        sender.className = (active ? 'active' : '');
    }
}

function popupFormEnable(form, enable, clear) {
    var tag = Array('input', 'select', 'textarea');
    for (var i = 0, j = tag.length; i < j; i++) {
        var tab = form.getElementsByTagName(tag[i])
        for (var x = 0, y = tab.length; x < y; x++) {
            if (enable) {
                tab[x].className = '';
                tab[x].removeAttribute('readonly');
                if ((clear) && (tab[x].type != 'hidden')) tab[x].value = '';
            } else {
                tab[x].className = 'disable';
                tab[x].setAttribute('readonly', true);
            }
        }
    }
    var tab = form.getElementsByTagName('a')
    for (var x = 0, y = tab.length; x < y; x++) {
        if (tab[x].className == 'popupButton') {
            if (enable) {
                tab[x].style.visibility = 'visible';
            } else {
                tab[x].style.visibility = 'hidden';
            }
        }
    }

}

function getFormValues(form) {
    var out = '';
    var tag = Array('input', 'select', 'textarea');
    for (var i = 0, j = tag.length; i < j; i++) {
        var tab = form.getElementsByTagName(tag[i])
        for (var x = 0, y = tab.length; x < y; x++) {
            out += '&' + tab[x].name + '=' + encodeURI(tab[x].value);
        }
    }
    return (out.length > 0 ? out.substr(1) : '');
}

function setFormMessage(message) {
    var popupMessage = document.getElementById('popupFormMessage');
    if (popupMessage) {
        if (message) {
            popupMessage.innerHTML = message;
            popupMessage.style.display = 'block';
        } else {
            popupMessage.style.display = 'none';
        }
        updatePopup();
    }
}

function popupFormSubmit(form) {
    popupFormEnable(form, false);
    var parm = getFormValues(form);
    var ajax = getAjaxObject();
    if (ajax) {
        setFormMessage('Wysyłanie formularza... proszę czekać...');
        ajax.onreadystatechange = function() {
            if (ajax.readyState == 4) {
                if (ajax.status == 200) {
                    var msg = ajax.responseText.substr(3, ajax.responseText.length - 7);
                    if (msg.length > 1) {
                        setFormMessage(msg);
                        popupFormEnable(form, true, false);
                    } else {
                        hidePopup();
                        setFormMessage('');
                        popupFormEnable(form, true, true);
                    //window.location.replace('?dziekujemy'+(form.a ? '='+form.a.value : ''));
                    }
                } else {
                    setFormMessage('Awaria systemu!');
                    popupFormEnable(form, true, false);
                }
            }
        };
        ajax.open('POST', form.action + '?rand=' + new Date(), true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
        ajax.setRequestHeader("Content-Length", parm.length);
        ajax.setRequestHeader("Connection", "close");
        ajax.send(parm);
    } else {
        setFormMessage('Błąd kontrolki AJAX!');
    }
}
