/*
 * This javascript file requires the JQuery library to be preloaded
 */
var aaEventMaxPercentWidth = 0.6;
var aaEventMinPercentWidth = 0.3;
var aaEventMaxPercentHeight = 0.99;
$(function() {
    var coverLayer = $('<div id="opaque-cover-layer"></div>');
    var eventWindow = $('<div id="aa-event-window"></div>');
    var buttonBar = $('<div id="aa-event-button-row"></div>');
    eventWindow.append('<div id="aa-event-title"></div>');
    eventWindow.append('<div id="aa-event-data"></div>');
    eventWindow.append('<div style="margin: 10px 5px; border-top: 1px solid #616561; border-bottom: 1px solid #DFDBDF;"></div>');
    eventWindow.append(buttonBar);
    $('body').append(coverLayer).append(eventWindow);
    setAAEventDefaultCloseButton();
});
function setAAEventTitle(str) {
    document.getElementById('aa-event-title').innerHTML = str;
}
function setAAEventData(str) {
    document.getElementById('aa-event-data').innerHTML = str;
}
function showAAEvent() {
    var ew = document.getElementById('aa-event-window');
    document.getElementById('opaque-cover-layer').style.display = 'block';
    ew.style.width = 'auto';
    ew.style.display = 'block';
    setButtonSizes();
    enforceAAEventSize(ew);
    center(ew);
    $('#aa-event-close-button').focus();
}
function setButtonSizes() {
    var widest = 0;
    $('input', $('#aa-event-button-row')).each(function () {
        if (this.offsetWidth > widest) widest = this.offsetWidth;
    });
    $('input', $('#aa-event-button-row')).each(function () {
        if (this.offsetWidth < widest) this.style.width = widest + 'px';
    });
}
function closeAAEvent() {
    document.getElementById('opaque-cover-layer').style.display = 'none';
    document.getElementById('aa-event-window').style.width = '';
    document.getElementById('aa-event-window').style.display = 'none';
    document.getElementById('aa-event-title').innerHTML = '';
    document.getElementById('aa-event-data').innerHTML = '';
    setAAEventDefaultCloseButton();
}
function setAAEventDefaultCloseButton() {
    document.getElementById('aa-event-button-row').innerHTML = '';
    var closeButton = $('<input id="aa-event-close-button" type="button" onclick="closeAAEvent();" value="Ok" />');
    addAAEventButton(closeButton, null);
}
function setAAEventCloseButtonOnclick(evt) {
    $('#aa-event-close-button').unbind('click').click(evt);
}
/**
 * Append (or prepend) a button to the button section of the popup
 * button = the JQuery button element, this button needs to contain a unique id
 * doPrepend = boolean, true to prepend, false to append
 */
function addAAEventButton(button, doPrepend) {
    if ($('#aa-event-button-row > #' + button.attr('id')).length > 0) return;
    if (doPrepend == null) {
        $('#aa-event-button-row').append(button);
        return;
    }
    if (doPrepend) {
        $('#aa-event-button-row').prepend('&nbsp;').prepend(button);
    } else {
        $('#aa-event-button-row').append('&nbsp;').append(button);
    }
}
function removeAAEventButton(id) {
    $('#aa-event-button-row > #' + id).remove();
}
function enforceAAEventSize(e) {
    var w = $(window).width();
    var h = $(window).height();
    if (e.offsetWidth > aaEventMaxPercentWidth * w) {
        e.style.width = (aaEventMaxPercentWidth * 100) + '%';
    } else if (e.offsetWidth < aaEventMinPercentWidth * w) {
        e.style.width = (aaEventMinPercentWidth * 100) + '%';
    }
    if (e.offsetHeight > aaEventMaxPercentHeight * h) {
        e.style.height = (aaEventMaxPercentHeight * 100) + '%';
        document.getElementById('aa-event-data').style.overflow = 'auto';
    }
}
function center(e) {
    e.style.top = ($(window).height() - e.offsetHeight) / 2 + 'px';
    e.style.left = ($(window).width() - e.offsetWidth) / 2 + 'px';
}

