"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); } */