"use strict";
//selects the according message box type and uses a corresponding msg_box function
async function msg_box(type, title, txt) {
var r = Math.floor(Math.random() * 900000) + 100000;
var storage_con = null;
var return_data = null;
key_press_close_prompt(); //this function closes any open prompt box when user hits return key
remove_temp_memory(); //this removes the temporary memory of the previous message box response
storage_con = document.getElementById("session_storage_container");
r = "remembered_item_" + r;
if (type === "" || type === null || type === undefined || type === "0") {
show_msg_box("Blank Message Box", "[blank]", r);
return_data = await user_returns(r);
//return r;
return return_data;
}
else if (type === "1") {
show_yes_no_msg_box(title, txt, r);
return_data = await user_returns(r);
//return r;
return return_data;
}
else if (type === "2") {
show_ok_cancel_msg_box(title, txt, r);
return_data = await user_returns(r);
//console.log("OUTPUT: " + await get_msg_box_output());
//console.log("DATA: " + await return_data);
return return_data;
}
else if (type === "3") {
alert_msg_box(title, txt, r);
return_data = await user_returns(r);
//return r;
return return_data;
}
else if (type === "4") {
}
else if (type === "5") {
}
remove_temp_memory(); //this removes the temporary memory of the previous message box response
}
function key_press_close_prompt() {
var key_code = null;
var e_type = null;
self.addEventListener("keyup", function () {
e_type = event.type;
//alert(e_type);
if (e_type === "keyup") {
key_code = event.keyCode;
if (key_code === 13) {
msg_box_return();
}
}
});
}
function show_yes_no_msg_box(title, txt_contents, id) {
var b_yes = null;
var b_no = null;
var msg_box = null;
var wall = null;
var content_box = null;
var button_box = null;
//alert(title);
var r_id = null;
var b_array = [];
r_id = id;
wall = place_msg_box_wall();
document.body.appendChild(wall);
wall.style.zIndex = getTopElemZIndex() + 1;
msg_box = make_msg_box(title);
document.body.appendChild(msg_box);
msg_box.style.position = "absolute";
msg_box.style.zIndex = getTopElemZIndex() + 1;
b_yes = make_new_msg_box_button("Yes");
b_no = make_new_msg_box_button("No");
b_array = [b_yes, b_no];
b_array = add_event_listener_buttons(b_array, r_id);
//b_array[0] = add_event_listener_buttons(b_array[0].getAttribute("id"), b_array[0].innerText);
//b_array[1] = add_event_listener_buttons(b_array[1].getAttribute("id"), b_array[1].innerText);
content_box = document.getElementById("msg_box_content");
content_box.innerHTML = "
" + escape_string_msg_box(txt_contents) + "
";
//b_array = add_event_listener_buttons(b_array);
button_box = encapsulate_buttons(b_array);
content_box.appendChild(button_box);
prevent_drag_select(content_box);
}
function show_ok_cancel_msg_box(title, txt_contents, id) {
var b_yes = null;
var b_no = null;
var msg_box = null;
var wall = null;
var content_box = null;
var button_box = null;
//alert(title);
var r_id = null;
var b_array = [];
r_id = id;
wall = place_msg_box_wall();
document.body.appendChild(wall);
wall.style.zIndex = getTopElemZIndex() + 1;
msg_box = make_msg_box(title);
document.body.appendChild(msg_box);
msg_box.style.position = "absolute";
msg_box.style.zIndex = getTopElemZIndex() + 1;
b_ok = make_new_msg_box_button("OK");
b_cancel = make_new_msg_box_button("Cancel");
content_box = document.getElementById("msg_box_content");
content_box.innerHTML = "" + escape_string_msg_box(txt_contents) + "
";
b_array = [b_ok, b_cancel];
b_array = add_event_listener_buttons(b_array, r_id);
button_box = encapsulate_buttons(b_array);
content_box.appendChild(button_box);
prevent_drag_select(msg_box);
}
function alert_msg_box(title, txt_contents, id) {
var b_yes = null;
var b_no = null;
var msg_box = null;
var wall = null;
var content_box = null;
var button_box = null;
var r_id = null;
var b_array = [];
r_id = id;
wall = place_msg_box_wall();
document.body.appendChild(wall);
wall.style.zIndex = getTopElemZIndex() + 1;
msg_box = make_msg_box(title);
document.body.appendChild(msg_box);
msg_box.style.position = "absolute";
msg_box.style.zIndex = getTopElemZIndex() + 1;
b_ok = make_new_msg_box_button("OK");
b_array.push(b_ok);
b_array = add_event_listener_buttons(b_array, r_id);
content_box = document.getElementById("msg_box_content");
content_box.innerHTML = "" + escape_string_msg_box(txt_contents) + "
";
button_box = encapsulate_buttons(b_array);
content_box.appendChild(button_box);
prevent_drag_select(msg_box);
}
function show_msg_box(title, msg, id_val) {
var b = null;
var wall = null;
var button = null;
var content_box = null;
var header = null;
wall = place_msg_box_wall();
document.body.appendChild(wall);
wall.style.zIndex = getTopElemZIndex() + 1;
b = make_msg_box(title);
b.setAttribute("id", "msg_box_id");
document.body.appendChild(b);
b.style.position = "absolute";
b.style.zIndex = getTopElemZIndex() + 1;
button = input_msg_box_buttons();
content_box = document.getElementById("msg_box_content");
content_box.innerHTML = "" + msg + "
";
//content_box.innerHTML = button.outerHTML;
content_box.appendChild(button);
button.parentNode.style.verticalAlign = "bottom"; //parseFloat(content_box.offsetHeight / 2) - parseFloat(button.offsetHeight / 2) + "px";
button.parentNode.style.textAlign = "center"; //parseFloat(parseFloat(content_box.style.width) / 2) - parseFloat(button.offsetWidth / 2) + "px";
mouse_over_icons();
prevent_drag_select(b);
}
function mouse_over_icons() {
var td_close_box = null;
var td_msg_box_info = null;
td_close_box = document.getElementById("msg_box_close");
td_msg_box_info = document.getElementById("msg_box_info");
td_close_box.addEventListener("mouseover", function () { td_close_box.style.backgroundColor = "none" });
td_close_box.addEventListener("mouseout", function () { td_close_box.style.background = "none" });
td_msg_box_info.addEventListener("mouseover", function () { td_msg_box_info.style.backgroundColor = "none" });
td_msg_box_info.addEventListener("mouseout", function () { td_msg_box_info.style.background = "none" });
}
function make_msg_box(title) {
var msg_box = null;
var tbl = null;
msg_box = document.createElement("div");
msg_box.setAttribute("id", "msg_box_id");
msg_box.style.backgroundColor = "#bfbfbf";
msg_box.style.borderStyle = "solid";
msg_box.style.borderWidth = "3px";
msg_box.style.borderColor = "#000000";
msg_box.style.borderTopColor = "#ffffff";
msg_box.style.borderLeftColor = "#cccccc";
msg_box.style.borderRightColor = "#222222";
msg_box.style.borderBottomColor = "#000000";
msg_box.style.borderRadius = "5px";
msg_box.style.fontFamily = "Arial, sans-serif, Helvetica, Verdana";
msg_box.style.color = "#222222";
msg_box.style.padding = "0";
msg_box.style.margin = "0";
msg_box.style.display = "absolute";
msg_box.style.width = "294px";
msg_box.style.height = "170px";
msg_box.style.top = parseFloat(self.innerHeight / 2) - parseFloat(164 / 2) + "px";
msg_box.style.left = parseFloat(self.innerWidth / 2) - parseFloat(302 / 2) + "px";
msg_box.style.opacity = 1.0;
msg_box.style.boxShadow = "20px 20px 12px 12px rgba(0,0,0,0.4)";
//alert(title);
tbl = make_msg_box_table(title);
msg_box.innerHTML = tbl.outerHTML;
return msg_box;
}
function make_msg_box_table(title) {
var img_0000 = null;
var img_0001 = null;
var img_0002 = null;
var img_0003 = null;
var img_0004 = null;
var img_0005 = null;
//create table objects
var tbl_0000 = null;
tbl_0000 = document.createElement("table");
var tr_0000 = null;
tr_0000 = document.createElement("tr");
var td_0000 = null;
td_0000 = document.createElement("td");
var td_0001 = null;
td_0001 = document.createElement("td");
var td_0002 = null;
td_0002 = document.createElement("td");
var tr_0001 = null;
tr_0001 = document.createElement("tr");
var td_0003 = null;
td_0003 = document.createElement("td");
var tr_0002 = null;
tr_0002 = document.createElement("tr");
var td_0004 = null;
td_0004 = document.createElement("td");
var td_0005 = null;
td_0005 = document.createElement("td");
//Append the objects together
tbl_0000.appendChild(tr_0000);
tr_0000.appendChild(td_0000);
tr_0000.appendChild(td_0001);
tr_0000.appendChild(td_0002);
tbl_0000.appendChild(tr_0001);
tr_0001.appendChild(td_0003);
tbl_0000.appendChild(tr_0002);
tr_0002.appendChild(td_0004);
tr_0002.appendChild(td_0005);
//set td cell sizes
td_0000.style.width = "19px";
td_0000.style.height = "19px";
td_0001.style.width = "100%";
td_0001.style.height = "19px";
td_0002.style.width = "19px";
td_0002.style.height = "19px";
td_0003.style.width = "300px";
td_0003.style.height = "90px";
td_0004.style.width = "auto";
td_0004.style.height = "19px";
td_0005.style.width = "19px";
td_0005.style.height = "19px";
//set up the rowspans and colspans
td_0003.setAttribute("colspan", "3");
td_0004.setAttribute("colspan", "2");
//set the border to be visible for testing
tbl_0000.setAttribute("border", "0");
tbl_0000.setAttribute("cellspacing", "2");
tbl_0000.setAttribute("cellpadding", "3");
tbl_0000.style.borderStyle = "solid";
tbl_0000.style.borderWidth = "1px";
tbl_0000.style.borderColor = "#000";
tbl_0000.style.borderRadius = "5px";
tbl_0000.style.borderBottomStyle = "none";
//insert blank spacers to size the table cells correctly
img_0000 = new Image();
img_0000.src = "/chromosphere/images/ui/icons/alert.png";
img_0000.style.width = "19px";
img_0000.style.height = "19px";
td_0000.appendChild(img_0000);
td_0000.setAttribute("id", "msg_box_alert");
img_0001 = new Image();
img_0001.src = "/chromosphere/images/blank.gif";;
img_0001.style.width = "100%";
img_0001.style.height = "19px";
td_0001.appendChild(img_0001);
td_0001.setAttribute("id", "msg_box_title");
td_0001.style.padding = "0";
td_0001.style.margin = "0";
td_0001.style.borderRadius = "2px";
td_0001.innerHTML = "" + escape_string_msg_box(title) + "
";
img_0002 = new Image();
img_0002.src = "/chromosphere/images/ui/icons/close_19x19.png";
img_0002.style.width = "19px";
img_0002.style.height = "19px";
td_0002.appendChild(img_0002);
td_0002.setAttribute("id", "msg_box_close");
td_0002.addEventListener("click", function () {
});
td_0003.id = "msg_box_content";
td_0003.style.width = "291px";
td_0003.style.height = "98px";
//alert("r00t n0de");
//remove_msg_box();
img_0004 = new Image();
img_0004.src = "/chromosphere/images/blank.gif";;
img_0004.style.width = "100%";
img_0004.style.height = "19px";
td_0004.appendChild(img_0004);
img_0005 = new Image();
img_0005.src = "/chromosphere/images/ui/icons/info_icon.png";
img_0005.style.width = "19px";
img_0005.style.height = "19px";
img_0005.style.marginTop = "3px";
td_0005.appendChild(img_0005);
td_0005.setAttribute("id", "msg_box_info");
//ship the table out
return tbl_0000;
}
function remove_msg_box() {
var box = null;
box = document.getElementById("msg_box_id");
if (box !== null) {
box.style.display = "none";
box.parentNode.removeChild(box);
}
remove_temp_memory();
}
function place_msg_box_wall() {
var img = null;
img = document.getElementById("message_prompt_blocking_wall");
if (img === null) {
img_wall = new Image();
img_wall.src = "/chromosphere/images/blank.gif";
img_wall.id = "message_prompt_blocking_wall";
img_wall.style.position = "absolute";
img_wall.style.left = "0";
img_wall.style.top = "0";
img_wall.style.width = "100%"; //self.innerWidth + "px";
img_wall.style.height = "100%"; //self.innerHeight + "px";
img_wall.style.opacity = 0.3;
img_wall.style.backgroundColor = "#000";
img_wall.style.zIndex = getTopElemZIndex() + 1;
img = img_wall;
}
return img;
}
function remove_msg_box_wall() {
var img = null;
img = document.getElementById("message_prompt_blocking_wall");
if (img !== null) {
img.style.display = "none";
img.parentNode.removeChild(img);
}
}
function input_msg_box_buttons() {
var outer_div = null;
var b = null;
outer_div = document.createElement("div");
outer_div.style.borderRadius = "4px";
outer_div.style.borderStyle = "solid";
outer_div.style.borderWidth = "1px";
outer_div.style.borderColor = "#222";
outer_div.style.margin = "auto";
b = document.createElement("button");
b.style.width = "70px";
b.style.height = "30px";
b.style.margin = "0";
b.innerHTML = "OK
";
b.style.boxShadow = "3px 3px 5px 2px rgba(0,0,0,0.4)";
b.style.backgroundColor = "#bfbfbf";
b.style.borderRadius = "4px";
b.style.borderStyle = "solid";
b.style.borderWidth = "2px";
b.style.borderColor = "#000000";
b.style.borderTopColor = "#eeeeee";
b.style.borderLeftColor = "#bbbbbb";
b.style.borderRightColor = "#444444";
b.style.borderBottomColor = "#222222";
outer_div.appendChild(b);
outer_div.style.width = parseFloat(b.style.width) + "px";
outer_div.style.height = parseFloat(b.style.height) + "px";
b.addEventListener("mousedown", function () {
b.style.boxShadow = "none";
});
b.addEventListener("mouseup", function () {
b.style.boxShadow = "initial";
});
b.addEventListener("click", function () {
msg_box_return();
});
return outer_div;
}
function place_outer_button_border(b) {
var btn = null;
var outer_div = null;
btn = b;
outer_div = document.createElement("div");
outer_div.style.borderRadius = "4px";
outer_div.style.borderStyle = "solid";
outer_div.style.borderWidth = "1px";
outer_div.style.borderColor = "#222";
outer_div.style.margin = "0";
outer_div.style.padding = "6px";
outer_div.style.paddingRight = "0";
outer_div.style.paddingLeft = "0";
outer_div.appendChild(btn);
outer_div.style.width = parseFloat(btn.offsetWidth) + "px";
outer_div.style.height = parseFloat(btn.style.height) + "px";
return outer_div;
}
function add_event_listener_buttons(b_array, r) {
var i = null;
var obj = null;
var new_array = [];
var return_data = null;
var bId = null;
for (i = 0; i < b_array.length; i++) {
obj = b_array[i];
bId = r;
return_data = obj.innerText;
if (return_data !== null) {
obj.setAttribute("onmousedown", "this.childNodes[0].style.boxShadow='none';remember('" + bId + "','" + return_data + "');");
obj.setAttribute("onmouseup", "this.childNodes[0].style.backgroundColor='3px 3px 5px 2px rgba(0,0,0,0.4)';msg_box_return();");
new_array.push(obj);
}
}
return new_array;
}
function encapsulate_buttons(button_array) {
var d = null;
var i = null;
var b = null;
d = document.createElement("div");
d.style.borderStyle = "none";
d.style.borderWidth = "1px";
d.style.borderColor = "#0f0";
d.setAttribute("align", "center");
for (i = 0; i < button_array.length; i++) {
b = button_array[i];
b.style.display = "inline";
d.innerHTML = d.innerHTML + " " + b.outerHTML;
}
return d;
}
function make_new_msg_box_button(txt) {
var outer_div = null;
var b = null;
outer_div = document.createElement("div");
outer_div.style.borderRadius = "4px";
outer_div.style.borderStyle = "solid";
outer_div.style.borderWidth = "1px";
outer_div.style.borderColor = "#222";
outer_div.style.margin = "0";
outer_div.style.paddingTop = "5px";
outer_div.style.paddingBottom = "7px";
outer_div.style.paddingLeft = "0";
outer_div.style.paddingRight = "0";
b = document.createElement("button");
b.style.width = "70px";
b.style.height = "30px";
b.style.margin = "0";
b.style.padding = "0";
b.innerHTML = "" + escape_string_msg_box(txt) + "
";
b.style.boxShadow = "3px 3px 4px 2px rgba(0,0,0,0.3)";
b.style.backgroundColor = "#bfbfbf";
b.style.borderRadius = "4px";
b.style.borderStyle = "solid";
b.style.borderWidth = "2px";
b.style.borderColor = "#000000";
b.style.borderTopColor = "#eeeeee";
b.style.borderLeftColor = "#bbbbbb";
b.style.borderRightColor = "#444444";
b.style.borderBottomColor = "#222222";
b.style.opacity = 1.0;
outer_div.appendChild(b);
return outer_div;
}
function escape_string_msg_box(txt) {
var t = null;
if (txt !== null && txt !== "" && txt !== undefined) {
t = txt.replace("'", "&lsquot;").replace('"', """).replace("<", "<").replace(">", ">").replace("{", "{").replace("}", "}").replace("(", "(").replace(")", ")");
return t;
}
else {
return "";
}
}
function msg_box_return() {
remove_msg_box();
remove_msg_box_wall();
}
function return_msg_box_data(mem_addr) {
var val = null;
var mem_obj = null;
var return_val = null;
mem_obj = document.getElementById(mem_addr);
if (mem_obj !== null) {
return_val = mem_obj.getAttribute("data-stored_data");
if (return_val !== null && return_val !== "") {
return return_val;
}
else {
return null;
}
}
else {
return null;
}
}
/*
function msg_box_return_value_obj(r, data_val) {
remember(r, data_val);
}
*/
function user_returns(r) {
//global_msg_box_return_timer = setInterval("get_return('" + r + "');", 100);
var data = null;
var output = null;
var o = null;
var d = null;
d = document.getElementById("temp_memory");
if (d !== null) {
d.parentNode.removeChild(d);
d = null;
}
else {
//continue
}
d = document.createElement("div");
d.setAttribute("id", "temp_memory");
document.body.appendChild(d);
d = document.getElementById("temp_memory");
var getReturn = function () {
return (function () {
return get_return(r);
})(r);
}
global_tId15 = setInterval(function () {
data = getReturn();
if (data !== null) {
if (typeof data === "string") {
if (data.length > 0) {
clearInterval(global_tId15);
store_msg_box_output(data);
return data;
}
}
}
}, 200);
//alert(get_msg_box_output());
return d.innerText;
}
function store_msg_box_output(t) {
var d = null;
d = document.getElementById("temp_memory");
if (d !== null) {
d.innerText = t;
d.style.display = "none";
//return d;
}
else {
d = document.createElement("div");
d.setAttribute("id", "temp_memory");
document.body.appendChild(d);
d.style.display = "none";
d.innerText = t;
//return d;
}
}
function get_msg_box_output() {
var d = null;
var txt = null;
d = document.getElementById("temp_memory");
if (d !== null) {
d.style.display = "none";
txt = d.innerText;
d.innerText = "";
d.parentNode.removeChild(d);
return txt;
}
else {
d = document.createElement("div");
d.setAttribute("id", "temp_memory");
document.body.appendChild(d);
d.style.display = "none";
txt = d.innerText;
d.innerText = "";
d.parentNode.removeChild(d);
return txt;
}
}
function remove_temp_memory() {
clearInterval(global_tId15);
var d = document.getElementById("temp_memory");
if (d !== null) {
d.style.display = "none";
d.innerText = "";
d.parentNode.removeChild(d);
d = null;
}
}
/*
var data = null;
var rtn = null;
//var caller = null;
//caller = user_returns.caller.name;
global_msg_box_return_timer = setInterval(function() {
data = get_return(r);
if (data !== null) {
if (typeof data === "string") {
if (data.length > 0) {
rtn = data;
rtn = return_msg_box_data(r);
var cow = function () {
return (function () { return rtn })();
}
}
}
}
}, 100);
console.log(rtn);
*/
//}
function get_return(r) {
var o = null;
var val = null;
console.log("return value: " + r);
o = document.getElementById(r);
if (o !== null) {
val = o.getAttribute("data-stored_data");
if (val !== null && val !== "") {
console.log("recalling: '" + val + "' from client memory");
//clearInterval(global_msg_box_return_timer);
clearInterval(global_tId15);
return val;
}
}
}
function alert_something(q) {
//alert(q);
}
/* I'm putting this function here for testing the msgbox feature */
function example_msg_box() {
make_promise();
// var memory_addr = msg_box("2", "Did this box just pop up?", "Can you tell me?");
// console.log(memory_addr);
//is_remembered = remember("remembered_item_" + random, user_returns);
//alert(user_returns);
//console.log("OUTPUT: " + memory_addr);
//memory_item = document.getElementById(memory_addr);
//alert(memory_item);
//console.log(memory_item);
//console.log("Memory Address: " + is_remembered);
//console.log("Memory Location ID: remembered_item_" + random);
//global_standby_timer = , 100);
//alert(user_returns);
//return user_returns;
}
function alert_return_value(d) {
//console.log("c0w! MEeeuuu!");
//alert(d);
}
/*
function example_make_promise(mem_addr) {
var promise = new Promise(function (resolve, reject) {
// do thing, then…
if (5===5) {
resolve("See, it worked!");
}
else {
reject(Error("It broke"));
}
});
}
*/
function make_promise() {
var rtn = null;
var promise = new Promise(function (resolve, reject) {
// do thing, then…
rtn = msg_box("2", "Did this box just pop up?", "Can you tell me?");
if (rtn !== null) {
resolve();
}
else {
reject(Error("It broke"));
}
});
}
/*
function standby_for_input(elem_id) {
var elem = null;
elem = document.getElementById(elem_id);
if (elem !== null) {
//stop. The object now exists
//clearTimeout(global_standby_timer);
//alert(elem);
//return elem;
}
else {
//keep going. The object does not exist yet
}
//clearTimeout(global_standby_timer);
}
*/