/* coded by M.Pisacreta  */

var _overlayVisible = false;

//$(window).scroll(function() {
//    $('#overlayManager').css({ 'top': (35) + $(window).scrollTop() });
//    $('#overlayManager').css({ 'top': (25) + $(window).scrollTop() });
//});

/**********************************************************/
function showOverlay(_width, _height, centerWindow, pushToClose) {
    if (_overlayVisible) {
        fastHideOverlay();
    }
    if (pushToClose == undefined) {
        pushToClose = true;
    }
    var _leftPos = ($(window).width() / 2) - (_width / 2);
    var _topPos = (75) + ($(window).scrollTop());
    if (centerWindow == true) {
        _topPos = ($(window).height() / 2 - 70) + $(window).scrollTop();
    }
    $('#overlayManagerMask').css({ 'top': 0, 'left': 0 });
    $('#overlayManagerMask').css({ 'width': $(window).width() - 2, 'height': $(document).height() - 2 });
    $('#overlayManagerMask').html('');
    $('#overlayManagerMask').fadeTo(_overlayTransTime, 0.8);
    $('#overlayManager').css('top', _topPos);
    $('#overlayManager').css('left', _leftPos);
    $('#overlayManager').css('width', _width + 'px');
    if ((_height != undefined) && (_height != 0)) {
        $('#overlayManager').css('height', _height + 'px');
    }

    $('#overlayManager').fadeIn(_overlayTransTime);
    _overlayVisible = true;

    if (pushToClose) {
        $('#overlayManagerClose').css({ 'top': _topPos - 10, 'left': _leftPos - 10 });
        $('#overlayManagerClose').attr('src', _overlayHostName + _overlayCloseImage);
        setTimeout("$('#overlayManagerClose').fadeIn(_overlayTransTime);", _overlayTransTime);
        $('#overlayManagerMask').click(function() {
            hideOverlay();
        });
        $('#overlayManagerClose').click(function() {
            hideOverlay();
        });
    }

    $(window).unbind('resize');
    $(window).resize(function() {
        $('#overlayManagerMask').css({ 'width': $(window).width() - 2, 'height': $(document).height() - 2 });
    });
}
/**********************************************************/
function showCascade(top, left) {
    if (_overlayVisible) {
        fastHideOverlay();
    }
    var _topPos = top;
    var _leftPos = left;

    $('#overlayManagerClose').css({ 'top': _topPos - 10, 'left': _leftPos - 10 });
    $('#overlayManagerClose').attr('src', _overlayHostName + _overlayCloseImage);
    setTimeout("$('#overlayManagerClose').fadeIn(_overlayTransTime);", _overlayTransTime);

    $('#overlayManagerClose').click(function() {
        hideOverlay();
    });
    $('#overlayManager').css('width', '');
    $('#overlayManager').css('top', _topPos);
    $('#overlayManager').css('left', _leftPos);
    $('#overlayManager').fadeIn(_overlayTransTime);
    _overlayVisible = true;
}
/**********************************************************/
function showMessage(_width, centerWindow, idToFocus) {
    if (_overlayVisible) {
        fastHideOverlay();
    }

    var _leftPos = ($(window).width() / 2) - (_width / 2);
    var _topPos = (75) + ($(window).scrollTop());
    if (centerWindow == true) {
        _topPos = ($(window).height() / 2 - 70) + $(window).scrollTop()
    }

    $('#overlayManagerMask').css({ 'top': 0, 'left': 0 });
    $('#overlayManagerMask').css({ 'width': $(window).width() - 2, 'height': $(document).height() - 2 });
    $('#overlayManagerMask').html('');
    $('#overlayManagerMask').fadeTo(_overlayTransTime, 0.5);
    $('#overlayManagerMask').click(function() {
        hideOverlay();
        $(window).unbind('scroll');
        if (idToFocus != undefined && idToFocus != '') {
            $('#' + idToFocus).focus();
        }
    });

    $('#overlayManager').css('top', _topPos);
    $('#overlayManager').css('width', _width + 'px');
    $('#overlayManager').css('left', _leftPos);
    $('#overlayManager').css('padding', '20px 20px 20px 20px;');
    $('#overlayManager').fadeIn(_overlayTransTime);

    var _errorMessage = getOverlayText();
    if ((_overlayIconError != undefined) && (_overlayIconError != '')) {
        _errorMessage += '<img src="' + _overlayHostName + _overlayIconError + '" style="float: left; width: 64px; height: 64px;" />';
    }
    _errorMessage += '<br /><a id=\"messageViewerClose\" href=\"#\">chiudi</a>';
    setOverlayText(_errorMessage);
    $('#messageViewerClose').click(function() {
        hideOverlay();
        $(window).unbind('scroll');
        if (idToFocus != undefined && idToFocus != '') {
            $('#' + idToFocus).focus();
        }
    });
    $('#messageViewerClose').focus();

    $(window).unbind('scroll');
    $(window).scroll(function() {
        _topPos = ($(window).height() / 2 - 70) + $(window).scrollTop();
        $('#overlayManager').css({ 'top': _topPos });
    });

    $(window).unbind('resize');
    $(window).resize(function() {
        $('#overlayManagerMask').css({ 'width': $(window).width() - 2, 'height': $(document).height() - 2 });
    });

    _overlayVisible = true;
}
/**********************************************************/
function resizeOverlay(_width, _height, _top, _left, callback) {
    $('#overlayManagerClose').hide();
    $('#overlayManagerClose').css({ 'top': _top - 10, 'left': _left - 10 });

    $('#overlayManager').animate({
        width: _width,
        left: _left
    }, _overlayTransTime, function() {
        $('#overlayManager').animate({
            height: _height,
            top: _top
        }, _overlayTransTime, function() {
            callback();
            $('#overlayManagerClose').fadeIn(_overlayTransTime);
        });
    });
}
/**********************************************************/
function hideOverlay() {
    $('#overlayManagerClose').fadeOut(_overlayTransTime);
    $('#overlayManager').fadeOut(_overlayTransTime).css({ 'height': '' });
    $('#overlayManagerMask').fadeOut(_overlayTransTime);
    setTimeout('setOverlayText()', _overlayTransTime);
    _overlayVisible = false;
}
function fastHideOverlay() {
    $('#overlayManagerClose').hide();
    $('#overlayManager').hide().css({ 'height': '' });
    $('#overlayManagerMask').hide();
    setOverlayText('');
    _overlayVisible = false;
}
/**********************************************************/
function sendAjaxRequest(serviceUrl, elementID) {
    if ((elementID == undefined) || (elementID == '')) {
        elementID = 'overlayManager';
    }
    var _rnd = Math.random();
    var _serviceUrl = serviceUrl + '&rnd=' + _rnd;
    $.ajax({ url: _serviceUrl,
        success: function(data, stato) {
            setOverlayText(data, elementID);
        },
        error: function(richiesta, stato, errori) {
            setOverlayText(' error loading: ' + stato + ' / ' + errori);
        }
    });
}
function getAjaxRequest(serviceUrl, callback) {
    var _rnd = Math.random();
    var _serviceUrl = serviceUrl + '&rnd=' + _rnd;
    $.ajax({ url: _serviceUrl,
        success: function(data, stato) {
            callback(data);
        },
        error: function(richiesta, stato, errori) {
            setOverlayText(' error loading: ' + stato + ' / ' + errori);
        }
    });
}
/**********************************************************/
function ShowHideElement(div) {
    if ($('#' + div).css("display") == 'none') {
        $('#' + div).slideDown();
        setTimeout("AutoScroll('" + div + "');", _overlayTransTime * 1.5);
        for (var _i = 1; _i < arguments.length; _i++) {
            $('#' + arguments[_i]).slideUp();
        }
    }
    else {
        $('#' + div).slideUp();
        if (arguments[1] != undefined) {
            $('#' + arguments[1]).slideDown();
            setTimeout("AutoScroll('" + arguments[1] + "');", _overlayTransTime * 1.5);
            for (var _i = 2; _i < arguments.length; _i++) {
                $('#' + arguments[_i]).slideUp();
            }
        }
    }
}
function ShowElements(div) {
    $('#' + div).slideDown();
    setTimeout("AutoScroll('" + div + "');", _overlayTransTime * 1.5);
    for (var _i = 1; _i < arguments.length; _i++) {
        $('#' + arguments[_i]).slideUp();
    }
}
function AutoScroll(id) {
    var _scrollTop = $('#' + id).position().top - 100;
    $('html,body').animate({ scrollTop: _scrollTop }, _overlayTransTime * 1.5);
}
/**********************************************************/
function setOverlayText(data, elementID) {
    if ((elementID == undefined) || (elementID == '')) {
        elementID = 'overlayManager';
    }
    if ((data == undefined) || (data == '')) {
        data = '';
    }
    $('#' + elementID).html(data);
}
function getOverlayText() {
    return $('#overlayManager').html();
}
function setOverlayImage(imgUrl, imageWidht, imageHeight) {
    if (imageWidht == undefined)
    { imageWidht = 2; }
    if (imageHeight == imageHeight)
    { imageHeight = 2; }
    setOverlayText(_overlayPreloader + '<img src="' + imgUrl + '" id="image_overlay" style="display: none; cursor: pointer;" title="click to close" onmouseup="hideOverlay();" />');
    showOverlay(imageWidht, imageHeight, true);
    $('#image_overlay').load(function() { __setOverlayImage(); });
}
function __setOverlayImage() {
    var _ww = $('#image_overlay').width();
    var _hh = $('#image_overlay').height();
    if ((_ww == undefined) || (_hh == undefined)) {
        setTimeout("__setOverlayImage();", 5000);
        return;
    }
    var _left = ($(window).width() / 2) - (_ww / 2);
    var _top = ($(window).height() / 2 - (_hh / 2)) + $(window).scrollTop();
    if (_top < 10) { _top = 10; }
    $('#overlay_preloader').hide();
    resizeOverlay(_ww, _hh, _top, _left, function() {
        $('#image_overlay').fadeIn(_overlayTransTime);
    });
}
