﻿
// http://www.prototypejs.org/api/event
var escapeOverlay = {
    fx: function(e) {
        // To make script compatable with both MSIE and Firefox
        var kC = (window.event) ? event.keyCode : e.keyCode;
        var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE;

        if (kC == Esc)
            closeDialogue();
        else if (kC == Esc && window.confirm('Are you sure you wish to close the dialogue box?'))
            closeDialogue();
    }
}

// Save in cache (to be able to stopObserving() it), see Prototype API docs for more info:
// http://www.prototypejs.org/api/event
escapeOverlay.bfx = escapeOverlay.fx.bindAsEventListener(escapeOverlay);

function displayDialogue() {

    showOverlay();
    setTimeout("positionDialogue()", 300);
}

function positionDialogue() {

    var dialogue = $('dialogue');
    var padding = 100;

    var left, top;
    if (self.innerWidth != undefined) 
    {
        $('overlay').style.height = (self.innerHeight + window.pageYOffset) + 'px';
        left = (self.innerWidth / 2) + window.pageXOffset - ((dialogue.getWidth() + padding) / 2);
        top = (self.innerHeight / 2) + window.pageYOffset - ((dialogue.getHeight() + padding) / 2);
    }
    else if (document.documentElement) 
    {
        var d = document.documentElement;
        $('overlay').style.height = (d.clientWidth + d.scrollLeft) + 'px';
        left = (d.clientWidth / 2) + d.scrollLeft - ((dialogue.getWidth() + padding) / 2);
        top = (d.clientHeight / 2) + d.scrollTop - ((dialogue.getHeight() + padding) / 2);
    }

    dialogue.style.left = left + 'px';
    dialogue.style.top = top + 'px';
    dialogue.appear({ duration: 0.3 });
}

function closeDialogue() {
    hideOverlay();
    $('dialogue').hide();
}


// Shows the overlay and starts the ESCAPE event listener
function showOverlay() {
    $('overlay').show();
    //$('overlay').style.height = document.scrollHeight + 'px';
    Event.observe(document, 'keypress', escapeOverlay.bfx);
}

// Hides the overlay and stops the ESCAPE event listener
function hideOverlay() {
    $('overlay').hide();
    Event.stopObserving(document, 'keypress', escapeOverlay.bfx);
}

/* Event handler for onKeyPress for the newvalue field. Enables the use of the ENTER (RETURN)
key when adding a new entry in the dialogue box */
function enterKey(event, field) {
    if (event.which == 13 || event.keyCode == 13)
        addEntry(field.value);
}

function setDialogueMessage(message) {

    var panel = $('dialogueMessagePanel');
    panel.show();
    $('dialogueMessagePlaceHolder').innerHTML = message;
}


function dialogueContent_Load(contentID) {

    //setDialogueMessage('');
    
    var contentNode = $(contentID);
    var placeHolder = $('dialogueContentPlaceHolder');

    placeHolder.appendChild(contentNode);
    contentNode.style.display = "block";

    for (var i = 0; i < placeHolder.childNodes.length; i++) {
        if (contentNode != placeHolder.childNodes[i]) {
            placeHolder.childNodes[i].style.display = "none";
        }
    }

}



