﻿function MsgBoxYes(){
    return 1;
}

function MsgBoxNo() {
    return 2;
}

function MsgBoxCancel() {
    return 4;
}

function MsgBoxOK() {
    return 8;
}

var msgbox;
var blocker;


var clicked = 0;

//can leave callbackfunction null for no callback
function MsgBox(messageTitle,messageText,msgboxValue,callbackFunction) {
    clicked = 0;
    if (!msgbox) {
        msgbox = document.getElementById('MsgBoxDiv');
    }

    if (!msgbox) {
        return;
    }

    if (!blocker) {
        blocker = document.getElementById('MsgBoxBlocker');
    }

    msgbox.className = 'MsgBox mHidden';
    blocker.className = 'Blocker mHidden';

    var ttl = document.getElementById('MsgBoxHeader');

    if (ttl) {
        ttl.innerHTML =  messageTitle ;
    }


    var body = document.getElementById('MsgBoxBody');

    if (body) {
        body.innerHTML = messageText ;
    }

    if (msgboxValue > 0) {
        var trBtn = document.getElementById('MsgBoxButtonRow');

        if(trBtn){
            while(trBtn.childNodes.length >0){
                trBtn.removeChild (trBtn.childNodes[0]);
            }

        //draw msgbox interior here
        if ((MsgBoxOK() & msgboxValue) == MsgBoxOK()) {
            var tdBtn = document.createElement('td');
            trBtn.appendChild(tdBtn);
            var btn = document.createElement('button');
            btn.className = 'Positive';
            //btn.type = 'button';
            btn.onclick = function() { clicked = MsgBoxOK(); return false; };
            btn.innerHTML = 'OK';
            tdBtn.appendChild(btn);
        }

        if ((MsgBoxYes() & msgboxValue) == MsgBoxYes()) {
            var tdBtn = document.createElement('td');
            trBtn.appendChild(tdBtn);
            var btn = document.createElement('button');
            btn.className = 'Positive';
            //btn.type = 'button';
            btn.onclick = function() { clicked = MsgBoxYes(); return false; };
            btn.innerHTML = 'Yes';
            tdBtn.appendChild(btn);
        }

        if ((MsgBoxNo() & msgboxValue) == MsgBoxNo()) {
            var tdBtn = document.createElement('td');
            trBtn.appendChild(tdBtn);
            var btn = document.createElement('button');
            btn.className = 'Negative';
            //btn.type = 'button';
            btn.onclick = function() { clicked = MsgBoxNo(); return false; };
            btn.innerHTML = 'No';
            tdBtn.appendChild(btn);
        }

        if ((MsgBoxCancel() & msgboxValue) == MsgBoxCancel()) {
            var tdBtn = document.createElement('td');
            trBtn.appendChild(tdBtn);
            var btn = document.createElement('button');
            btn.className = 'Negative';
            //btn.type = 'button';
            btn.onclick = function() { clicked = MsgBoxCancel(); return false; };
            btn.innerHTML = 'Cancel';
            tdBtn.appendChild(btn);
        }
        }
    }
    //set msgbox positions
    var x = (screenWidth() / 2) - (msgbox.offsetWidth / 2);
    var y = screenHeight() / 4; //top quarter of the screen
    //var y = ((screenHeight() / 2) - (msgbox.offsetHeight / 2));//halfway down the screen


    msgbox.style.left = x + 'px';
    msgbox.style.top  = y + 'px';

    msgbox.className = 'MsgBox mShown';
    blocker.className = 'Blocker mShown';

    
    setTimeout(function() { checkMsgboxPress(callbackFunction); }, 250);


}

function checkMsgboxPress(callbackFunction) {

    if (clicked == 0) {
        setTimeout(function() { checkMsgboxPress(callbackFunction); }, 250);
        return;
    }
    msgbox.className = 'MsgBox mHidden';
    blocker.className = 'Blocker mHidden';
    //msgbox.innerHTML = '';
    var temClicked = clicked;
    clicked = 0;
    if (callbackFunction)
        callbackFunction(temClicked);
}

