Download Code Play Here Download PDF
<!-- Dedicated to God the Father -->
<!-- All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024 -->
<!-- https://github.com/ChristopherTopalian -->
<!-- https://github.com/ChristopherAndrewTopalian -->
<!-- https://github.com/ChristopherTopalian/TopalianGameEngineDataNavigator -->
<!-- Topalian_Game_Engine_Data_Navigator_(Online_Version).html -->
<!-- Version 026 - (2024-09-12) -->
<html>
<head>
<title> Topalian Game Engine Data Navigator </title>
<style>
html, body
{
background-color: rgb(0, 0, 0);
}
/* style001.css */
hr
{
margin-top: 4px;
margin-bottom: 4px;
border: 0 none;
padding-top: 0.5px;
padding-bottom: 0.5px;
background-color: rgb(255, 255, 255);
}
a:link
{
color:rgb(110, 162, 255);
}
a:visited
{
color:rgb(133, 134, 209);
}
b
{
color: aqua;
font-weight: 900;
}
.divStyle001
{
min-width: 200px;
padding: 4px 10px 4px 10px; /* t, r, b l */
border: solid 2px rgba(100, 100, 255, 1.0);
border-radius: 10px;
background-color: rgb(0, 0, 0);
font-family: arial;
font-size: 20px;
font-weight: bold;
color: rgb(255, 255, 255);
text-align: center;
overflow-y: scroll;
}
.ourButton
{
background-color: rgb(0, 77, 129);
margin-left: 2px;
margin-right: 2px;
margin-top: 1px;
margin-bottom: 1px;
border-style: solid;
border-width: 1px;
border-color: rgb(100, 100, 255);
border-radius: 4px;
padding-left: 7px;
padding-right: 7px;
padding-top: 1px;
padding-bottom: 1px;
opacity: 1.0;
font-size: 14px;
font-weight: bold;
color: rgb(255, 255, 255);
text-align: center;
}
.ourButton:hover
{
background-color: rgb(6, 31, 47);
border-color: rgb(0, 255, 255);
color: rgb(0, 255, 255);
}
.ourButton:active
{
color: rgb(255, 0, 255);
}
.hrCompact
{
background-color: rgb(255,255,255);
border: 0 none;
margin-top: 4px;
margin-bottom: 4px;
padding-top: 0.5px;
padding-bottom: 0.5px;
}
.textCompact
{
font-family: Arial;
font-size: 14px;
font-weight: normal;
color: rgb(255, 255, 255);
}
.theImage
{
height: 75%;
object-fit: contain;
vertical-align: middle;
z-index: 10;
}
.theScienceImages
{
max-width: 100%;
height: auto;
object-fit: contain;
margin-left: auto;
margin-right: auto;
display: block;
z-index: 10;
}
.vidStyle
{
transition: transform .2s;
}
/* zoom feature for videos to be added */
.vidStyle:hover
{
/* transform: scale(2.5); */
position: absolute;
transform: translateY(+79%) scale(2.5);
}
.bookImage
{
object-fit: contain;
max-width: 100%;
vertical-align: middle;
z-index: 10;
}
/* zoom feature to be added */
.bookImage:hover
{
/* position: "absolute"; */
/* transform: scale(1.2); */
z-index:100;
/* transform: translateY(+79%) scale(2.5); */
/* transform: translateY(+5%) scale(1.2); */
}
.textInput
{
height: 20px;
width: 100px;
overflow: hidden;
resize: none;
}
.glowBlue
{
font-family: Arial;
font-size: 40px;
font-weight: bold;
text-shadow: 0 0 5px #FFF, 0 0 10px #FFF, 0 0 15px #FFF, 0 0 20px #18dcff, 0 0 30px #18b6ff, 0 0 40px #003cff, 0 0 55px #00d9ff, 0 0 75px #00e1ff, 2px 2px 2px rgba(115,246,255,0);
z-index: 1;
}
.glowRed
{
font-family: Arial;
font-size: 30px;
font-weight: bold;
text-shadow: 0 0 5px #FFF, 0 0 10px #FFF, 0 0 15px #FFF, 0 0 20px #ff1878, 0 0 30px #0ddbff, 0 0 40px #21f0ff, 0 0 55px #ff008c, 0 0 75px #ff168b, 2px 2px 2px rgba(115, 246, 255, 0);
z-index: 1;
}
.buttonBottomToolbar
{
color: white;
}
summary
{
/* list-style-type: '^'; */
margin-left: 4px;
font-size: 16px;
font-weight: bold;
border: none;
cursor: pointer;
}
#random
{
margin: 4px;
padding-left: 10px;
padding-right: 10px;
padding-top: 4px;
padding-bottom: 4px;
border: solid 2px rgba(100, 100, 255, 1.0);
border-radius: 10px;
background-color: rgb(0, 0, 0);
z-index: 998;
font-family: arial;
font-weight: bold;
color: rgb(255, 255, 255);
text-align: center;
line-height: 20px;
overflow-y: scroll;
}
.menu
{
margin: 0px;
padding: 0px;
font-family: Arial;
font-size: 17px;
color: rgb(0, 255, 255) !important;
text-align: center;
}
/* -- */
/* Dedicated to God the Father */
/* All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024 */
/* https://github.com/ChristopherTopalian */
/* https://github.com/ChristopherAndrewTopalian */
</style>
<script>
// shortcuts.js
function ge(whichId)
{
let result = document.getElementById(whichId);
return result;
}
function ce(whichType)
{
let result = document.createElement(whichType);
return result;
}
function ba(whichElement)
{
let result = document.body.append(whichElement);
return result;
}
function ct(whichText)
{
let result = document.createTextNode(whichText);
return result;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// playerArray.js
playerArray = [
{
name: "Christopher",
id: "thePlayer",
x: 140,
y: 75,
width: 90,
height: 250,
speedMultiplier: 7,
colorFill: "rgb(73, 100, 150)",
colorText: "rgb(255, 255, 255)",
opacity: 1.0,
textureOffline: 'url("src/media/textures/jane.png")',
textureOnline: 'url(https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/jane.png)'
}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// playerLoadData.js
// playerArray is used to load player settings
function playerLoadData(whichId)
{
let playerElement = ge(whichId);
if (playerElement)
{
if (online == false)
{
playerElement.style.backgroundImage = playerArray[0].textureOffline;
}
else
{
playerElement.style.backgroundImage = playerArray[0].textureOnline;
}
// opacity
playerElement.style.opacity = playerArray[0].opacity;
// text color
playerElement.style.color = playerArray[0].colorText;
// X position
playerElement.style.left = playerArray[0].x;
// Y position
playerElement.style.top = playerArray[0].y;
// width
playerElement.style.width = playerArray[0].width;
// height
playerElement.style.height = playerArray[0].height;
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresArray.js
structuresArray = [
{
"name": "House 1",
"id": "1",
"posX": 1100,
"posY": 400,
"sizeX": 110,
"sizeY": 45,
"colorFill": "black",
"colorText": "white",
"opacity": 1,
"texture": "Default",
'layer': 2
},
{
"name": "House 2",
"id": "2",
"posX": 1200,
"posY": 500,
"sizeX": 110,
"sizeY": 45,
"colorFill": "black",
"colorText": "white",
"opacity": 1,
"texture": "Default",
'layer': 2
},
{
"name": "Our Third House",
"id": "3",
"posX": 1400,
"posY": 500,
"sizeX": 110,
"sizeY": 45,
"colorFill": "black",
"colorText": "white",
"opacity": 1,
"texture": "Default",
'layer': 2
},
{
"name": "House 4",
"id": "4",
"posX": 850,
"posY": 300,
"sizeX": 114,
"sizeY": 49,
"colorFill": "rgb(150, 50, 100)",
"colorText": "rgb(255, 255, 255)",
"opacity": "1",
"texture": "none",
'layer': 2
},
{
"name": "House 5",
"id": "5",
"posX": 800,
"posY": 500,
"sizeX": 114,
"sizeY": 49,
"colorFill": "rgb(0, 0, 0)",
"colorText": "rgb(100, 200, 255)",
"opacity": "1",
"texture": "none",
'layer': 2
},
{
"name": "House 6",
"id": "6",
"posX": 1900,
"posY": 500,
"sizeX": 114,
"sizeY": 49,
"colorFill": "rgb(0, 0, 0)",
"colorText": "rgb(255, 255, 255)",
"opacity": "1",
"texture": "url('https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/concrete1.jpg')",
'layer': 2
},
{
"name": "House 7",
"id": "7",
"posX": 1800,
"posY": 400,
"sizeX": 114,
"sizeY": 49,
"colorFill": "rgb(0, 0, 0)",
"colorText": "rgb(255, 255, 255)",
"opacity": "1",
"texture": "none",
'layer': 2
},
{
"name": "House 8",
"id": "8",
"posX": 2000,
"posY": 500,
"sizeX": 114,
"sizeY": 49,
"colorFill": "rgb(0, 0, 0)",
"colorText": "rgb(255, 255, 255)",
"opacity": "1",
"texture": "none",
'layer': 2
}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// worldVariables.js
// resoures offline or online?
let online = true;
// song files are on google server
// to avoid large download for app on github
let songFilesDownloadLink = `
https://drive.google.com/drive/folders/162IA3RC9rDV8Dkwk_bFd-an8HPEY9mhE`
let backgroundSizeX = 250000;
let backgroundSizeY = 250000;
let controlFlag = 1;
let activePlayer = "thePlayer";
let playerNumber = 0;
// let structuresArray = [];
let ourPlayer =
{
x: playerArray[playerNumber].x,
y: playerArray[playerNumber].y,
width: playerArray[playerNumber].width,
height: playerArray[playerNumber].height,
speedMultiplier: 2,
id: playerArray[playerNumber].id,
playerColor: playerArray[playerNumber].colorFill,
texture: `url(${playerArray[playerNumber].texture})`,
texturePos: '0% 0%',
velocityY: 0,
};
let colorChoices = [
{ name: 'aqua', color: '0, 255, 255' },
{ name: 'black', color: '0, 0, 0' },
{ name: 'blue', color: '0, 0, 255' },
{ name: 'fuchsia', color: '255, 0, 255' },
{ name: 'gray', color: '128, 128, 128' },
{ name: 'green', color: '0, 128, 0' },
{ name: 'lime', color: '0, 255, 0' },
{ name: 'maroon', color: '128, 0, 0' },
{ name: 'navy', color: '0, 0, 128' },
{ name: 'olive', color: '128, 128, 0' },
{ name: 'purple', color: '128, 0, 128' },
{ name: 'red', color: '255, 0, 0' },
{ name: 'silver', color: '192, 192, 192' },
{ name: 'teal', color: '0, 128, 128' },
{ name: 'white', color: '255, 255, 255' },
{ name: 'yellow', color: '255, 255, 0' },
{ name: 'orange', color: '255, 165, 0' },
{ name: 'pink', color: '255, 192, 203' },
{ name: 'brown', color: '165, 42, 42' },
{ name: 'violet', color: '238, 130, 238' },
{ name: 'cyan', color: '0, 255, 255' },
{ name: 'magenta', color: '255, 0, 255' },
{ name: 'limegreen', color: '50, 205, 50' },
{ name: 'gold', color: '255, 215, 0' },
{ name: 'coral', color: '255, 127, 80' },
{ name: 'indigo', color: '75, 0, 130' },
{ name: 'khaki', color: '240, 230, 140' },
{ name: 'plum', color: '221, 160, 221' },
{ name: 'salmon', color: '250, 128, 114' },
{ name: 'tan', color: '210, 180, 140' },
{ name: 'turquoise', color: '64, 224, 208' },
{ name: 'wheat', color: '245, 222, 179' }
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeElementDraggable.js
// creating event handler for mouse down
function createMouseDownHandler(element, state) {
return function(e)
{
// ignore mouse down events on textarea or input elements
if (e.target.tagName === 'TEXTAREA' || e.target.tagName === 'INPUT')
{
return;
}
e.preventDefault();
state.startX = e.clientX;
state.startY = e.clientY;
document.onmousemove = createMouseMoveHandler(element, state);
document.onmouseup = createMouseUpHandler();
};
}
// creating event handler for mouse move
function createMouseMoveHandler(element, state) {
return function(e)
{
// ignore mouse move events on textarea or input elements
if (e.target.tagName === 'TEXTAREA' || e.target.tagName === 'INPUT')
{
return;
}
e.preventDefault();
let deltaX = state.startX - e.clientX;
let deltaY = state.startY - e.clientY;
state.startX = e.clientX;
state.startY = e.clientY;
let newTop = element.offsetTop - deltaY;
let newLeft = element.offsetLeft - deltaX;
element.style.top = newTop + "px";
element.style.left = newLeft + "px";
};
}
// creating event handler for mouse up
function createMouseUpHandler()
{
return function()
{
document.onmousemove = null;
document.onmouseup = null;
};
}
// make an element draggable
function makeElementDraggable(element)
{
let state = { startX: 0, startY: 0 };
element.onmousedown = createMouseDownHandler(element, state);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// hexToRgb.js
function hexToRgb(hex)
{
// remove the hash symbol if it is present
let hexCleaned = hex.replace(/^#/, '');
// if shorthand hex code is provided (#03F), convert it to the full form (#0033FF)
if (hexCleaned.length === 3)
{
hexCleaned = hexCleaned.split('').map(function(hexDigit)
{
return hexDigit + hexDigit;
}).join('');
}
// parse the hex string and extract the red, green, and blue values
let r = parseInt(hexCleaned.substring(0, 2), 16);
let g = parseInt(hexCleaned.substring(2, 4), 16);
let b = parseInt(hexCleaned.substring(4, 6), 16);
// return the RGB values as an object
return { r: r, g: g, b: b };
}
// example usage:
// { r: 0, g: 51, b: 255 }
let color = hexToRgb('#03F');
console.log(color);
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rgbToHex.js
function rgbToHex(r, g, b)
{
// ensure RGB values are in range 0-255
r = Math.min(255, Math.max(0, r));
g = Math.min(255, Math.max(0, g));
b = Math.min(255, Math.max(0, b));
// convert RGB values to hexadecimal
let toHex = function(value)
{
let hex = value.toString(16);
return hex.length === 1 ? '0' + hex : hex;
};
return '#' + toHex(r) + toHex(g) + toHex(b);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// 1contentWorldVariables.js
// content starts at specified y Position
let yPos = 600;
let space = 800;
// content is Positioned in Rows
// based on the Functions Place in the Array
let rowNumber = 1;
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerBooks.js
function containerBooks()
{
let contentArray =
[
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfScienceImagesAndLink(100, yPos, 600, 600, scienceImages, "electricity", "electron flow")
},
function()
{
// theX, theY, whichArray
rowOfCollegeLinks(100, yPos, collegeLinks)
},
function()
{
// theX, theY, sizeX, sizeY, whichArray
rowOfCollegeBooks(100, yPos, 400, 400, collegeBooks)
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, theHeading
rowOfBookImages(100, yPos, 600, 600, mathematics, "book", "Mathematics", "texture")
}
];
for (i = 0; i < contentArray.length; i++)
{
// adds one row each time through loop
contentArray[i]();
// add 900 to the yPos, between new section below
yPos = yPos + space;
}
// spacer sector 1 line
makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerBoxingVideos.js
function containerBoxingVideos()
{
let contentArray =
[
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfVideosMultipleFilters(100, yPos, 800, 600, boxingVideos,"boxing", "furyWilder1")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfVideosMultipleFilters(100, yPos + 200, 800, 600, boxingVideos, "boxing", "furyWilder2")
},
];
for (i = 0; i < contentArray.length; i++)
{
contentArray[i]();
yPos = yPos + space;
}
// spacer sector line
// makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerLanguage.js
function containerLanguage()
{
let contentArray =
[
function()
{
if (online == false)
{
rowOfWebsitesOrVideos(100, yPos, 900, 400, computerSciencePdf, 'pdf')
}
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "array", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "string", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "math", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "date", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "boolean", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "global", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "number", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "regular expression", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "classes", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "error", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "json", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "console", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "history", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "storage", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "geolocation", "function")
},
function()
{
rowOfLanguage(100, yPos, 400, 500, javascriptLanguage, "string", "function")
},
function()
{
// whichArray, theX, theY, sizeX, sizeY, catetory, tag
rowOfLanguageShowAll(100, yPos + 300, 400, 500, javascriptLanguage, "function", "JavaScript")
},
// Linden Scripting Language - Show All
function()
{
// rowOfLanguageShowAll(100, yPos, 400, 500, lindenLanguage, "function", "Linden")
},
];
for (i = 0; i < contentArray.length; i++)
{
// adds one row each time through loop
contentArray[i]();
// add space to yPos, between new section below
yPos = yPos + space;
}
// spacer sector line
makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerNews.js
function containerNews()
{
let contentArray =
[
function()
{
// theX, theY, sizeX, sizeY,whichArray, criteria1
rowOfNews(100, yPos, 800, 250, theNews, "news")
},
function()
{
// theX, theY, sizeX, sizeY,whichArray, criteria1
rowOfEvidence(100, yPos, 700, 300, evidence, "fact")
},
function()
{
// theX, theY, sizeX, sizeY,whichArray, criteria1
rowOfSocialMediaEvidence(100, yPos, 700, 500, socialMediaEvidence, "twitter")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfDetails(100, yPos, 700, 500, socialMediaEvidence, "twitter")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, theTitle
rowOfEvidenceWithImage(100,yPos,1250,600, evidence, "fact", "Evidence")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfNotes(100, yPos, 400, 400, theNotes, "note")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfNotesWithTextArea(100, yPos, 600, 500, theNotes, "note")
},
// Investigation
function()
{
rowOfInvestigation(100, yPos, 400, 400, petitoGabrielleInvestigation, "note")
},
];
for (i = 0; i < contentArray.length; i++)
{
// adds one row each time through loop
contentArray[i]();
// add 900 to the yPos, between new section below
yPos = yPos + space;
}
// spacer sector line
makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerNewsVideos.js
function containerNewsVideos()
{
let contentArray =
[
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfWebsitesOrVideos(100, yPos, 700, 500, videoEvidence, "youtubeVideo")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfVideos(100, yPos, 800, 600, videoEvidence, "exercise")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1
rowOfVideos(100, yPos, 800, 600, videoEvidence, "mask")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
makeVideosOnlineStartEnd(100, yPos, 800, 600, videoEvidence, "youtubeVideo", "exercise")
},
];
for (i = 0; i < contentArray.length; i++)
{
// adds one row each time through loop
contentArray[i]();
// add 900 to yPos, between new section below
yPos = yPos + space + 200;
}
// spacer sector line
makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// containerScience.js
function containerScience()
{
let contentArray =
[
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfVideosMultipleFilters(100, yPos, 800, 600, collegeVideos,"youtubeVideo", "javascript")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfVideosMultipleFilters(100, yPos, 800, 600, collegeVideos,"youtubeVideo", "papercliptronics")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
rowOfVideosMultipleFilters(100, yPos, 800, 600, collegeVideos,"youtubeVideo", "breadboard")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
makeVideosOnlineStartEnd(100, yPos, 800, 600, techVideos, "youtubeVideo", "electric motor")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
makeVideosOnlineStartEnd(100, yPos, 800, 600, techVideos, "youtubeVideo", "water pump")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
makeVideosOnlineStartEnd(100, yPos, 800, 600, techVideos, "youtubeVideo", "air pump")
},
function()
{
// theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2
makeVideosOnlineStartEnd(100, yPos, 800, 600, techVideos, "youtubeVideo", "microphone")
}
];
for (i = 0; i < contentArray.length; i++)
{
// adds one row each time through loop
contentArray[i]();
// add 900 to the yPos, between new section below
yPos = yPos + space + 200;
}
// spacer sector 1 line
makeLine(yPos, rowNumber, "Cross this Line to Load Content");
rowNumber += 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// contentContainersLineCrossed.js
// load Content based on the player's position.
let sector = 1;
function wasLineCrossed(whichId)
{
let playerElement = ge(whichId);
// if player exists
if (playerElement)
{
// player speed can be very fast, so we allow a large range of Y value to be able to trigger the event
if (sector == 1)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + " Crossed" + '\n' + 'Sector: ' + sector;
// loads the content
containerNews();
// removes the line
removeElement("sector1");
// only allow content to be added one time
sector = 2;
}
}
if (sector == 2)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + ' Crossed' + '\n' + 'Sector: ' + sector;
containerBooks();
//containerScience();
// removes line
removeElement("sector2");
// only allow content to be added one time
sector = 3;
}
}
if (sector == 3)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + ' Crossed' + '\n' + 'Sector: ' + sector;
// loads the content
containerScience();
// removes the line
removeElement("sector3");
// only allow content to be added one time
sector = 4;
}
}
if (sector == 4)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + ' Crossed' + '\n' + 'Sector: ' + sector;
// loads the content
containerNewsVideos();
// removes the line
removeElement("sector4");
// only allow content to be added one time
sector = 5;
}
}
if (sector == 5)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + ' Crossed' + '\n' + 'Sector: ' + sector;
// loads the content
containerBoxingVideos();
// removes the line
removeElement("sector5");
// only allow content to be added one time
sector = 6;
}
}
if (sector == 6)
{
if (Math.floor(positionGet(whichId).y) > yPos && Math.floor(positionGet(whichId).y) < yPos + 70)
{
ge('infoDiv').innerText = yPos + ' Crossed' + '\n' + 'Sector: ' + sector + '\n' +
'More Content Soon';
// containerVi();
// removes the line
removeElement("sector6");
// only allow content to be added one time
sector = 7;
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// downloadData.js
// creates a text file named structureData.js.
function downloadStructureData()
{
// get the data from the Text Area
// let data = ge("textAreaStructureData").value;
// get data from structuresArray format it
let ourData = "structuresArray=" + JSON.stringify(structuresArray, null, ' ') + ";" + "\n\n";
// create an anchor element
let ourElement = ce("a");
// we can choose .txt .html or in our case, we use .js
ourElement.download = "structuresArray.js";
// we choose the data and kind
let theKind = new Blob([ourData],
{
type: "text/plain"
});
ourElement.href = window.URL.createObjectURL(theKind);
ourElement.click();
}
function downloadPlayerData()
{
// get the data from the Text Area
// let data = ge("textAreaPlayerData").value;
// get data from playerArray, format it
let ourData = "playerArray = " + JSON.stringify(playerArray, null, ' ') + ";" + "\n\n";
// create an anchor element
let ourElement = ce("a");
// we can choose .txt .html or in our case, we use .js
ourElement.download = "playerData.js";
// we choose the data and kind
let theKind = new Blob([ourData],
{
type: "text/plain"
});
ourElement.href = window.URL.createObjectURL(theKind);
ourElement.click();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// recordDelete.js
function deleteThisRecord(whichDiv)
{
let warningDelete = confirm("DELETE ONLY This Record?");
if (warningDelete == true)
{
ge(whichDiv).outerHTML = "";
}
else if (warningDelete == false)
{
ge('infoDiv').textContent = "Canceled";
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// showPlayerData.js
// Show the playerArray data in a Text Area that is scrollable
function showPlayerData()
{
ge("textAreaPlayerData").value = "playerArray = " + JSON.stringify(playerArray, null, ' ') + ";" + "\n\n" ;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// showStructureData.js
// show the structuresArray data
// in a Text Area that is scrollable
function showStructureData()
{
ge("textAreaStructureData").value = "structuresArray = " + JSON.stringify(structuresArray, null, ' ') + ";" + "\n\n" ;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// sortByDate.js
// Ascending order uses a.date - b.date
// Descending order uses b.date - a.date
// ascending or descending
function sortByDate(whichArray, direction)
{
// ASCENDING is a.date - b.date
if (direction == "up")
{
whichArray.sort(function(a, b)
{
return new Date(a.date) - new Date(b.date);
});
}
// DESCENDING is b.date - a.date
else if (direction == "down")
{
whichArray.sort(function(a, b)
{
return new Date(b.date) - new Date(a.date);
});
}
}
// examples
// Sort by date
// sortByDate(theNotes, "up"); // Ascending
// sortByDate(theNotes, "down"); // Descending
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// sortByNumber.js
function sortByNumber(whichArray, direction)
{
if (direction == "up") // ASCENDING
{
whichArray.sort(function(a, b)
{
return a.number.localeCompare(b.number);
});
}
else if (direction == "down") // DESCENDING
{
whichArray.sort(function(b, a)
{
return a.number.localeCompare(b.number);
});
}
}
// examples
// Sort by number
// sortByNumber(theNotes, "up"); // Ascending
// sortByNumber(theNotes, "down"); // Descending
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// sortData.js
// we include which arrays we want to sort
function sortData()
{
// ascending
sortByDate(booksPdf, "up");
// ascending
sortByDate(petitoGabrielleInvestigation, "up");
// descending
sortByDate(theNews, "down");
// descending
sortByDate(evidence, "down");
// descending
sortByDate(videoEvidence, "down");
// ascending
sortByDate(socialMediaEvidence, "up");
// descending
sortByDate(boxingVideos, "down");
// descending
sortByDate(collegeVideos, "down");
// ascending
sortByDate(ourVideoFiles, "up");
// sort by Multiple Criteria, category and name
javascriptLanguage.sort(function(a, b)
{
return a.category.localeCompare(b.category) || b.name - a.name;
});
// sort by Multiple Criteria, category and name
lindenLanguage.sort(function(a, b)
{
return a.category.localeCompare(b.category) || b.name - a.name;
});
// sort by one number only, number
theNotes.sort(function(a, b)
{
return a.number.localeCompare(b.number, 'en-US', {numeric:"true"});
// || b.note - a.note;
});
// sort by one number only, probability
socialMediaEvidence.sort(function(a, b)
{
return a.probability.localeCompare(b.probability, 'en-US', {numeric:"true"}); // || b.title - a.title;
});
// to sort by additional criteria, just use another ||
// sort By Date - ASCENDING
scienceImages.sort(function(a,b)
{
return new Date(a.date) - new Date(b.date);
});
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// cameraFollowsPlayer.js
// camera starts active
let cameraFlag = 1;
// camera Follows the Player
function cameraFollowsPlayer(whichId)
{
if (cameraFlag == 1)
{
let playerElement = ge(whichId);
if (playerElement)
{
playerElement.scrollIntoView(
{
block: "center", inline: "center"
});
}
}
if (cameraFlag == 0)
{
// get position of where the person clicks their mouse arrow
mouseOn();
return;
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// gameLoop.js
function gameLoop(whichId)
{
playerMotion(activePlayer);
cameraFollowsPlayer(activePlayer);
keepPlayerInWorld(activePlayer);
wasLineCrossed(activePlayer);
// getDistanceXY('thePlayer', 'STRUCTURE1');
requestAnimationFrame(gameLoop);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// keepPlayerInWorld.js
function keepPlayerInWorld(whichId)
{
let bgSizeX = 250000;
let bgSizeY = 250000;
if (ge(whichId))
{
// if left
if (ourPlayer.x <= 0)
{
ourPlayer.x = 0;
}
// if right
if (ourPlayer.x > bgSizeX)
{
ourPlayer.x = bgSizeX;
}
// if top
if (ourPlayer.y <= 0)
{
ourPlayer.y = 0;
}
// if bottom
if (ourPlayer.y >= bgSizeY)
{
ourPlayer.y = bgSizeY;
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// keyboardControl.js
// used when a person is done with a textarea
function keyboardControlOn()
{
controlFlag = 1;
}
// used when person is typing in a textarea
function keyboardControlOff()
{
controlFlag = 0;
}
function hideShow(whichId)
{
ge(whichId).style.visibility = 'visible';
setTimeout(function()
{
ge(whichId).style.visibility = 'hidden';
}, 1000);
}
function hideShow2(whichId)
{
ge(whichId).style.transform = 'translate(-50px, 0px)';
setTimeout(function()
{
ge(whichId).style.transform = 'translate(0px, 0px)';
}, 1000);
}
function theControls(e)
{
if (controlFlag ==1)
{
// Letter z
if (e.keyCode == 90)
{
clickSound();
// open player menu
menuPlayer();
}
// Letter x
if (e.keyCode == 88)
{
// listen for mouse clicks
window.addEventListener("click", mousePos, false);
ge('infoDivPlayer').textContent = "Left Click for Mouse Position";
}
// Letter v
if (e.keyCode == 86)
{
// remove listen for mouse clicks
window.removeEventListener("click", mousePos, false);
ge('infoDivPlayer').textContent = '';
}
// SPEED
// tilda
if(e.keyCode == 192)
{
ourPlayer.speedMultiplier = 0.5;
ge('infoDivPlayer').textContent = "Speed Tilda";
hideShow('infoDivPlayer');
}
// number 1, or numpad 1
if (e.keyCode == 49 || e.keyCode == 97)
{
ourPlayer.speedMultiplier = 1;
ge('infoDivPlayer').textContent = "Speed 1";
hideShow('infoDivPlayer');
}
// number 2
if (e.keyCode == 50 || e.keyCode == 98)
{
ourPlayer.speedMultiplier = 2;
ge('infoDivPlayer').textContent = "Speed 2";
hideShow('infoDivPlayer');
}
// number 3
if (e.keyCode == 51 || e.keyCode == 99)
{
ourPlayer.speedMultiplier = 5;
ge('infoDivPlayer').textContent = "Speed 3";
hideShow('infoDivPlayer');
}
//number 4
if (e.keyCode == 52 || e.keyCode == 100)
{
ourPlayer.speedMultiplier = 10;
ge('infoDivPlayer').textContent = "Speed 4";
hideShow('infoDivPlayer');
}
// number 5
if (e.keyCode == 53 || e.keyCode == 101)
{
ourPlayer.speedMultiplier = 15;
ge('infoDivPlayer').textContent = "Speed 5";
hideShow('infoDivPlayer');
}
// number 6
if (e.keyCode == 54 || e.keyCode == 102)
{
ourPlayer.speedMultiplier = 20;
ge('infoDivPlayer').textContent = "Speed 6";
hideShow('infoDivPlayer');
}
// number 7
if (e.keyCode == 55 || e.keyCode == 103)
{
ourPlayer.speedMultiplier = 25;
ge('infoDivPlayer').textContent = "Speed 7";
hideShow('infoDivPlayer');
}
// number 8
if (e.keyCode == 56 || e.keyCode == 104)
{
ourPlayer.speedMultiplier = 30;
ge('infoDivPlayer').textContent = "Speed 8";
hideShow('infoDivPlayer');
}
// number 9
if (e.keyCode == 57 || e.keyCode == 105)
{
ourPlayer.speedMultiplier = 40;
ge('infoDivPlayer').textContent = "Speed 9";
hideShow('infoDivPlayer');
}
// number 0
if (e.keyCode == 48 || e.keyCode == 96)
{
ourPlayer.speedMultiplier = 50;
ge('infoDivPlayer').textContent = "Speed 0";
hideShow('infoDivPlayer');
}
// dash
if (e.keyCode == 173)
{
ourPlayer.speedMultiplier = 100;
ge('infoDivPlayer').textContent = "Speed -";
hideShow('infoDivPlayer');
}
// +
if (e.keyCode == 61)
{
ourPlayer.speedMultiplier = 200;
ge('infoDivPlayer').textContent = "Speed +";
hideShow('infoDivPlayer');
}
// Back Space button
if (e.keyCode == 8)
{
ourPlayer.speedMultiplier = 400;
ge('infoDivPlayer').textContent = "Speed Backspace";
hideShow('infoDivPlayer');
}
// Insert Button
if (e.keyCode == 45)
{
ourPlayer.speedMultiplier = 600;
ge('infoDivPlayer').textContent = "Speed Insert";
hideShow('infoDivPlayer');
}
// Home Button
if (e.keyCode == 36)
{
ourPlayer.speedMultiplier = 800;
ge('infoDivPlayer').textContent = "Speed Home";
hideShow('infoDivPlayer');
}
// PageUp Button
if (e.keyCode == 33)
{
ourPlayer.speedMultiplier = 1600;
ge('infoDivPlayer').textContent = "Speed PageUp";
hideShow('infoDivPlayer');
}
//-//
// Letter b to add Structure
if (e.keyCode == 66)
{
audioPlay("sfx_blip_001", 1.0);
ge('infoDivPlayer').textContent = "STRUCTURE MODE ON";
// when left clicked, make a structure at the location of the mouse arrow
window.addEventListener("click", structuresCreate, false);
}
// Esc Button to exit Structure mode
// escape button
if (e.keyCode == 27)
{
clickSound();
ge('infoDivPlayer').textContent = "STRUCTURE MODE OFF";
// hideShow('infoDiv');
// hideShow('infoDivPlayer');
// Remove the event listener, that listens for mouse clicks. This deactivates structure creation mode
window.removeEventListener("click", structuresCreate);
}
// letter j
if (e.keyCode == 74)
{
// theX, theY, sizeX, sizeY, whichArray
structuresRow(ourPlayer.x, ourPlayer.y, 125, 200, structuresArray);
audioPlay("sfx_blip_001", 1.0);
}
// Delete Button
if (e.keyCode == 46)
{
// audioPlay("sfx_blip_001", 1.0);
// we move the structures row offscreen, as a simple way of clearing the screen of the row.
structuresRow(-1000, -1000, 10, 10, structuresArray)
structuresRemoveAll();
ge('infoDivPlayer').textContent = "Removed All Structures";
}
// STRUCTURE MODE
// Shift + 1 brings you to structure 1
if(event.getModifierState("Shift") && e.keyCode == 49)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[0].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 2 brings you to structure 2
if(event.getModifierState("Shift") && e.keyCode == 50)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[1].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 3 brings you to structure 3
if(event.getModifierState("Shift") && e.keyCode == 51)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[2].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 4 brings you to structure 4
if (event.getModifierState("Shift") && e.keyCode == 52)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[3].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 5 brings you to structure 5
if (event.getModifierState("Shift") && e.keyCode == 53)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[4].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 6 brings you to structure 6
if (event.getModifierState("Shift") && e.keyCode == 54)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[5].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 7 brings you to structure 7
if(event.getModifierState("Shift") && e.keyCode == 55)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[6].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 8 brings you to structure 8
if(event.getModifierState("Shift") && e.keyCode == 56)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[7].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 9 brings you to structure 9
if (event.getModifierState("Shift") && e.keyCode == 57)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[8].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// Shift + 0 brings you to structure 10
if (event.getModifierState("Shift") && e.keyCode == 48)
{
audioPlay("sfx_blip_001", 1.0);
// get the position
let newPosition = positionGet(structuresArray[9].id);
// update player position
ourPlayer.x = newPosition.x;
ourPlayer.y = newPosition.y;
movePlayer(activePlayer);
}
// if Control + F is pressed make cameraFlag 0
if (event.getModifierState("Control") && e.keyCode == 70)
{
cameraFlag = 0;
}
// TRANSPARENCY
// Letter m
if (e.keyCode == 77)
{
ge(activePlayer).style.opacity = "1.0";
}
// Letter n
if (e.keyCode == 78)
{
ge(activePlayer).style.opacity = "0.2";
ge('infoDivPlayer').textContent= "";
}
// Letter p for player color
if (e.keyCode == 80)
{
menuPlayerColor();
audioPlay("sfx_blip_001", 1.0);
}
// Letter t for player texture
if (e.keyCode == 84)
{
menuPlayerTexture();
audioPlay("sfx_blip_001", 1.0);
}
// Letter o for player opacity
if (e.keyCode == 79)
{
menuPlayerOpacity();
audioPlay("sfx_blip_001", 1.0);
}
// Letter g clears player text
if (e.keyCode == 71)
{
ge('infoDivPlayer').textContent = "";
menuPlayer();
}
}
let theKeyCode = e.keyCode || e.which;
if (e.type === 'keydown')
{
keyboard[theKeyCode] = true;
}
else if (e.type === 'keyup')
{
keyboard[theKeyCode] = false;
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// keyboardMotion.js
// keyboard letter codes being pressed
let keyboard = { };
keyboard.UP = 87; // 87 w, 38 up arrow
keyboard.DOWN = 83; // 83 s, 40 down arrow
keyboard.LEFT = 65; // 65 a, 37 left arrow
keyboard.RIGHT = 68; // 68 d, 39 right arrow
keyboard.SHIFT = 16; // 16 shift
// Player Controls
function playerMotion(whichId)
{
let playerElement = ge(whichId);
// if person is not typing in a textarea, controls are ON
if (controlFlag == 1)
{
if (keyboard[keyboard.LEFT])
{
movePlayer(whichId, -1, 0);
ge(ourPlayer.id).style.transform = 'scaleX(-1)';
}
if (keyboard[keyboard.RIGHT])
{
movePlayer(whichId, 1, 0);
ge(ourPlayer.id).style.transform = 'scaleX(1)';
}
if (keyboard[keyboard.UP])
{
movePlayer(whichId, 0, -1);
}
if (keyboard[keyboard.DOWN])
{
movePlayer(whichId, 0, 1);
}
if (keyboard[keyboard.LEFT] && keyboard[keyboard.SHIFT])
{
movePlayer(whichId, -2, 0);
}
if (keyboard[keyboard.RIGHT] && keyboard[keyboard.SHIFT])
{
movePlayer(whichId, 2, 0);
}
if (keyboard[keyboard.UP] && keyboard[keyboard.SHIFT])
{
movePlayer(whichId, 0, -2);
}
if (keyboard[keyboard.DOWN] && keyboard[keyboard.SHIFT])
{
movePlayer(whichId, 0, 2);
}
}
}
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// movePlayer.js
function movePlayer(whichId, theX, theY)
{
let playerElement = ge(whichId);
if (playerElement)
{
ourPlayer.x += (theX || 0) * ourPlayer.speedMultiplier;
ourPlayer.y += (theY || 0) * ourPlayer.speedMultiplier;
playerElement.style.left = ourPlayer.x + 'px';
playerElement.style.top = ourPlayer.y + 'px';
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// get.js
function get(whichId, whichProperty)
{
let theId = ge(whichId);
if (whichProperty == 'name')
{
let theProperty = playerArray[0].name;
return theProperty;
}
if (whichProperty == 'innerHTML')
{
let theProperty = ge(whichId).innerHTML;
return theProperty;
}
if (whichProperty == 'innerText')
{
let theProperty = ge(whichId).innerText;
return theProperty;
}
if (whichProperty == 'textContent')
{
let theProperty = ge(whichId).textContent;
return theProperty;
}
if (whichProperty == 'id')
{
let theProperty = ge(whichId).id;
return theProperty;
}
if (whichProperty == 'speedMultiplier')
{
let theProperty = playerArray[0].speedMultiplier;
return theProperty;
}
if (whichProperty == 'size')
{
let theRect = theId.getBoundingClientRect();
let sizeXY =
{
x: parseFloat(theRect.width).toFixed(3),
y: parseFloat(theRect.height).toFixed(3)
};
return sizeXY;
}
if (whichProperty == 'pos')
{
let theRect = theId.getBoundingClientRect();
let posXY = {
x: theRect.x + theRect.width / 2 + window.scrollX,
y: theRect.top + theRect.height / 2 + window.scrollY
};
return posXY;
}
else
{
let theProperty = window.getComputedStyle(theId).getPropertyValue(whichProperty);
return theProperty;
}
}
// 'color' is text color
// 'background-color' is bg color
// 'opacity' is transparency
// 'background-image' is texture name
// 'left' is x position
// 'top' is y position
// 'name' gets element's name
// 'width' gets width
// 'height' gets height
// 'font-size' gets font size
// 'z-index' gets the layer index
// can get any css property value using its css name
// example
// get('thePlayer', 'name');
// example
// get('thePlayer', 'opacity');
// example
// get('thePlayer', 'z-index');
// allows you to get any css property value by using its css name
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeBackground.js
function makeBackground(whichWidth, whichHeight)
{
let bgDiv = ce('div');
bgDiv.id = 'bgDiv';
bgDiv.style.position = 'absolute';
bgDiv.style.left = '0px';
bgDiv.style.top = '0px';
bgDiv.style.width = whichWidth + 'px';
bgDiv.style.height = whichHeight + 'px';
bgDiv.style.backgroundColor = 'rgb(0, 0, 0)';
if (online == true)
{
bgDiv.style.background = 'url("https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/stars-nice-edited_orig.png")';
}
else if (online == false)
{
bgDiv.style.background = 'url("src/media/textures/stars-nice-edited_orig.png")';
}
bgDiv.style.zIndex = 0;
ba(bgDiv);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeBottomToolbar.js
function activateBuildMode()
{
setTimeout(function()
{
window.addEventListener("click", structuresCreate, false);
}, 500);
}
let bottomToolbarArray =
[
{
name: "Build",
functionName: `activateBuildMode();`
},
{
name: "Player",
functionName: `menuPlayer()`,
},
{
name: "GoTo",
functionName: `structuresRow(ourPlayer.x, ourPlayer.y, 125, 200, structuresArray);`,
},
{
name: "MouseOn",
functionName: `mouseOn()`,
},
{
name: "MouseOff",
functionName: `mouseOff()`,
},
{
name: "Road",
functionName: `makeRoad()`,
}
];
function makeBottomToolbar(whichArray)
{
let theDetails = ce('details');
theDetails.setAttribute('open', '');
theDetails.style.position = 'fixed';
theDetails.style.left = '2px';
theDetails.style.bottom = '0px';
theDetails.style.zIndex = '900000000000';
theDetails.style.color = 'rgb(100, 100, 100)';
ba(theDetails);
//-//
let theSummary = ce('summary');
theSummary.innerText = '';
theDetails.append(theSummary);
//-//
let toolBarMainDiv = ce("div");
toolBarMainDiv.id = "toolBarMainDiv";
toolBarMainDiv.title = "makeBottomToolbar();";
theDetails.append(toolBarMainDiv);
//-//
let toolBarSubDiv = ce("div");
toolBarSubDiv.id = "toolBarSubDiv";
toolBarSubDiv.style.display = ' flex';
toolBarSubDiv.style.justifyContent = ' space-around';
toolBarSubDiv.style.color = 'white';
toolBarMainDiv.append(toolBarSubDiv);
//-//
for (let x = 0; x < whichArray.length; x++) {
let theButton = ce("button");
theButton.id = whichArray[x].name;
theButton.className = "ourButton";
theButton.style.backgroundColor = "rgb(0, 0, 0)";
theButton.style.color = "rgb(100, 100, 100)";
theButton.textContent = whichArray[x].name;
theButton.onmouseover = function(event)
{
hoverSound();
};
theButton.onclick = function()
{
clickSound();
eval(' ' + whichArray[x].functionName + ' ');
};
toolBarSubDiv.append(theButton);
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeCloseButton.js
function makeCloseButton(whichMenuId)
{
let closeButton = ce("button");
closeButton.className = "ourButton";
closeButton.style.position = "absolute";
closeButton.style.top = "0px";
closeButton.style.right = "15px";
closeButton.textContent = 'X';
closeButton.style.cursor = 'pointer';
closeButton.style.fontSize = '10px';
closeButton.onclick = function()
{
clickSound();
removeElement(whichMenuId);
keyboardControlOn();
};
closeButton.onmouseover = function()
{
hoverSound();
};
return closeButton;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeInfoDiv.js
function makeInfoDiv()
{
let infoDiv = ce('div');
infoDiv.id = 'infoDiv';
infoDiv.className = 'divStyle001';
infoDiv.title = 'makeInfoDiv()';
infoDiv.innerText = 'InfoDiv';
infoDiv.style.position = 'fixed';
infoDiv.style.right = '0px';
infoDiv.style.bottom = '10px';
infoDiv.style.zIndex = 1000;
infoDiv.style.fontSize = '15px';
infoDiv.style.textShadow = '1px 1px rgb(0, 0, 0)';
infoDiv.style.transition = `transform 0.5s ease`;
ba(infoDiv);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeInfoDivPlayer.js
function makeInfoDivPlayer()
{
let infoDivPlayer = ce('div');
infoDivPlayer.id = 'infoDivPlayer';
infoDivPlayer.className = 'divStyle001';
infoDivPlayer.title = 'makeInfoDivPlayer()';
infoDivPlayer.style.position = 'fixed';
infoDivPlayer.style.right = '0px';
infoDivPlayer.style.bottom = '60px';
infoDivPlayer.style.zIndex = 1000;
infoDivPlayer.style.fontSize = '15px';
infoDivPlayer.style.textShadow = '1px 1px rgb(0, 0, 0)';
infoDivPlayer.style.transition = `transform 0.5s ease`;
infoDivPlayer.innerText = 'infoDivPlayer';
ba(infoDivPlayer);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeLine.js
// Make a Message Box
// with a message of the Section name
function makeLine(theYPos, sector, ourMessage)
{
let makeLine = ce("div");
makeLine.id = "sector" + sector;
makeLine.className = "divStyle001";
makeLine.style.position = "absolute";
makeLine.style.left = 0 +'px';
makeLine.style.top = theYPos + 'px';
makeLine.style.width = 1000 +'px';
makeLine.style.height = 25 +'px';
makeLine.innerText = ourMessage;
ba(makeLine);
}
//-//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeLogo.js
function makeLogo()
{
let mainDiv = ce("div");
mainDiv.id = "mainDiv";
mainDiv.className = "divStyle001";
mainDiv.title = "makeLogo();";
mainDiv.style.position = "absolute";
mainDiv.style.left = "900px";
mainDiv.style.top = "20px";
mainDiv.style.width = "420px";
mainDiv.style.height = "155px";
mainDiv.style.borderRadius = "10px";
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let dedication = ce("div");
dedication.style.fontFamily = "Arial";
dedication.style.fontSize = "16pt";
dedication.textContent = "Dedicated to God the Father";
mainDiv.append(dedication);
//-//
mainDiv.append(ce('hr'));
//-//
let appTitle = ce("div");
appTitle.style.color = "rgb(126, 203, 255)";
appTitle.innerText = "TOPALIAN GAME ENGINE\nDATA NAVIGATOR";
mainDiv.append(appTitle);
//-//
let brUnderAppTitle = ce('br');
brUnderAppTitle.style.lineHeight = '7px';
mainDiv.append(brUnderAppTitle);
//-//
let credit = ce("div");
credit.style.fontFamily = "arial";
credit.style.fontStyle = "normal";
credit.style.lineHeight = "20px";
credit.textContent = "by Christopher Topalian";
mainDiv.append(credit);
//-//
let brUnderCredit = ce('br');
brUnderCredit.style.lineHeight = '7px';
mainDiv.append(brUnderCredit);
//-//
let appLink = ce("a");
appLink.href = "https://github.com/ChristopherTopalian/TopalianGameEngineDataNavigator";
appLink.target = "_blank";
appLink.textContent = "GitHub.com/ChristopherTopalian";
mainDiv.append(appLink);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makePlayer.js
function makePlayer()
{
let player = ce("div");
player.id = "thePlayer";
player.style.position = 'absolute';
player.style.left = ourPlayer.x;
player.style.top = ourPlayer.y;
player.style.backgroundSize = 'cover';
player.style.backgroundPosition = 'center center';
player.style.backgroundRepeat = 'no-repeat';
player.style.objectFit = 'cover';
player.style.zIndex = 2;
player.ondblclick = function()
{
clickSound();
menuPlayer();
};
player.onclick = function()
{
keyboardControlOn();
};
ba(player);
makeElementDraggable(player);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makePlayerTextArea.js
function makePlayerTextArea()
{
let mainDiv = ce("div");
mainDiv.id = "mainDivPlayerTextArea";
mainDiv.title = 'makePlayerTextArea();';
mainDiv.style.position = "absolute";
mainDiv.style.left = "400px";
mainDiv.style.top = "200px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "column";
ba(mainDiv);
//-//
let theTextArea = ce("textarea");
theTextArea.id = "textAreaPlayerData";
theTextArea.className = "divStyle001";
theTextArea.style.width = "325px";
theTextArea.style.height = "300px";
theTextArea.style.zIndex = 1;
theTextArea.style.fontSize = '17px';
theTextArea.style.fontWeight = 'normal';
theTextArea.style.color = 'rgb(150, 150, 150)';
theTextArea.style.textAlign = "left";
theTextArea.onclick = function()
{
showPlayerData();
};
theTextArea.onkeydown = function()
{
keyboardControlOff();
};
theTextArea.onblur = function()
{
keyboardControlOn();
};
mainDiv.append(theTextArea);
//-//
let controlsDiv = ce("div");
controlsDiv.style.display = "flex";
controlsDiv.style.flexDirection = "row";
mainDiv.append(controlsDiv);
//-//
let copyButton = ce("button");
copyButton.className = "ourButton";
copyButton.textContent = "Copy";
copyButton.onclick = function()
{
copyIt(theTextArea.id);
};
controlsDiv.append(copyButton);
//-//
let downloadButton = ce("button");
downloadButton.className = "ourButton";
downloadButton.textContent = "Download";
downloadButton.onclick = function()
{
downloadPlayerData();
};
controlsDiv.append(downloadButton);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeRoad.js
function makeRoad()
{
// counter for unique road IDs
let roadCounter = 0;
// flag to check if currently drawing
let isDrawing = false;
// currently active road element
let currentRoad = null;
// flag to check if in road creation mode
let isInRoadCreationMode = true;
// array to store created roads
let roads = [];
// creating a new road element with a unique ID
function createNewRoad()
{
let road = ce("div");
// id, road0000, road0001, etc.
road.id = "road" + roadCounter.toString().padStart(4, '0');
road.style.position = "absolute";
road.style.height = "20px";
road.style.width = "5px";
road.style.backgroundColor = "rgb(100, 100, 100)";
// ignore mouse events on road itself
road.style.pointerEvents = "none";
ba(road);
// add road to the array of roads
roads.push(road);
return road;
}
// starting drawing a new road
function startDrawing(e)
{
if (isInRoadCreationMode)
{
isDrawing = true;
// create a new road element
currentRoad = createNewRoad();
currentRoad.style.left = e.pageX + "px";
currentRoad.style.top = e.pageY + "px";
}
}
// stops drawing and make the road permanent
function stopDrawing()
{
if (isInRoadCreationMode && isDrawing)
{
isDrawing = false;
roadCounter++; // Increment the road counter for the next road
}
}
// handling drawing road while mouse is moving
function drawRoad(e)
{
if (isInRoadCreationMode && isDrawing && currentRoad)
{
let currentX = e.pageX;
let currentY = e.pageY;
let deltaX = currentX - parseInt(currentRoad.style.left);
let deltaY = currentY - parseInt(currentRoad.style.top);
let length = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
let angle = Math.atan2(deltaY, deltaX);
currentRoad.style.width = length + "px";
currentRoad.style.transform = "rotate(" + angle + "rad)";
}
}
// handling exiting road creation mode
function exitRoadCreationMode()
{
isInRoadCreationMode = false;
isDrawing = false;
// clear the current road being drawn
currentRoad = null;
// make all created roads draggable
for (let i = 0; i < roads.length; i++)
{
// access each road element
let road = roads[i];
// enable pointer events
road.style.pointerEvents = "auto";
// apply draggable functionality
makeElementDraggable(road);
}
}
// attach event listeners for road creation
document.addEventListener("mousedown", startDrawing);
document.addEventListener("mouseup", stopDrawing);
document.addEventListener("mousemove", drawRoad);
// attach event listener for exiting road creation mode
document.addEventListener("keydown", function(e)
{
if (e.key === "Escape")
{
exitRoadCreationMode();
}
});
}
// creating event handler for mouse down
function createMouseDownHandler(element, state) {
return function(e)
{
// ignore mouse down events on textarea or input elements
if (e.target.tagName === 'TEXTAREA' || e.target.tagName === 'INPUT')
{
return;
}
e.preventDefault();
state.startX = e.clientX;
state.startY = e.clientY;
document.onmousemove = createMouseMoveHandler(element, state);
document.onmouseup = createMouseUpHandler();
};
}
// creating event handler for mouse move
function createMouseMoveHandler(element, state) {
return function(e)
{
// ignore mouse move events on textarea or input elements
if (e.target.tagName === 'TEXTAREA' || e.target.tagName === 'INPUT')
{
return;
}
e.preventDefault();
let deltaX = state.startX - e.clientX;
let deltaY = state.startY - e.clientY;
state.startX = e.clientX;
state.startY = e.clientY;
let newTop = element.offsetTop - deltaY;
let newLeft = element.offsetLeft - deltaX;
element.style.top = newTop + "px";
element.style.left = newLeft + "px";
};
}
// creating event handler for mouse up
function createMouseUpHandler()
{
return function()
{
document.onmousemove = null;
document.onmouseup = null;
};
}
// making an element draggable
function makeElementDraggable(element)
{
let state = { startX: 0, startY: 0 };
element.onmousedown = createMouseDownHandler(element, state);
}
// initialize road creation
// makeRoad();
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeStructureTextArea.js
// Get All Structure Attributes
function makeStructureTextArea()
{
let mainDiv = ce("div");
mainDiv.id = "structureTextAreaId";
mainDiv.title = 'makeStructureTextArea();';
mainDiv.style.position = "absolute";
mainDiv.style.left = "20px";
mainDiv.style.top = "200px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "column";
ba(mainDiv);
//-//
let theTextArea = ce("textarea");
theTextArea.id = "textAreaStructureData";
theTextArea.className = "divStyle001";
theTextArea.style.width = "325px";
theTextArea.style.height = "300px";
theTextArea.style.fontSize = '17px';
theTextArea.style.fontWeight = 'normal';
theTextArea.style.color = 'rgb(150, 150, 150)';
theTextArea.style.textAlign = "left";
theTextArea.onclick = function()
{
showStructureData();
};
theTextArea.onkeydown = function()
{
keyboardControlOff();
};
theTextArea.onblur = function()
{
keyboardControlOn();
};
mainDiv.append(theTextArea);
//-//
let controlsDiv = ce("div");
controlsDiv.style.display = "flex";
controlsDiv.style.flexDirection = "row";
mainDiv.append(controlsDiv);
//-//
let copyButton = ce("button");
copyButton.className = "ourButton";
copyButton.style.color = "rgb(255, 255, 255)";
copyButton.textContent = "Copy";
copyButton.onclick = function()
{
copyIt(theTextArea.id);
};
controlsDiv.append(copyButton);
//-//
let downloadButton = ce("button");
downloadButton.className = "ourButton";
downloadButton.style.color = "rgb(255, 255, 255)";
downloadButton.style.zIndex = "10";
downloadButton.textContent = "Download";
downloadButton.onclick = function()
{
downloadStructureData();
};
controlsDiv.append(downloadButton);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeVideo.js
function makeVideo(whichVideoId)
{
let videoId = whichVideoId;
let youTubeVideo = ce("iframe");
youTubeVideo.style.position = "absolute";
youTubeVideo.style.left = positionGet(activePlayer).x;
youTubeVideo.style.top = positionGet(activePlayer).y;
youTubeVideo.width = '560';
youTubeVideo.height = '315';
youTubeVideo.src = `https://www.youtube.com/embed/${videoId}`;
youTubeVideo.frameBorder = '0';
youTubeVideo.allowFullscreen = true;
ba(youTubeVideo);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeSectionTitle.js
function makeSectionTitle()
{
let sectionId = 'titleSection';
let mainDiv = ce('div');
mainDiv.id = sectionId;
mainDiv.style.position = 'absolute';
mainDiv.style.left = '20px';
mainDiv.style.top = '20px';
mainDiv.style.display = 'flex';
mainDiv.style.flexDirection = 'column';
// horiztonal
mainDiv.style.justifyContent = 'center';
// vertical
mainDiv.style.alignItems = 'center';
ba(mainDiv);
makeElementDraggable(mainDiv);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeDedication.js
function makeDedication()
{
let dedication = ce(`div`);
dedication.id = `dedication`;
dedication.className = `glowBlue`;
dedication.style.transition = `opacity 5.5s ease`;
dedication.style.opacity = 0;
dedication.style.whiteSpace = 'nowrap';
dedication.innerText = `Dedicated to God the Father`;
setTimeout(function()
{
dedication.style.opacity = 1.0;
}, 1000);
if (ge('titleSection'))
{
ge('titleSection').append(dedication);
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// makeEngineTitle.js
function makeEngineTitle()
{
let gameEngineTitle = ce("div");
gameEngineTitle.id = "gameEngineTitle";
gameEngineTitle.className = "glowRed";
gameEngineTitle.innerText = "Topalian Game Engine Data Navigator";
gameEngineTitle.style.transition = `opacity 5.5s ease`;
gameEngineTitle.style.opacity = 0;
gameEngineTitle.style.whiteSpace = 'nowrap';
setTimeout(function()
{
gameEngineTitle.style.opacity = 1.0;
}, 4000);
if (ge('titleSection'))
{
ge('titleSection').append(gameEngineTitle);
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuInstructions.js
function menuInstructions()
{
let menuId = 'menuInstructions';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
theMenu.style.fontSize = '20px';
mainDiv.append(theMenu);
//-//
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let dedication = ce("div");
dedication.textContent = "Instructions";
theMenu.append(dedication);
//-//
let hrUnderDedication = ce('hr');
hrUnderDedication.style.marginBottom = '10px';
theMenu.append(hrUnderDedication);
//-//
let instruction1 = ce("div");
instruction1.innerHTML = "<b>W</b> is Up, <b>S</b> is Down, <b>A</b> is Left, <b>D</b> is Right";
theMenu.append(instruction1);
//-//
theMenu.append(ce('hr'));
//-//
let instruction2 = ce("div");
instruction2.innerHTML = "Numbers <b>1 to 9</b> Changes Speed";
theMenu.append(instruction2);
//-//
theMenu.append(ce('hr'));
//-//
let instruction3 = ce("div");
instruction3.innerHTML = "<b>0 - + BackSpace Home End</b> for FASTER SPEEDS";
theMenu.append(instruction3);
//-//
theMenu.append(ce("hr"));
//-//
let instruction4 = ce("div");
instruction4.innerHTML = "<b>Z</b> for Player Menu or <b>Double Click</b> on Player for Player Menu";
theMenu.append(instruction4);
//-//
theMenu.append(ce("hr"));
//-//
let instruction5 = ce("div");
instruction5.innerHTML = "<b>X</b> to start Mouse Position Mode";
theMenu.append(instruction5);
//-//
theMenu.append(ce("hr"));
//-//
let instruction6 = ce("div");
instruction6.innerHTML = "<b>Left Click</b> to find Mouse Position";
theMenu.append(instruction6);
//-//
theMenu.append(ce("hr"));
//-//
let instruction7 = ce("div");
instruction7.innerHTML = "<b>V</b> to end Mouse Position mode";
theMenu.append(instruction7);
//-//
theMenu.append(ce("hr"));
//-//
let instruction8 = ce("div");
instruction8.innerHTML = "<b>B</b> for Structure Mode";
theMenu.append(instruction8);
//-//
theMenu.append(ce("hr"));
//-//
let instruction9 = ce("div");
instruction9.innerHTML = "<b>Left Click</b> to Place a Structure";
theMenu.append(instruction9);
//-//
theMenu.append(ce("hr"));
//-//
let instruction10 = ce("div");
instruction10.innerHTML = "<b>ESC</b> to Exit Structure Mode";
theMenu.append(instruction10);
//-//
theMenu.append(ce("hr"));
//-//
let instruction11 = ce("div");
instruction11.innerHTML = "<b>Right Click</b> any Structure to EDIT that Structure";
theMenu.append(instruction11);
//-//
theMenu.append(ce("hr"));
//-//
let instruction12 = ce("div");
instruction12.innerHTML = "<b>Delete</b> to Remove Structures";
theMenu.append(instruction12);
//-//
theMenu.append(ce("hr"));
//-//
let instruction13 = ce("div");
instruction13.innerHTML = "<b>J</b> to Create a Structures GoTo Menu";
theMenu.append(instruction13);
//-//
theMenu.append(ce("hr"));
//-//
let instruction14 = ce("div");
instruction14.innerHTML = "<b>P</b> for Color Player Menu";
theMenu.append(instruction14);
//-//
theMenu.append(ce("hr"));
//-//
let instruction15 = ce("div");
instruction15.innerHTML = "<b>T</b> for Texture Player Menu";
theMenu.append(instruction15);
//-//
theMenu.append(ce("hr"));
//-//
let instruction16 = ce("div");
instruction16.innerHTML = "<b>O</b> for Player Opacity Menu";
theMenu.append(instruction16);
//-//
theMenu.append(ce("hr"));
//-//
let instruction17 = ce("div");
instruction17.innerHTML = "<b>N</b> for Transparent, M for Solid";
theMenu.append(instruction17);
//-//
theMenu.append(ce("hr"));
//-//
let instruction18 = ce("div");
instruction18.innerHTML = "<b>G</b> for Clearing Player Text";
theMenu.append(instruction18);
//-//
theMenu.append(ce("hr"));
//-//
let instruction19 = ce("div");
instruction19.innerHTML = "<b>Control + F</b> to Search, then Left Click to Travel to Search Result";
theMenu.append(instruction19);
//-//
theMenu.append(ce("hr"));
//-//
let linkToCode = ce("a");
linkToCode.href = "https://github.com/ChristopherTopalian/TopalianGameEngineDataNavigator";
linkToCode.target = "_blank";
linkToCode.textContent = "Christopher Topalian Data Navigator Code Here";
theMenu.append(linkToCode);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayer.js
function menuPlayer()
{
let menuId = 'menuPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
theMenu.style.height = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button, (1 line of code)
mainDiv.append(makeCloseButton(menuId));
//-//
// close button, (2 lines of code)
// let closeButton = makeCloseButton(menuId);
// mainDiv.append(closeButton);
//-//
/*
// close button, (many lines of code)
let closeButton = ce("button");
closeButton.className = "ourButton";
closeButton.style.position = "absolute";
closeButton.style.top = "0px";
closeButton.style.right = "15px";
closeButton.textContent = 'X';
closeButton.style.cursor = 'pointer';
closeButton.style.fontSize = '10px';
closeButton.onclick = function()
{
clickSound();
removeElement(whichMenuId);
keyboardControlOn();
};
closeButton.onmouseover = function()
{
hoverSound();
};
mainDiv.append(closeButton);
*/
//-//
// prevent menu leaving screen on left side
if (positionGet(menuId).x <= 100)
{
theMenu.style.left = 50;
}
// prevent menu going off screen top side
if (positionGet(menuId).y <= 200)
{
theMenu.style.top = 50;
}
//-//
theMenu.append(ce('hr'));
//-//
let instructionsText = ce("span");
instructionsText.id = 'instructionsText';
instructionsText.className = "textCompact";
instructionsText.textContent = "Instructions";
theMenu.append(instructionsText);
//-//
theMenu.append(ce('br'));
//-//
let instructionsButton = ce("button");
instructionsButton.id = 'instructionsButton';
instructionsButton.className = "ourButton";
instructionsButton.textContent = 'Instructions';
instructionsButton.onmouseover = function()
{
hoverSound();
};
instructionsButton.onclick = function()
{
clickSound();
menuInstructions();
};
theMenu.append(instructionsButton);
//-//
theMenu.append(ce('hr'));
//-//
let goToText = ce("span");
goToText.textContent = "Go To";
goToText.className = "textCompact";
theMenu.append(goToText);
//-//
theMenu.append(ce('br'));
//-//
let sections =
[
{
name: 'Scripting',
class: 'ourButton',
whenClicked: `travelTo('scripting');`
},
{
name: 'Evidence',
class: 'ourButton',
whenClicked: `travelTo('evidence');`
},
{
name: 'Books',
class: 'ourButton',
whenClicked: `travelTo('books');`
},
{
name: 'News',
class: 'ourButton',
whenClicked: `travelTo('news');`
}
];
for (let i = 0; i < sections.length; i++)
{
let travelToButton = ce("button");
travelToButton.textContent = sections[i].name;
travelToButton.className = sections[i].class;
travelToButton.onmouseover = function()
{
hoverSound();
};
travelToButton.onclick = function()
{
clickSound();
eval(sections[i].whenClicked);
};
theMenu.append(travelToButton);
}
//-//
theMenu.append(ce('hr'));
//-//
let audioText = ce("span");
audioText.textContent = "Audio";
audioText.className = "textCompact";
theMenu.append(audioText);
//-//
theMenu.append(ce('br'));
//-//
let songButton = ce("button");
songButton.textContent = "Songs";
songButton.className = "ourButton";
songButton.onmouseover = function()
{
hoverSound();
};
songButton.onclick = function()
{
clickSound();
menuSongChoices();
};
theMenu.append(songButton);
//-//
theMenu.append(ce('hr'));
//-//
let createStructuresText = ce("span");
createStructuresText.textContent = "Create Structures";
createStructuresText.className = "textCompact";
theMenu.append(createStructuresText);
//-//
theMenu.append(ce('br'));
//-//
let howToButton = ce("button");
howToButton.textContent = "How To";
howToButton.className = 'ourButton';
howToButton.onmouseover = function()
{
hoverSound();
};
howToButton.onclick = function()
{
clickSound();
menuStructureInstructions();
};
theMenu.append(howToButton);
//-//
let createButton = ce("button");
createButton.textContent = "Create";
createButton.className = "ourButton";
createButton.onmouseover = function()
{
hoverSound();
};
createButton.onclick = function()
{
clickSound();
activateBuildMode();
};
theMenu.append(createButton);
//-//
let goToButton = ce("button");
goToButton.textContent = "Go To";
goToButton.className = "ourButton";
goToButton.onmouseover = function()
{
hoverSound();
};
goToButton.onclick = function()
{
clickSound();
structuresRow(ourPlayer.x, ourPlayer.y, 125, 200, structuresArray);
};
theMenu.append(goToButton);
//-//
theMenu.append(ce('hr'));
//-//
let playerText = ce("span");
playerText.textContent = "Player";
playerText.className = "textCompact";
theMenu.append(playerText);
//-//
theMenu.append(ce('br'));
//-//
let nameButton = ce("button");
nameButton.textContent = "Name";
nameButton.className = "ourButton";
nameButton.onmouseover = function()
{
hoverSound();
};
nameButton.onclick = function()
{
clickSound();
menuPlayerName('thePlayer');
};
theMenu.append(nameButton);
//-//
theMenu.append(ce('hr'));
//-//
let playerAppearanceText = ce("span");
playerAppearanceText.textContent = "Player Appearance";
playerAppearanceText.className = "textCompact";
theMenu.append(playerAppearanceText);
//-//
theMenu.append(ce('br'));
//-//
let textColorButton = ce("button");
textColorButton.textContent = "Text Color";
textColorButton.className = "ourButton";
textColorButton.title = 'menuPlayerColorText';
textColorButton.onmouseover = function()
{
hoverSound();
};
textColorButton.onclick = function()
{
clickSound();
menuPlayerColorText();
};
theMenu.append(textColorButton);
//-//
let textureButton = ce("button");
textureButton.textContent = "Texture";
textureButton.className = "ourButton";
textureButton.onmouseover = function()
{
hoverSound();
};
textureButton.onclick = function()
{
clickSound();
menuPlayerTexture2();
};
theMenu.append(textureButton);
//-//
let opacityButton = ce("button");
opacityButton.textContent = "Opacity";
opacityButton.className = "ourButton";
opacityButton.onmouseover = function()
{
hoverSound();
};
opacityButton.onclick = function()
{
clickSound();
menuPlayerOpacity();
};
theMenu.append(opacityButton);
//-//
let colorButton = ce("button");
colorButton.textContent = "Color";
colorButton.className = "ourButton";
colorButton.onmouseover = function()
{
hoverSound();
};
colorButton.onclick = function()
{
clickSound();
menuPlayerColor();
};
theMenu.append(colorButton);
//-//
theMenu.append(ce('hr'));
//-//
let playerSpeedText = ce("span");
playerSpeedText.textContent = "Player Speed";
playerSpeedText.className = "textCompact";
theMenu.append(playerSpeedText);
//-//
theMenu.append(ce('br'));
//-//
let playerSpeedButton = ce("button");
playerSpeedButton.textContent = "Speed";
playerSpeedButton.className = "ourButton";
playerSpeedButton.onmouseover = function()
{
hoverSound();
};
playerSpeedButton.onclick = function()
{
clickSound();
menuPlayerSpeed();
};
theMenu.append(playerSpeedButton);
//-//
theMenu.append(ce('hr'));
//-//
let playerPosText = ce("span");
playerPosText.textContent = "Player Position";
playerPosText.className = "textCompact";
theMenu.append(playerPosText);
//-//
theMenu.append(ce('br'));
//-//
let getPosButton = ce("button");
getPosButton.textContent = "Get";
getPosButton.className = "ourButton";
getPosButton.onmouseover = function()
{
hoverSound();
};
getPosButton.onclick = function()
{
clickSound();
menuPlayerPositionGet();
};
theMenu.append(getPosButton);
//-//
let setPosButton = ce("button");
setPosButton.textContent = "Set";
setPosButton.className = "ourButton";
setPosButton.onmouseover = function()
{
hoverSound();
};
setPosButton.onclick = function()
{
clickSound();
menuPlayerPositionSet();
};
theMenu.append(setPosButton);
//-//
theMenu.append(ce('hr'));
//-//
let playerSizeText = ce("span");
playerSizeText.textContent = "Player Size";
playerSizeText.className = "textCompact";
theMenu.append(playerSizeText);
//-//
theMenu.append(ce('br'));
//-//
let playerSizeGetButton = ce("button");
playerSizeGetButton.textContent = "Get";
playerSizeGetButton.className = "ourButton";
playerSizeGetButton.onmouseover = function()
{
hoverSound();
};
playerSizeGetButton.onclick = function()
{
clickSound();
menuPlayerSizeGet();
};
theMenu.append(playerSizeGetButton);
//-//
let playerSizeSetButton = ce("button");
playerSizeSetButton.textContent = "Set";
playerSizeSetButton.className = "ourButton";
playerSizeSetButton.onmouseover = function()
{
hoverSound();
};
playerSizeSetButton.onclick = function()
{
clickSound();
menuPlayerSizeSet();
};
theMenu.append(playerSizeSetButton);
//-//
theMenu.append(ce('hr'));
//-//
let mousePosText = ce("span");
mousePosText.textContent = "Mouse Position";
mousePosText.className = "textCompact";
theMenu.append(mousePosText);
//-//
theMenu.append(ce('br'));
//-//
let mouseOnButton = ce("button");
mouseOnButton.textContent = "On";
mouseOnButton.className = "ourButton";
mouseOnButton.onmouseover = function()
{
hoverSound();
};
mouseOnButton.onclick = function()
{
clickSound();
mouseOn();
};
theMenu.append(mouseOnButton);
//-//
let mouseOffButton = ce("button");
mouseOffButton.textContent = "Off";
mouseOffButton.className = "ourButton";
mouseOffButton.onmouseover = function()
{
hoverSound();
};
mouseOffButton.onclick = function()
{
clickSound();
mouseOff();
};
theMenu.append(mouseOffButton);
//-//
theMenu.append(ce('hr'));
//-//
let distanceText = ce("span");
distanceText.textContent = "Distance";
distanceText.className = "textCompact";
theMenu.append(distanceText);
//-//
theMenu.append(ce('br'));
//-//
let distanceFinderButton = ce("button");
distanceFinderButton.textContent = "Distance Finder";
distanceFinderButton.className = "ourButton";
distanceFinderButton.onmouseover = function()
{
hoverSound();
};
distanceFinderButton.onclick = function()
{
clickSound();
menuPlayerDistance();
};
theMenu.append(distanceFinderButton);
//-//
theMenu.append(ce('hr'));
//-//
let findText = ce("span");
findText.textContent = "Find";
findText.className = "textCompact";
theMenu.append(findText);
//-//
theMenu.append(ce('br'));
//-//
let searchButton = ce("button");
searchButton.textContent = "Search";
searchButton.className = "ourButton";
searchButton.onmouseover = function()
{
hoverSound();
};
searchButton.onclick = function()
{
clickSound();
menuSearch();
};
theMenu.append(searchButton);
//-//
theMenu.append(ce('hr'));
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerColor.js
function menuPlayerColor()
{
let menuId = 'menuColorPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let colorPlayerText = ce("span");
colorPlayerText.textContent = "Color Player";
theMenu.append(colorPlayerText);
//-//
theMenu.append(ce('br'));
//-//
let colorPicker = ce('input');
colorPicker.type = 'color';
colorPicker.id = 'myColorPicker';
colorPicker.onmouseover = function()
{
hoverSound();
};
colorPicker.onclick = function()
{
clickSound();
};
colorPicker.oninput = function()
{
clickSound();
ge(activePlayer).style.backgroundColor = colorPicker.value;
ge('hexTextbox').value =colorPicker.value;
ge('theRed').value = hexToRgb(colorPicker.value).r;
ge('theGreen').value = hexToRgb(colorPicker.value).g;
ge('theBlue').value = hexToRgb(colorPicker.value).b;
};
theMenu.append(colorPicker);
//-//
let hexTextbox = ce('input');
hexTextbox.type = 'text';
hexTextbox.id = 'hexTextbox';
hexTextbox.style.width = '100px';
theMenu.append(hexTextbox);
//-//
theMenu.append(ce('br'));
//-//
let redTextArea = ce("textarea");
redTextArea.id = "theRed";
redTextArea.className = "textInput";
redTextArea.onkeydown = function()
{
keyboardControlOff();
};
//-//
// colorRText
let colorRText = ce("span");
colorRText.textContent = "R";
colorRText.style.marginRight = "5px";
theMenu.append(colorRText);
theMenu.append(redTextArea);
//-//
theMenu.append(ce('br'));
//-//
// colorGText
let colorGText = ce("span");
colorGText.textContent = "G";
colorGText.style.marginRight = "5px";
theMenu.append(colorGText);
//-//
let greenTextArea = ce("textarea");
greenTextArea.id = "theGreen";
greenTextArea.className = "textInput";
greenTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(greenTextArea);
//-//
theMenu.append(ce('br'));
//-//
// colorBText
let colorBText = ce("span");
colorBText.textContent = "B";
colorBText.style.marginRight = "5px";
theMenu.append(colorBText);
//-//
let blueTextArea = ce("textarea");
blueTextArea.id = "theBlue";
blueTextArea.className = "textInput";
blueTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(blueTextArea);
//-//
theMenu.append(ce('br'));
//-//
let enterButton = ce("button");
enterButton.textContent = "Enter";
enterButton.className = "ourButton";
enterButton.onclick = function()
{
// get RGB values from input fields and convert them to numbers
let red = parseInt(ge('theRed').value, 10);
let green = parseInt(ge('theGreen').value, 10);
let blue = parseInt(ge('theBlue').value, 10);
// calculate the hex value
let hexColor = rgbToHex(red, green, blue);
// set the hex value to the hexTextbox
ge('hexTextbox').value = hexColor;
// set the background color of the activePlayer element using RGB values
ge(activePlayer).style.backgroundColor = 'rgb(' +
red + ',' +
green + ',' +
blue +
')';
colorPicker.value = hexColor;
keyboardControlOn();
enterButtonSound();
};
theMenu.append(enterButton);
//-//
let buttonContainer = ce('div');
buttonContainer.style.display = 'grid';
buttonContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
buttonContainer.style.gap = '0.5px';
theMenu.append(buttonContainer);
//-//
for (let z = 0; z < colorChoices.length; z++)
{
let colorChoiceButton = ce("button");
colorChoiceButton.textContent = colorChoices[z].name;
colorChoiceButton.className = 'ourButton';
colorChoiceButton.style.backgroundColor = "rgb("+colorChoices[z].color+")";
colorChoiceButton.style.cursor = 'pointer';
colorChoiceButton.onmouseover = function()
{
hoverSound();
};
colorChoiceButton.onclick = function()
{
clickSound();
ge(activePlayer).style.backgroundColor = "rgb("+colorChoices[z].color+")";
// split color value to array of rgb
let rgbValues = colorChoices[z].color.split(',');
let r = ge("theRed").value = rgbValues[0].trim();
let g = ge("theGreen").value = rgbValues[1].trim();
let b = ge("theBlue").value = rgbValues[2].trim();
colorPicker.value = rgbToHex(r, g, b);
ge('hexTextbox').value = rgbToHex(r, g, b);
updatePlayer();
};
buttonContainer.append(colorChoiceButton);
}
//-//
buttonContainer.append(ce("br"));
//-//
let customColorButton = ce("button");
customColorButton.textContent = "Custom";
customColorButton.className = "ourButton";
customColorButton.onclick = function()
{
customColor();
};
theMenu.append(customColorButton);
//-//
showPlayerData();
}
function customColor()
{
audioPlay("sfx_blip_001", 1.0);
// color is only applied if NO texture is on the player
ge(activePlayer).style.backgroundImage = 'none';
let whichColor = prompt("Enter RGB as 255,255,255")
let theColorFormatted = 'rgb('+whichColor+')';
// color of player
ge(activePlayer).style.backgroundColor = theColorFormatted;
let colorSeparated = whichColor.split(',');
// fill in textarea, show value of choice
ge("theRed").value = colorSeparated[0];
ge("theGreen").value = colorSeparated[1];
ge("theBlue").value = colorSeparated[2];
// update playerArray to show changed value
updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerColorText.js
function menuPlayerColorText()
{
let menuId = 'menuColorPlayerText';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
// position by player
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let titleSpan = ce("span");
titleSpan.textContent = "COLOR TEXT";
titleSpan.className = 'menu';
theMenu.append(titleSpan);
//-//
theMenu.append(ce("br"));
//-//
let colorPicker = ce('input');
colorPicker.type = 'color';
colorPicker.id = 'myColorPicker';
colorPicker.onmouseover = function()
{
hoverSound();
};
colorPicker.onclick = function()
{
clickSound();
};
colorPicker.oninput = function()
{
clickSound();
ge(activePlayer).style.color = colorPicker.value;
ge('hexTextbox').value =colorPicker.value;
ge('theRed').value = hexToRgb(colorPicker.value).r;
ge('theGreen').value = hexToRgb(colorPicker.value).g;
ge('theBlue').value = hexToRgb(colorPicker.value).b;
};
theMenu.append(colorPicker);
//-//
let hexTextbox = ce('input');
hexTextbox.type = 'text';
hexTextbox.id = 'hexTextbox';
hexTextbox.style.width = '100px';
theMenu.append(hexTextbox);
//-//
theMenu.append(ce('br'));
//-//
let redLabel = ce('label');
redLabel.textContent = "R ";
theMenu.append(redLabel);
//-//
let redTextArea = ce("textarea");
redTextArea.id = "theRed";
redTextArea.className = 'textInput';
redTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(redTextArea);
//-//
theMenu.append(ce("br"));
//-//
let greenLabel = ce('label');
greenLabel.textContent = "G ";
theMenu.append(greenLabel);
//-//
let greenTextArea = ce("textarea");
greenTextArea.id = "theGreen";
greenTextArea.className = 'textInput';
greenTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(greenTextArea);
//-//
theMenu.append(ce("br"));
//-//
let blueLabel = ce('label');
blueLabel.textContent = "B ";
theMenu.append(blueLabel);
//-//
let blueTextArea = ce("textarea");
blueTextArea.id = "theBlue";
blueTextArea.className = 'textInput';
blueTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(blueTextArea);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.textContent = "Enter";
enterButton.className = "ourButton";
enterButton.onclick = function()
{
// get RGB values from input fields and convert them to numbers
let red = parseInt(ge('theRed').value, 10);
let green = parseInt(ge('theGreen').value, 10);
let blue = parseInt(ge('theBlue').value, 10);
// calculate the hex value
let hexColor = rgbToHex(red, green, blue);
// set the hex value to the hexTextbox
ge('hexTextbox').value = hexColor;
// set the background color of the activePlayer element using RGB values
ge(activePlayer).style.color = 'rgb(' +
red + ',' +
green + ',' +
blue +
')';
colorPicker.value = hexColor;
keyboardControlOn();
enterButtonSound();
};
theMenu.append(enterButton);
//-//
theMenu.append(ce("hr"));
//-//
let buttonContainer = ce('div');
buttonContainer.style.display = 'grid';
buttonContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
theMenu.append(buttonContainer);
//-//
for (let z = 0; z < colorChoices.length; z++)
{
let colorChoiceButton = ce("button");
colorChoiceButton.textContent = colorChoices[z].name;
colorChoiceButton.className = 'ourButton';
colorChoiceButton.style.backgroundColor = "rgb("+colorChoices[z].color+")";
colorChoiceButton.onclick = function()
{
ge(activePlayer).style.color = "rgb("+colorChoices[z].color+")";
// split color value to array of rgb
let rgbValues = colorChoices[z].color.split(',');
let r = ge("theRed").value = rgbValues[0].trim();
let g = ge("theGreen").value = rgbValues[1].trim();
let b = ge("theBlue").value = rgbValues[2].trim();
colorPicker.value = rgbToHex(r, g, b);
ge('hexTextbox').value = rgbToHex(r, g, b);
updatePlayer();
};
buttonContainer.append(colorChoiceButton);
}
//-//
buttonContainer.append(ce("br"));
//-//
theMenu.append(ce("br"));
//-//
let customButton = ce("button");
customButton.className = 'ourButton';
customButton.textContent = 'Custom';
customButton.onclick = function()
{
customFontColor();
};
theMenu.append(customButton);
}
function customFontColor()
{
let theColor = prompt("Enter RGB as 255, 255, 255")
let theColorFormatted = 'rgb('+theColor+')';
// color of text on player object
ge(activePlayer).style.color = theColorFormatted;
let colorSeparated = theColor.split(',');
// fill in the textarea, to show the value of our choice
ge("theRed").value = colorSeparated[0];
ge("theGreen").value = colorSeparated[1];
ge("theBlue").value = colorSeparated[2];
// update playerArray to show changed value
updatePlayer();
}
// Read the 3 Textarea, for the red, green, blue values of our player text color
// Set the text color of our player
function customPlayerTextColorFromTextInput()
{
let r = ge("theRed").value;
let g = ge("theGreen").value;
let b = ge("theBlue").value;
ge(activePlayer).style.color= "rgb("+r+","+g+","+b+")";
// fill textarea, show value of choice
ge("theRed").value = r;
ge("theGreen").value = g;
ge("theBlue").value = b;
// update playerArray to show changed value
updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerDistance.js
function menuPlayerDistance()
{
let menuId = 'menuPositionPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
let hr001 = ce("hr");
theMenu.append(hr001);
//-//
let distanceSection = ce("div");
theMenu.append(distanceSection);
//-//
let distanceLabel = ce("span");
distanceLabel.style.color = 'rgb(255, 255, 255)';
distanceLabel.textContent = 'Distance';
distanceLabel.className = 'menu';
distanceSection.append(distanceLabel);
//-//
let hr002 = ce("hr");
distanceSection.append(hr002);
//-//
let idLabel = ce("label");
idLabel.style.color = 'rgb(255, 255, 255)';
idLabel.textContent = 'Id ';
theMenu.append(idLabel);
//-//
let idTextarea = ce("textarea");
idTextarea.id = 'idToFindDistance';
idTextarea.className = 'textInput';
idTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(idTextarea);
//-//
theMenu.append(ce('hr'));
//-//
let enterButton = ce("button");
enterButton.textContent = 'Enter';
enterButton.className = 'ourButton';
enterButton.onclick = function()
{
keepGettingXYCustom();
keyboardControlOn();
enterButtonSound();
};
theMenu.append(enterButton);
//-//
let hr003 = ce("hr");
theMenu.append(hr003);
//-//
let cancelButton = ce("button");
cancelButton.textContent = 'Cancel';
cancelButton.className = 'ourButton';
cancelButton.onclick = function()
{
removeTimer(ourTimer);
};
theMenu.append(cancelButton);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerName.js
function menuPlayerName(whichId)
{
let menuId = 'menuNamePlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
let hr = ce("hr");
hr.style.height = "1px";
hr.style.border = "none";
hr.style.backgroundColor = "rgb(50, 50, 50)";
hr.style.color = "rgb(50, 50, 50)";
theMenu.append(hr);
//-//
let titleSpan = ce("span");
titleSpan.textContent = "NAME OF PLAYER";
titleSpan.style.color = "rgb(255, 255, 255)";
titleSpan.className = 'menu';
theMenu.append(titleSpan);
//-//
theMenu.append(ce('br'));
//-//
let nameLabel = ce('div');
nameLabel.textContent = "Name ";
theMenu.append(nameLabel);
//-//
let nameTextArea = ce("textarea");
nameTextArea.id = "thePlayerName";
nameTextArea.className = "textInput";
nameTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(nameTextArea);
//-//
theMenu.append(ce('br'));
//-//
let enterButton = ce("button");
enterButton.textContent = "Enter";
enterButton.className = "ourButton";
enterButton.onclick = function()
{
enterButtonSound();
ge('infoDivPlayer').innerText = nameTextArea.value;
playerArray[0].name = nameTextArea.value;
showPlayerData();
keyboardControlOn();
};
theMenu.append(enterButton);
//-//
let hr2 = ce("hr");
hr2.className = "hrCompact";
theMenu.append(hr2);
//-//
let customButton = ce("button");
customButton.textContent = "Custom";
customButton.className = "ourButton";
customButton.onclick = customPlayerName;
theMenu.append(customButton);
}
function customPlayerName()
{
let theName = prompt("Enter Name")
// update textarea, to show name entered
ge("thePlayerName").value = theName;
playerArray[0].name = theName;
ge('infoDivPlayer').textContent = theName;
showPlayerData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerOpacity.js
function menuPlayerOpacity()
{
let menuId = 'menuOpacityPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '200px';
mainDiv.append(theMenu);
//-//
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let titleSpan = ce("h1");
titleSpan.style.color = 'rgb(255, 255, 255)';
titleSpan.textContent = 'OPACITY OF PLAYER';
titleSpan.className = 'menu';
theMenu.append(titleSpan);
//-//
let textNode = ce('div');
textNode.textContent = 'Alpha ';
theMenu.append(textNode);
//-//
let opacityTextarea = ce("textarea");
opacityTextarea.id = 'theOpacity';
opacityTextarea.className = 'textInput';
opacityTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(opacityTextarea);
//-//
theMenu.append(ce('br'));
//-//
let enterButton = ce("button");
enterButton.textContent = 'Enter';
enterButton.className = 'ourButton';
enterButton.onclick = function()
{
let theOpacity = ge("theOpacity").value;
ge(activePlayer).style.opacity = theOpacity;
keyboardControlOn();
enterButtonSound();
updatePlayer();
};
theMenu.append(enterButton);
//-//
theMenu.append(ce('hr'));
//-//
let opacityButtons = [
"Default", 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
];
for (let z = 0; z < opacityButtons.length; z++)
{
let opacityButton = ce("button");
opacityButton.textContent = opacityButtons[z];
opacityButton.className = 'ourButton';
opacityButton.onclick = function()
{
ge(activePlayer).style.opacity = opacityButtons[z];
ge("theOpacity").value = opacityButtons[z];
updatePlayer();
};
theMenu.append(opacityButton);
}
//-//
theMenu.append(ce('br'));
//-//
let customButton = ce("button");
customButton.textContent = 'Custom';
customButton.className = 'ourButton';
customButton.onclick = function()
{
customOpacity();
};
theMenu.append(customButton);
//-//
theMenu.append(ce('br'));
}
function menuPlayerOpacity2()
{
audioPlay("sfx_blip_001", 1.0);
let menuId = 'menuOpacityPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let titleSpan = ce("span");
titleSpan.style.color = 'rgb(255, 255, 255)';
titleSpan.textContent = 'OPACITY OF PLAYER';
theMenu.append(titleSpan);
//-//
theMenu.append(ce('br'));
//-//
let textNode = ce('div');
textNode.textContent = 'Alpha ';
theMenu.append(textNode);
//-//
let opacityTextarea = ce("textarea");
opacityTextarea.id = 'theOpacity';
opacityTextarea.className = 'textInput';
opacityTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(opacityTextarea);
//-//
theMenu.append(ce('br'));
//-//
let enterButton = ce("button");
enterButton.textContent = 'Enter';
enterButton.className = 'ourButton';
enterButton.onclick = function()
{
let theOpacity = ge("theOpacity").value;
ge(activePlayer).style.opacity = theOpacity;
keyboardControlOn();
enterButtonSound();
updatePlayer();
};
theMenu.append(enterButton);
//-//
theMenu.append(ce('hr'));
//-//
let opacityButtons = [
"Default", 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
];
for (let z = 0; z < opacityButtons.length; z++)
{
let opacityButton = ce("button");
opacityButton.textContent = opacityButtons[z];
opacityButton.className = 'ourButton';
opacityButton.onclick = function()
{
ge(activePlayer).style.opacity = opacityButtons[z];
ge("theOpacity").value = opacityButtons[z];
updatePlayer();
};
theMenu.append(opacityButton);
}
//-//
theMenu.append(ce('br'));
//-//
let customButton = ce("button");
customButton.textContent = 'Custom';
customButton.className = 'ourButton';
customButton.onclick = function()
{
customOpacity();
};
theMenu.append(customButton);
//-//
theMenu.append(ce('br'));
}
//-//
function customOpacity()
{
let theOpacity = prompt("Enter Opacity as 0.0 to 1.0")
ge(activePlayer).style.opacity = theOpacity;
ge("theOpacity").value = theOpacity;
updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerPositionGet.js
let currentPosTimer;
function menuPlayerPositionGet()
{
let menuId = 'menuPositionPlayerGet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce("hr"));
//-//
let menuTitle = ce('div');
menuTitle.style.color = "rgb(255, 255, 255)";
menuTitle.textContent = "GET PLAYER POSITION";
menuTitle.className = 'menu';
theMenu.append(menuTitle);
//-//
theMenu.append(ce("hr"));
//-//
let buttonContainer = ce('div');
theMenu.append(buttonContainer);
//-//
let playerPosButton = ce("button");
playerPosButton.className = "ourButton";
playerPosButton.onclick = function()
{
playerPositionGet();
};
playerPosButton.textContent = "GET POS";
buttonContainer.append(playerPosButton);
//-//
buttonContainer.append(ce("br"));
//-//
let playerPosRepeatButton = ce("button");
playerPosRepeatButton.className = "ourButton";
playerPosRepeatButton.onclick = function()
{
playerPositionGetRepeat();
};
playerPosRepeatButton.textContent = "GET POS REPEAT";
buttonContainer.append(playerPosRepeatButton);
//-//
buttonContainer.append(ce("br"));
//-//
let clearPosTimeButton = ce("button");
clearPosTimeButton.className = "ourButton";
clearPosTimeButton.onclick = function()
{
clearCurrentPosTimer();
};
clearPosTimeButton.textContent = "Cancel Get Pos";
buttonContainer.append(clearPosTimeButton);
//-//
buttonContainer.append(ce("br"));
//-//
theMenu.append(ce("hr"));
//-//
let xPosLabel = ce("label");
xPosLabel.textContent = "X ";
theMenu.append(xPosLabel);
//-//
let xPosInput = ce("textarea");
xPosInput.id = "gotX";
xPosInput.className = "textInput";
xPosInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xPosInput);
//-//
theMenu.append(ce("br"));
//-//
let yPosLabel = ce("label");
yPosLabel.textContent = "Y ";
theMenu.append(yPosLabel);
//-//
let yPosInput = ce("textarea");
yPosInput.id = "gotY";
yPosInput.className = "textInput";
yPosInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(yPosInput);
//-//
theMenu.append(ce("br"));
//-//
let cancelButton = ce("button");
cancelButton.className = 'ourButton';
cancelButton.textContent = "Cancel Timer";
cancelButton.onclick = function()
{
clearInterval(currentPosTimer);
};
theMenu.append(cancelButton);
}
//-//
function playerPositionGet()
{
let currentPosition = positionGet("thePlayer");
ge(activePlayer).innerText = currentPosition.x.toFixed(0) + "\n" + currentPosition.y.toFixed(0) + "\n";
ge('gotX').value = currentPosition.x;
ge('gotY').value = currentPosition.y;
}
function playerPositionGetRepeat()
{
currentPosTimer = setInterval(function()
{
playerPositionGet();
}, 1000);
}
function clearCurrentPosTimer()
{
clearInterval(currentPosTimer);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerPositionSet.js
function menuPlayerPositionSet()
{
let menuId = 'menuPositionPlayerSet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce("hr"));
//-//
let menuTitle = ce("span");
menuTitle.textContent = "SET PLAYER POSITION";
menuTitle.className = 'menu';
theMenu.append(menuTitle);
//-//
theMenu.append(ce("hr"));
//-//
let buttonContainer = ce('div');
theMenu.append(buttonContainer);
//-//
let positionValues = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];
for (let x = 0; x < positionValues.length; x++)
{
let button1 = ce("button");
button1.className = "ourButton";
button1.onclick = function()
{
playerMoveTo(activePlayer, positionValues[x]);
};
button1.textContent = positionValues[x];
buttonContainer.append(button1);
}
//-//
buttonContainer.append(ce("br"));
//-//
theMenu.append(ce("hr"));
//-//
let customButton = ce("button");
customButton.className = "ourButton";
customButton.onclick = function()
{
customPosition();
};
customButton.textContent = "Custom Player Position";
theMenu.append(customButton);
//-//
theMenu.append(ce("hr"));
//-//
let label1 = ce("label");
label1.textContent = "X ";
theMenu.append(label1);
//-//
let textArea1 = ce("textarea");
textArea1.id = "customPosX";
textArea1.className = "textInput";
textArea1.onkeydown = function() {
keyboardControlOff();
};
theMenu.append(textArea1);
//-//
theMenu.append(ce('br'));
//-//
let label2 = ce("label");
label2.textContent = "Y ";
theMenu.append(label2);
//-//
let textArea2 = ce("textarea");
textArea2.id = "customPosY";
textArea2.className = "textInput";
textArea2.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(textArea2);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.className = "ourButton";
enterButton.onclick = function()
{
customPositionText();
keyboardControlOn();
enterButtonSound();
};
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
// move player to a preset location, based on which button was pressed
function playerMoveTo(whichId, theLocation)
{
audioPlay("sfx_blip_001", 1.0);
if (theLocation == '1')
{
ourPlayer.x = 100;
ourPlayer.y = 700;
}
if (theLocation == '2')
{
ourPlayer.x = 500;
ourPlayer.y = 700;
}
if (theLocation == '3')
{
ourPlayer.x = 1000;
ourPlayer.y = 700;
}
if (theLocation == '4')
{
ourPlayer.x = 100;
ourPlayer.y = 200;
}
if (theLocation == '5')
{
ourPlayer.x = 500;
ourPlayer.y = 200;
}
if (theLocation == '6')
{
ourPlayer.x = 1000;
ourPlayer.y = 200;
}
if (theLocation == '7')
{
ourPlayer.x = 700;
ourPlayer.y = 700;
}
if (theLocation == '8')
{
ourPlayer.x = 50;
ourPlayer.y = 900;
}
if (theLocation == '9')
{
ourPlayer.x = 50;
ourPlayer.y = 100;
}
if (theLocation == '0')
{
ourPlayer.x = 300;
ourPlayer.y = 700;
}
movePlayer(activePlayer);
// update the playerArray posX
playerArray[0].posX = ourPlayer.x;
// update the playerArray posY
playerArray[0].posY = ourPlayer.y;
// update the textArea of the posX and posY
ge("customPosX").value = ourPlayer.x;
ge("customPosY").value = ourPlayer.y
// show the playerArray data in the textarea that has the id named textAreaPlayerData
showPlayerData();
// update playerArray to show the changed value
// updatePlayer();
}
function customPosition()
{
let playerX = prompt("Enter X Position");
let playerY = prompt("Enter Y Position");
// if person doesn't input a value, then keep the player where they are
if (playerX == '' || playerY == '')
{
ourPlayer.x = ourPlayer.x;
ourPlayer.y = ourPlayer.y;
return;
}
// x location of the player
ourPlayer.x= parseFloat(playerX);
// y location of the player
ourPlayer.y= parseFloat(playerY);
// if person did answer Y position, move player
if (playerY != '')
{
movePlayer(activePlayer);
}
// update the playerArray posX
playerArray[0].posX = ourPlayer.x;
// update the playerArray posY
playerArray[0].posY = ourPlayer.y;
// show the playerArray data in the textarea that has the id named textAreaPlayerData
showPlayerData();
ge("customPosX").value = ourPlayer.x;
ge("customPosY").value = ourPlayer.y;
// update playerArray to show changed value
// updatePlayer();
}
function customPositionText()
{
let playerX = ge("customPosX").value;
let playerY = ge("customPosY").value;
// if person doesn't input a value, then keep person where they are
if (playerY == '')
{
ourPlayer.x = ourPlayer.x;
ourPlayer.y = ourPlayer.y;
return;
}
// x location of the player
ourPlayer.x= parseFloat(playerX);
// y location of the player
ourPlayer.y= parseFloat(playerY);
// if person did answer Y position, move player
if (playerY != '')
{
movePlayer(activePlayer);
}
// update the playerArray posX
playerArray[0].posX = ourPlayer.x;
// update the playerArray posY
playerArray[0].posY = ourPlayer.y;
// show the playerArray data in the textarea that has the id named textAreaPlayerData
showPlayerData();
// update playerArray to show changed value
// updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerSizeGet.js
function menuPlayerSizeGet()
{
let menuId = 'menuSizePlayerGet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.fontSize = '20px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce("hr"));
//-//
let titleSpan = ce("div");
titleSpan.style.color = "rgb(255, 255, 255)";
titleSpan.textContent = "GET PLAYER SIZE";
titleSpan.className = 'menu';
theMenu.append(titleSpan);
//-//
theMenu.append(ce("hr"));
//-//
let getSizeButton = ce("button");
getSizeButton.onclick = function()
{
playerSizeGet();
};
getSizeButton.className = "ourButton";
getSizeButton.textContent = "GET SIZE";
theMenu.append(getSizeButton);
//-//
theMenu.append(ce("br"));
//-//
let xSizeLabel = ce('label');
xSizeLabel.textContent = "Width";
xSizeLabel.style.marginRight = '4px';
theMenu.append(xSizeLabel);
//-//
let xSizeTextarea = ce("textarea");
xSizeTextarea.id = "gotSizeX";
xSizeTextarea.className = "textInput";
xSizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xSizeTextarea);
//-//
theMenu.append(ce("br"));
//-//
let ySizeLabel = ce('label');
ySizeLabel.textContent = "Height";
ySizeLabel.style.marginRight = '4px';
theMenu.append(ySizeLabel);
//-//
let ySizeTextarea = ce("textarea");
ySizeTextarea.id = "gotSizeY";
ySizeTextarea.className = "textInput";
ySizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(ySizeTextarea);
}
//-//
function playerSizeGet()
{
let currentSize = sizeGet("thePlayer");
ge('gotSizeX').value = currentSize.x;
ge('gotSizeY').value = currentSize.y;
ge(activePlayer).innerText = currentSize.x + "\n" + currentSize.y;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerSizeSet.js
function menuPlayerSizeSet()
{
let menuId = 'menuSizePlayerSet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.fontSize = '20px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let title = ce("span");
title.style.color = "rgb(255, 255, 255)";
title.textContent = " SET PLAYER SIZE ";
title.className = 'menu';
theMenu.append(title);
//-//
theMenu.append(ce('hr'));
//-//
let defaultButton = ce("button");
defaultButton.onclick = playerSizeSetDefault;
defaultButton.className = "ourButton";
defaultButton.textContent = "Default";
theMenu.append(defaultButton);
//-//
theMenu.append(ce('hr'));
//-//
let xSizeLabel = ce("label");
xSizeLabel.textContent = "Width ";
theMenu.append(xSizeLabel);
//-//
let xSizeInput = ce("textarea");
xSizeInput.id = "customSizeX";
xSizeInput.className = "textInput";
xSizeInput.onkeydown = keyboardControlOff;
theMenu.append(xSizeInput);
//-//
theMenu.append(ce('hr'));
//-//
let ySizeLabel = ce("label");
ySizeLabel.textContent = "Height ";
theMenu.append(ySizeLabel);
//-//
let ySizeInput = ce("textarea");
ySizeInput.id = "customSizeY";
ySizeInput.className = "textInput";
ySizeInput.onkeydown = keyboardControlOff;
theMenu.append(ySizeInput);
//-//
theMenu.append(ce('hr'));
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
playerSizeSet();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
function playerSizeSet()
{
// let currentSize = sizeGet("thePlayer");
let theSizeX;
let theSizeY;
theSizeX = ge('customSizeX').value;
theSizeY = ge('customSizeY').value;
ge(activePlayer).innerText = theSizeX + "\n" + theSizeY;
ge(activePlayer).style.width = theSizeX;
ge(activePlayer).style.height = theSizeY;
// update playerArray to show changed value
updatePlayer();
}
function playerSizeSetDefault()
{
// let currentSize = sizeGet("thePlayer");
let theSizeX = 70;
let theSizeY = 70;
ge('customSizeX').value = theSizeX;
ge('customSizeY').value = theSizeY;
ge(activePlayer).innerText = theSizeX + "\n" + theSizeY;
ge(activePlayer).style.width = theSizeX;
ge(activePlayer).style.height = theSizeY;
// update playerArray to show changed value
updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
//menuPlayerSpeed.js
function menuPlayerSpeed()
{
let menuId = 'menuSpeedPlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let title = ce("span");
title.style.color = "rgb(255, 255, 255)";
title.textContent = "SPEED OPTIONS";
theMenu.append(title);
//-//
theMenu.append(ce('hr'));
//-//
let speedValues = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];
for (let z = 0; z < speedValues.length; z++)
{
let speedButton = ce("button");
speedButton.textContent = speedValues[z];
speedButton.className = 'ourButton';
speedButton.onclick = function()
{
ourPlayer.speedMultiplier = speedValues[z];
ge("textSpeed").value = speedValues[z];
updatePlayer();
};
theMenu.append(speedButton);
}
//-//
let customButton = ce("button");
customButton.onclick = customSpeed;
customButton.className = "ourButton";
customButton.textContent = "Custom";
theMenu.append(customButton);
//-//
theMenu.append(ce('hr'));
//-//
let speedLabel = ce("div");
speedLabel.textContent = "SPEED ";
let speedInput = ce("textarea");
speedInput.id = "textSpeed";
speedInput.className = "textInput";
speedInput.onkeydown = keyboardControlOff;
speedLabel.append(speedInput);
theMenu.append(speedLabel);
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
customSpeedFromTextInput();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
function customSpeed()
{
let theSpeed = prompt("Enter Speed 1 to 1000 etc")
ourPlayer.speedMultiplier = theSpeed;
if (theSpeed == '' || theSpeed == null)
{
ourPlayer.speedMultiplier = 10;
}
ge("textSpeed").value = ourPlayer.speedMultiplier;
ge('infoDiv').textContent = 'Speed: ' + ourPlayer.speedMultiplier;
// update playerArray to show changed value
updatePlayer();
}
function customSpeedFromTextInput()
{
let theSpeed = ge("textSpeed").value;
ourPlayer.speedMultiplier = theSpeed;
ge('infoDiv').textContent = 'Speed: ' + ourPlayer.speedMultiplier;
// update playerArray to show changed value
updatePlayer();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuPlayerTexture.js
let textureArray =
[
{
name: "Default",
textureOffline: "src/media/textures/jane.png",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/jane.png"
},
{
name: "Concrete 1",
textureOffline: "src/media/textures/concrete1.jpg",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/concrete1.jpg"
},
{
name: "Wood 1",
textureOffline: "./src/media/textures/wood1.jpg",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/wood1.jpg"
},
{
name: "Zebra 1",
textureOffline: "src/media/textures/zebra1.jpg",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/zebra1.jpg"
},
{
name: "Boxing Glove",
textureOffline: "src/media/textures/boxingglove.png",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/boxingglove.png"
},
{
name: "Jane",
textureOffline: "src/media/textures/jane.png",
textureOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/jane.png"
}
];
function menuPlayerTexture2()
{
let menuId = 'menuTexturePlayer';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
// position by player
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theTitle = ce("span");
theTitle.style.color = "rgb(255, 255, 255)";
theTitle.textContent = "TEXTURE OPTIONS";
theMenu.append(theTitle);
//-//
theMenu.append(ce('hr'));
//-//
let textureButtonContainer = ce('div');
textureButtonContainer.style.display = 'grid';
textureButtonContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
textureButtonContainer.style.gap = '0.5px';
theMenu.append(textureButtonContainer);
for (let z = 0; z < textureArray.length; z++)
{
let textureButton = ce("img");
textureButton.onclick = function()
{
if (online == true)
{
ge(activePlayer).style.backgroundImage = 'url('+textureArray[z].textureOnline+')';
}
else if (online == false)
{
ge(activePlayer).style.backgroundImage = 'url('+textureArray[z].textureOffline+')';
}
updatePlayer();
};
textureButton.title = textureArray[z].name;
if (online == true)
{
textureButton.src = textureArray[z].textureOnline;
}
else if (online == false)
{
textureButton.src = textureArray[z].textureOffline;
}
textureButton.style.width = '100px';
textureButtonContainer.append(textureButton);
//-//
theMenu.append(ce('br'));
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuSearch.js
function menuSearch()
{
let menuId = 'menuSearchId';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.fontSize = '20px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theTitle = ce("span");
theTitle.style.color = "rgb(255, 255, 255)";
theTitle.textContent = "SEARCH";
theTitle.className = 'menu';
theMenu.append(theTitle);
//-//
theMenu.append(ce('hr'));
//-//
let instruction1 = ce("b");
instruction1.textContent = "Control + F";
theMenu.append(instruction1);
//-//
let instruction2 = ce("span");
instruction2.textContent = " to Search for Word or Phrase";
theMenu.append(instruction2);
//-//
theMenu.append(ce('hr'));
//-//
let instruction3 = ce("b");
instruction3.textContent = "Left Click";
theMenu.append(instruction3);
//-//
let instruction4 = ce("span");
instruction4.textContent = " to Place Player Near Found Word or Phrase";
theMenu.append(instruction4);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuSongChoices.js
function menuSongChoices()
{
let menuId = 'songMenu';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theLink = ce('a');
theLink.href = 'https://drive.google.com/drive/folders/162IA3RC9rDV8Dkwk_bFd-an8HPEY9mhE';
theLink.target = '_blank';
theLink.textContent = 'Download Song Files';
theLink.title = 'Download Song files and then\ndrag them to src/media/songs';
theLink.style.fontSize = '17px';
theMenu.append(theLink);
//-//
theMenu.append(ce('hr'));
//-//
let volumeTitle = ce("h1");
volumeTitle.textContent = "VOLUME";
volumeTitle.className = 'menu';
theMenu.append(volumeTitle);
//-//
theMenu.append(ce('hr'));
//-//
let numberContainer = ce('div');
numberContainer.id = 'numberContainer';
numberContainer.style.display = 'grid';
numberContainer.style.gridTemplateColumns = 'repeat(5, 1fr)';
numberContainer.style.gap = '2px';
numberContainer.style.padding = '2px';
theMenu.append(numberContainer);
//-//
let volumeSetting = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];
for (let i = 0; i < volumeSetting.length; i++)
{
let volumeButton = ce("button");
volumeButton.className = "ourButton";
volumeButton.textContent = volumeSetting[i];
volumeButton.onmouseover = function()
{
hoverSound();
};
volumeButton.onclick = function()
{
clickSound();
volumeSet(volumeSetting[i]);
};
numberContainer.append(volumeButton);
}
//-//
theMenu.append(ce('hr'));
//-//
let songsTitle = ce("h1");
songsTitle.textContent = "SONGS";
songsTitle.className = 'menu';
theMenu.append(songsTitle);
//-//
theMenu.append(ce('hr'));
//-//
let songButtonsContainer = ce('div');
songButtonsContainer.id = 'songButtonsContainer';
songButtonsContainer.style.display = 'grid';
songButtonsContainer.style.gridTemplateColumns = 'repeat(2, 1fr)';
songButtonsContainer.style.gap = '10px';
songButtonsContainer.style.padding = '10px';
theMenu.append(songButtonsContainer);
//-//
for (let z = 0; z < songsArray.length; z++) {
let songButton = ce("button");
songButton.className = "ourButton";
songButton.id = songsArray[z].name + "Button";
songButton.textContent = songsArray[z].name;
songButton.onmouseover = function()
{
hoverSound();
};
songButton.onclick = function()
{
clickSound();
playSong(songsArray[z].name);
};
songButtonsContainer.append(songButton);
}
if (songFlag == 1)
{
// color button of song chosen
ge(songChosenId).style.background = "rgb(128, 128, 128)";
}
if (songFlag == 0)
{
// color button of song chosen
ge(songChosenId).style.background = "rgb(0, 77, 129)";
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureColor.js
let theColorID;
function menuStructureColor(theStructureId)
{
let menuId = 'menuColorStructure';
//-//
theColorID = ge(theStructureId);
//-//
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theTitle = ce("h1");
theTitle.textContent = "COLOR STRUCTURE";
theTitle.className = 'menu';
theMenu.append(theTitle);
//-//
theMenu.append(ce('hr'));
//-//
let colorPicker = ce('input');
colorPicker.type = 'color';
colorPicker.id = 'myColorPicker';
colorPicker.onmouseover = function()
{
hoverSound();
};
colorPicker.onclick = function()
{
clickSound();
};
colorPicker.oninput = function()
{
clickSound();
ge('hexTextbox').value =colorPicker.value;
let r = ge('theRed').value = hexToRgb(colorPicker.value).r;
let g = ge('theGreen').value = hexToRgb(colorPicker.value).g;
let b = ge('theBlue').value = hexToRgb(colorPicker.value).b;
theColorID.style.backgroundColor= "rgb("+r+", "+g+", "+b+")";
// update structuresArray to show changed value
updateStructures(theStructureId);
};
theMenu.append(colorPicker);
//-//
let hexTextbox = ce('input');
hexTextbox.type = 'text';
hexTextbox.id = 'hexTextbox';
hexTextbox.style.width = '100px';
theMenu.append(hexTextbox);
//-//
theMenu.append(ce('br'));
//-//
let redLabel = ce("span");
redLabel.textContent = "R ";
theMenu.append(redLabel);
//-//
let redInput = ce("input");
redInput.type = 'text';
redInput.id = "theRed";
redInput.style.width = '50px';
redInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(redInput);
//-//
let greenLabel = ce("span");
greenLabel.textContent = "G ";
theMenu.append(greenLabel);
//-//
let greenInput = ce("input");
greenInput.type = 'text';
greenInput.id = "theGreen";
greenInput.style.width = '50px';
greenInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(greenInput);
//-//
let blueLabel = ce("span");
blueLabel.textContent = "B ";
theMenu.append(blueLabel);
//-//
let blueInput = ce("input");
blueInput.type = 'text';
blueInput.id = "theBlue";
blueInput.style.width = '50px';
blueInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(blueInput);
//-//
let enterButton = ce("button");
enterButton.textContent = "Enter";
enterButton.className = "ourButton";
enterButton.onclick = function()
{
// get RGB values from input fields and convert them to numbers
let red = parseInt(ge('theRed').value, 10);
let green = parseInt(ge('theGreen').value, 10);
let blue = parseInt(ge('theBlue').value, 10);
// calculate the hex value
let hexColor = rgbToHex(red, green, blue);
// set the hex value to the hexTextbox
ge('hexTextbox').value = hexColor;
theColorID.style.backgroundColor= "rgb("+red+", "+green+", "+blue+")";
// update structuresArray to show changed value
updateStructures(theStructureId);
colorPicker.value = hexColor;
//customStructureColorFromTextInput();
keyboardControlOn();
enterButtonSound();
};
theMenu.append(enterButton);
//-//
theMenu.append(ce('hr'));
//-//
let buttonContainer = ce('div');
buttonContainer.style.display = 'grid';
buttonContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
theMenu.append(buttonContainer);
//-//
for (let z = 0; z < colorChoices.length; z++)
{
let colorChoiceButton = ce("button");
colorChoiceButton.textContent = colorChoices[z].name;
colorChoiceButton.className = 'ourButton';
colorChoiceButton.style.backgroundColor = "rgb("+colorChoices[z].color+")";
colorChoiceButton.onmouseover = function()
{
hoverSound();
};
colorChoiceButton.onclick = function()
{
clickSound();
ge(theStructureId).style.backgroundColor = "rgb("+colorChoices[z].color+")";
// split color value to array of rgb
let rgbValues = colorChoices[z].color.split(',');
let r = ge("theRed").value = rgbValues[0].trim();
let g = ge("theGreen").value = rgbValues[1].trim();
let b = ge("theBlue").value = rgbValues[2].trim();
colorPicker.value = rgbToHex(r, g, b);
ge('hexTextbox').value = rgbToHex(r, g, b);
updateStructures(theStructureId);
};
buttonContainer.append(colorChoiceButton);
}
//-//
let customButton = ce("button");
customButton.onclick = function()
{
customStructureColor();
};
customButton.className = "ourButton";
customButton.textContent = "Custom";
theMenu.append(customButton);
}
function customStructureColor()
{
let theColor = prompt("Enter RGB as 255,255,255")
let theColorFormatted = 'rgb('+theColor+')';
// color of structure
theColorID.style.backgroundColor = theColorFormatted;
let colorSeparated = theColor.split(',');
// fill in the textarea, to show the value of our choice
ge("theRed").value = colorSeparated[0];
ge("theGreen").value = colorSeparated[1];
ge("theBlue").value = colorSeparated[2];
// update structuresArray to show changed value
updateStructures(theStructureId);
}
// Read the 3 Textarea, for the red, green, blue values of our structure
// Set the color on our player
function customStructureColorFromTextInput()
{
let r = ge("theRed").value;
let g = ge("theGreen").value;
let b = ge("theBlue").value;
theColorID.style.backgroundColor= "rgb("+r+", "+g+", "+b+")";
// update structuresArray to show changed value
updateStructures(theStructureId);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureColorText.js
let theTextID;
function menuStructureColorText(ourStructureId)
{
theTextID = ge(ourStructureId);
//-//
let menuId = 'menuTextColorStructure';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.width = '300px';
mainDiv.style.height = '200px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theTitle = ce("h1");
theTitle.textContent = "COLOR TEXT";
theTitle.className = 'menu';
theMenu.append(theTitle);
//-//
theMenu.append(ce('hr'));
//-//
let colorPicker = ce('input');
colorPicker.type = 'color';
colorPicker.id = 'myColorPicker';
colorPicker.onmouseover = function()
{
hoverSound();
};
colorPicker.onclick = function()
{
clickSound();
};
colorPicker.oninput = function()
{
clickSound();
ge('hexTextbox').value = colorPicker.value;
let r = ge('theRed').value = hexToRgb(colorPicker.value).r;
let g = ge('theGreen').value = hexToRgb(colorPicker.value).g;
let b = ge('theBlue').value = hexToRgb(colorPicker.value).b;
theTextID.style.color = "rgb("+r+", "+g+", "+b+")";
// update structuresArray to show changed value
updateStructures(ourStructureId);
};
theMenu.append(colorPicker);
//-//
let hexTextbox = ce('input');
hexTextbox.type = 'text';
hexTextbox.id = 'hexTextbox';
hexTextbox.style.width = '100px';
theMenu.append(hexTextbox);
//-//
theMenu.append(ce('br'));
//-//
let redLabel = ce("span");
redLabel.textContent = "R ";
theMenu.append(redLabel);
//-//
let redInput = ce("input");
redInput.type = 'text';
redInput.id = "theRed";
//redInput.className = "textInput";
redInput.style.width = '50px';
redInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(redInput);
//-//
let greenLabel = ce("span");
greenLabel.textContent = "G ";
theMenu.append(greenLabel);
//-//
let greenInput = ce("input");
greenInput.style = 'text';
greenInput.id = "theGreen";
greenInput.style.width = '50px';
greenInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(greenInput);
//-//
let blueLabel = ce("span");
blueLabel.textContent = "B ";
theMenu.append(blueLabel);
//-//
let blueInput = ce("input");
blueInput.type = 'text';
blueInput.id = "theBlue";
blueInput.style.width = '50px';
blueInput.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(blueInput);
//-//
let enterButton = ce("button");
enterButton.textContent = "Enter";
enterButton.className = "ourButton";
enterButton.onclick = function()
{
// get RGB values from input fields and convert them to numbers
let red = parseInt(ge('theRed').value, 10);
let green = parseInt(ge('theGreen').value, 10);
let blue = parseInt(ge('theBlue').value, 10);
// calculate the hex value
let hexColor = rgbToHex(red, green, blue);
// set the hex value to the hexTextbox
ge('hexTextbox').value = hexColor;
theTextID.style.color = "rgb("+red+", "+green+", "+blue+")";
// update structuresArray to show changed value
updateStructures(ourStructureId);
colorPicker.value = hexColor;
//customStructureColorFromTextInput();
keyboardControlOn();
enterButtonSound();
};
theMenu.append(enterButton);
//-//
theMenu.append(ce("hr"));
//-//
let buttonContainer = ce('div');
buttonContainer.style.display = 'grid';
buttonContainer.style.gridTemplateColumns = 'repeat(3, 1fr)';
theMenu.append(buttonContainer);
//-//
for (let z = 0; z < colorChoices.length; z++)
{
let colorChoiceButton = ce("button");
colorChoiceButton.textContent = colorChoices[z].name;
colorChoiceButton.className = 'ourButton';
colorChoiceButton.style.backgroundColor = "rgb("+colorChoices[z].color+")";
colorChoiceButton.onmouseover = function()
{
hoverSound();
};
colorChoiceButton.onclick = function()
{
clickSound();
ge(ourStructureId).style.color = "rgb("+colorChoices[z].color+")";
// split color value to array of rgb
let rgbValues = colorChoices[z].color.split(',');
let r = ge("theRed").value = rgbValues[0].trim();
let g = ge("theGreen").value = rgbValues[1].trim();
let b = ge("theBlue").value = rgbValues[2].trim();
colorPicker.value = rgbToHex(r, g, b);
ge('hexTextbox').value = rgbToHex(r, g, b);
updateStructures(ourStructureId);
};
buttonContainer.append(colorChoiceButton);
}
//-//
let customButton = ce("button");
customButton.className = "ourButton";
customButton.textContent = "Custom";
customButton.onclick = function()
{
customStructureFontColor();
};
theMenu.append(customButton);
}
function customStructureFontColor()
{
let theColor = prompt("Enter RGB as 255,255,255")
let theColorFormatted = 'rgb('+theColor+')';
// color of text on player object
theTextID.style.color = theColorFormatted;
let colorSeparated = theColor.split(',');
// fill in the textarea, to show the value of our choice
ge("redFontId").value = colorSeparated[0];
ge("greenFontId").value = colorSeparated[1];
ge("blueFontId").value = colorSeparated[2];
// update structuresArray to show the changed value
updateStructures(ourStructureId);
}
// Read the 3 Textarea, for the red, green, blue values of our structure text color
// Set the text color of our structure
function customStructureTextColorFromTextInput()
{
let r = ge("theRed").value;
let g = ge("theGreen").value;
let b = ge("theBlue").value;
theTextID.style.color = "rgb("+r+", "+g+", "+b+")";
// fill in the textarea, to show the value of our choice
ge("theRed").value = r;
ge("theGreen").value = g;
ge("theBlue").value = b;
// update structuresArray, show changed value
updateStructures(ourStructureId);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureDistance.js
let theDistanceID;
function menuStructureDistance(theStructureId)
{
theDistanceID = theStructureId;
let menuId = 'menuPositionDistanceStructure';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let theTitle = ce("h1");
theTitle.textContent = "DISTANCE";
theTitle.className = 'menu';
theMenu.append(theTitle);
//-//
theMenu.append(ce('hr'));
//-//
let idLabel = ce("span");
idLabel.textContent = "Id of Object ";
theMenu.append(idLabel);
//-//
let idTextArea = ce("textarea");
idTextArea.id = "idToFindDistance";
idTextArea.className = "textInput";
idTextArea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(idTextArea);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
keepGettingXYStructureCustom();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
//-//
theMenu.append(ce("br"));
//-//
theMenu.append(ce('hr'));
//-//
let cancelButton = ce("button");
cancelButton.onclick = function()
{
removeTimer(ourDistanceTimer);
};
cancelButton.className = "ourButton";
cancelButton.textContent = "Cancel";
theMenu.append(cancelButton);
//-//
theMenu.append(ce("br"));
}
let ourDistanceTimer;
function keepGettingXYStructureCustom()
{
let obj1 = theDistanceID;
let obj2 = ge("idToFindDistance").value;
// clear any previous searches
if (ourDistanceTimer)
{
clearInterval(ourTimer);
}
ourDistanceTimer = setInterval(function()
{
getDistanceXY(obj1, obj2);
}, 1000);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureEdit.js
// when person clicks a structure, an edit menu appears to edit that structure.
function menuStructureEdit(theStructureId)
{
// remove the text to find the digits only which number in the array, based on id number - 1 \d find digit
let theNumberOnlyStructure = theStructureId.replace(/\D/g,'') - 1;
//-//
let menuId = 'menuStructureEdit';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '200px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
// prevent menu leaving screen left side
if (positionGet(menuId).x <= 30)
{
theMenu.style.left = '40px';
}
// prevent menu leaving screen top side
if (positionGet(menuId).y <= 200)
{
theMenu.style.top = '100px';
}
//-//
theMenu.append(ce('hr'));
//-//
let idLabel = ce("span");
idLabel.className = "textCompact";
idLabel.textContent = theStructureId;
idLabel.style.fontWeight = 'bold';
theMenu.append(idLabel);
//-//
theMenu.append(ce('hr'));
//-//
let structureNameText = ce("div");
structureNameText.id = "structureNameText";
structureNameText.textContent = structuresArray[theNumberOnlyStructure].name;
theMenu.append(structureNameText);
//-//
theMenu.append(ce('hr'));
//-//
let nameLabel = ce("span");
nameLabel.className = "textCompact";
nameLabel.textContent = "NAME";
theMenu.append(nameLabel);
//-//
theMenu.append(ce("br"));
//-//
let nameButton = ce("button");
nameButton.className = "ourButton";
nameButton.textContent = "NAME";
nameButton.onmouseover = function()
{
hoverSound();
};
nameButton.onclick = function()
{
clickSound();
menuStructureName(theStructureId);
};
theMenu.append(nameButton);
//-//
theMenu.append(ce("hr"));
//-//
let colorLabel = ce("span");
colorLabel.className = "textCompact";
colorLabel.textContent = "COLOR";
theMenu.append(colorLabel);
//-//
theMenu.append(ce("br"));
//-//
let colorButton = ce("button");
colorButton.className = "ourButton";
colorButton.textContent = "COLOR";
colorButton.onmouseover = function()
{
hoverSound();
};
colorButton.onclick = function()
{
clickSound();
menuStructureColor(theStructureId);
};
theMenu.append(colorButton);
//-//
let colorTextButton = ce("button");
colorTextButton.className = "ourButton";
colorTextButton.textContent = "TEXT";
colorTextButton.onmouseover = function()
{
hoverSound();
};
colorTextButton.onclick = function()
{
clickSound();
menuStructureColorText(theStructureId);
};
theMenu.append(colorTextButton);
//-//
theMenu.append(ce("hr"));
//-//
let textureLabel = ce("span");
textureLabel.className = "textCompact";
textureLabel.textContent = "TEXTURE";
theMenu.append(textureLabel);
//-//
theMenu.append(ce("br"));
//-//
let textureButton = ce("button");
textureButton.className = "ourButton";
textureButton.textContent = "TEXTURE";
textureButton.onmouseover = function()
{
hoverSound();
};
textureButton.onclick = function()
{
clickSound();
menuStructureTexture(theStructureId);
};
theMenu.append(textureButton);
//-//
theMenu.append(ce("hr"));
//-//
let alphaLabel = ce("span");
alphaLabel.className = "textCompact";
alphaLabel.textContent = "ALPHA";
theMenu.append(alphaLabel);
//-//
theMenu.append(ce("br"));
//-//
let opacityButton = ce("button");
opacityButton.className = "ourButton";
opacityButton.textContent = "OPACITY";
opacityButton.onmouseover = function()
{
hoverSound();
};
opacityButton.onclick = function()
{
clickSound();
menuStructureOpacity(theStructureId);
};
theMenu.append(opacityButton);
//-//
theMenu.append(ce("hr"));
//-//
let positionLabel = ce("span");
positionLabel.className = "textCompact";
positionLabel.textContent = "POSITION";
theMenu.append(positionLabel);
//-//
theMenu.append(ce("br"));
//-//
let getPosButton = ce("button");
getPosButton.className = "ourButton";
getPosButton.textContent = "GET POS";
getPosButton.onmouseover = function()
{
hoverSound();
};
getPosButton.onclick = function()
{
clickSound();
menuStructurePositionGet(theStructureId);
};
theMenu.append(getPosButton);
//-//
let setPosButton = ce("button");
setPosButton.className = "ourButton";
setPosButton.textContent = "SET POS";
setPosButton.onmouseover = function()
{
hoverSound();
};
setPosButton.onclick = function()
{
clickSound();
menuStructurePositionSet(theStructureId);
};
theMenu.append(setPosButton);
//-//
theMenu.append(ce("hr"));
//-//
let sizeLabel = ce("span");
sizeLabel.className = "textCompact";
sizeLabel.textContent = "SIZE";
theMenu.append(sizeLabel);
//-//
theMenu.append(ce("br"));
//-//
let getSizeButton = ce("button");
getSizeButton.className = "ourButton";
getSizeButton.textContent = "GET";
getSizeButton.onmouseover = function()
{
hoverSound();
};
getSizeButton.onclick = function()
{
clickSound();
menuStructureSizeGet(theStructureId);
};
theMenu.append(getSizeButton);
//-//
let setSizeButton = ce("button");
setSizeButton.className = "ourButton";
setSizeButton.textContent = "SET";
setSizeButton.onmouseover = function()
{
hoverSound();
};
setSizeButton.onclick = function()
{
clickSound();
menuStructureSizeSet(theStructureId);
};
theMenu.append(setSizeButton);
//-//
theMenu.append(ce("hr"));
//-//
let distanceLabel = ce("span");
distanceLabel.className = "textCompact";
distanceLabel.textContent = "DISTANCE";
theMenu.append(distanceLabel);
//-//
theMenu.append(ce("br"));
//-//
let distanceButton = ce("button");
distanceButton.className = "ourButton";
distanceButton.textContent = "DISTANCE FINDER";
distanceButton.onmouseover = function()
{
hoverSound();
};
distanceButton.onclick = function()
{
clickSound();
menuStructureDistance(theStructureId);
};
theMenu.append(distanceButton);
//-//
theMenu.append(ce("hr"));
//-//
showStructureData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureInstructions.js
function menuStructureInstructions()
{
let menuId = 'menuStructureInstructions';
//-//
if (ge(menuId))
{
removeElement(menuId);
}
//-//
ge('infoDiv').textContent = "B to Create Structure";
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '200px';
theMenu.style.height = '200px';
theMenu.style.fontSize = '20px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let titleSpan = ce("span");
titleSpan.style.color = "rgb(255, 255, 255)";
titleSpan.textContent = 'STRUCTURE OPTIONS';
theMenu.append(titleSpan);
//-//
theMenu.append(ce('hr'));
//-//
let startStructureSpan = ce("span");
startStructureSpan.innerHTML = "<b> Letter B </b> to Start Structure Mode";
theMenu.append(startStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let placeStructureSpan = ce("span");
placeStructureSpan.innerHTML = "<b> Left Click </b> to Place a Structure";
theMenu.append(placeStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let gotoStructureSpan = ce("span");
gotoStructureSpan.innerHTML = "<b> Shift + 1 </b> to GoTo 1st Structure";
theMenu.append(gotoStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let gotoSecondStructureSpan = ce("span");
gotoSecondStructureSpan.innerHTML = "<b> Shift + 2 </b> to GoTo 2nd Structure etc";
theMenu.append(gotoSecondStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let rowMenuSpan = ce("span");
rowMenuSpan.innerHTML = "<b> Letter J </b><br> Creates a Row Menu<br>to GoTo Any Structure";
theMenu.append(rowMenuSpan);
//-//
theMenu.append(ce('hr'));
//-//
let editStructureSpan = ce("span");
editStructureSpan.innerHTML = "<b> Left Click any Structure </b><br>to EDIT that Structure";
theMenu.append(editStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let deleteStructureSpan = ce("span");
deleteStructureSpan.innerHTML = "<b> Delete Button </b><br>Removes All Structures";
theMenu.append(deleteStructureSpan);
//-//
theMenu.append(ce('hr'));
//-//
let endStructureModeSpan = ce("span");
endStructureModeSpan.innerHTML = "<b> Esc Button </b> to End Structure Mode";
theMenu.append(endStructureModeSpan);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureName.js
let worldNameId;
let theNameID;
let theNumberOnlyHere;
function menuStructureName(theStructureId)
{
let menuId = 'menuNameStructure';
theNameID = ge(theStructureId);
worldNameId = theStructureId;
theNumberOnlyHere = theStructureId.replace(/\D/g,'') - 1;
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = 200 + 'px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
let closeButton = makeCloseButton(menuId);
closeButton.style.right = 0 + 'px';
mainDiv.append(closeButton);
//-//
let nameLabel = ce('h1');
nameLabel.id = 'nameLabel';
nameLabel.textContent = 'Name of Structure';
nameLabel.className = 'menu';
nameLabel.style.color = 'rgb(0, 255, 255)';
theMenu.append(nameLabel);
//-//
theMenu.append(ce('hr'));
//-//
let textInputName = ce('textarea');
textInputName.id = 'theStructureName';
textInputName.className = 'textInput';
textInputName.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(textInputName);
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
customStructureNameFromTextInput();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
function customStructureNameFromTextInput()
{
let theName = ge("theStructureName").value;
structuresArray[theNumberOnlyHere].name = theName;
theNameID.innerText = worldNameId + "\n" + structuresArray[theNumberOnlyHere].name + "\n" + positionGet(worldNameId).x.toFixed(0) + "\n" + positionGet(worldNameId).y.toFixed(0);
ge("structureNameText").textContent = structuresArray[theNumberOnlyHere].name;
showStructureData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureOpacity.js
let worldOpacityId;
let theOpacityID;
let theNumberOnly;
function menuStructureOpacity(theStructureId)
{
theOpacityID = ge(theStructureId);
worldOpacityId = theStructureId;
// remove text to find digits only
let theNumberOnly = theStructureId.replace(/\D/g,'') - 1;
//-//
audioPlay("sfx_blip_001", 1.0);
//-//
let menuId = 'menuOpacityStructure';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 150 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let opacityLabel = ce("h1");
opacityLabel.style.color = "rgb(255, 255, 255)";
opacityLabel.textContent = "OPACITY OF STRUCTURE";
opacityLabel.className = 'menu';
opacityLabel.style.color = 'rgb(0, 255, 255)';
theMenu.append(opacityLabel);
//-//
theMenu.append(ce('hr'));
//-//
let alphaText = ce("span");
alphaText.textContent = "Alpha";
theMenu.append(alphaText);
//-//
theMenu.append(ce("nbsp"));
//-//
let alphaTextarea = ce("textarea");
alphaTextarea.id = "theOpacity";
alphaTextarea.className = "textInput";
alphaTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(alphaTextarea);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
customStructureOpacityFromTextInput();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
//-//
theMenu.append(ce('hr'));
//-//
let opacityValues = [
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
];
for (let z = 0; z < opacityValues.length; z++)
{
let opacityButton = ce("button");
opacityButton.textContent = opacityValues[z];
opacityButton.className = 'ourButton';
opacityButton.onclick = function()
{
ge(theStructureId).style.opacity = opacityValues[z];
ge("theOpacity").value = opacityValues[z];
updateStructures(theStructureId);
};
theMenu.append(opacityButton);
}
//-//
theMenu.append(ce("br"));
//-//
let customButton = ce("button");
customButton.onclick = function()
{
customStructureOpacity();
};
customButton.className = "ourButton";
customButton.textContent = "Custom";
theMenu.append(customButton);
//-//
theMenu.append(ce('br'));
}
function customStructureOpacity()
{
let theOpacity = prompt("Enter Opacity as 0.0 to 1.0")
// opacity of structure
theOpacityID.style.opacity = theOpacity;
// fill in the textarea, to show the value of our choice
ge("theOpacity").value = theOpacity;
// update structuresArray to show the changed value
updateStructures(worldOpacityId);
}
// Read the 3 Textarea, for the opacity value of our structure
// Set the opacity on our structure
function customStructureOpacityFromTextInput()
{
let theOpacity = ge("theOpacity").value;
theOpacityID.style.opacity = theOpacity;
// update structuresArray to show the changed value
updateStructures(worldOpacityId);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructurePositionGet.js
let thePositionGetID;
function menuStructurePositionGet(theStructureId)
{
thePositionGetID = theStructureId;
//-//
let menuId = 'menuPositionStructureGet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
theMenu.style.height = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
let positionLabel = ce("h1");
positionLabel.style.color = "rgb(255, 255, 255)";
positionLabel.textContent = "GET STRUCTURE POSITION";
positionLabel.className = 'menu';
positionLabel.style.color = 'rgb(0, 255, 255)';
theMenu.append(positionLabel);
//-//
theMenu.append(ce('hr'));
//-//
let getPosButton = ce("button");
getPosButton.onclick = function()
{
structurePositionGet();
keyboardControlOn();
};
getPosButton.className = "ourButton";
getPosButton.textContent = "GET POS";
theMenu.append(getPosButton);
//-//
theMenu.append(ce("br"));
//-//
let getPosRepeatButton = ce("button");
getPosRepeatButton.onclick = function()
{
structurePositionGetRepeat();
keyboardControlOn();
};
getPosRepeatButton.className = "ourButton";
getPosRepeatButton.textContent = "GET POS REPEAT";
theMenu.append(getPosRepeatButton);
//-//
theMenu.append(ce("br"));
//-//
let cancelGetPosButton = ce("button");
cancelGetPosButton.onclick = function()
{
removeTimer(currentStructurePositionTimer);
};
cancelGetPosButton.className = "ourButton";
cancelGetPosButton.textContent = "Cancel Get Pos";
theMenu.append(cancelGetPosButton);
//-//
theMenu.append(ce('hr'));
//-//
let xPosLabel = ce("label");
xPosLabel.textContent = "X POS";
theMenu.append(xPosLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let xPosTextarea = ce("textarea");
xPosTextarea.id = "gotX";
xPosTextarea.className = "textInput";
xPosTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xPosTextarea);
//-//
theMenu.append(ce("br"));
//-//
let yPosLabel = ce("label");
yPosLabel.textContent = "Y POS";
theMenu.append(yPosLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let yPosTextarea = ce("textarea");
yPosTextarea.id = "gotY";
yPosTextarea.className = "textInput";
yPosTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(yPosTextarea);
}
function structurePositionGet()
{
let currentPosition = positionGet(thePositionGetID);
thePositionGetID.innerText = currentPosition.x.toFixed(0) + "\n" + currentPosition.y.toFixed(0) + "\n";
ge('gotX').value = currentPosition.x.toFixed(0);
ge('gotY').value = currentPosition.y.toFixed(0);
}
let currentStructurePositionTimer;
function structurePositionGetRepeat()
{
currentStructurePositionTimer = setInterval(function()
{
structurePositionGet();
}, 1000);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructurePositionSet.js
let thePositionSetID;
let worldPositionId;
let numberOnlyStructure;
function menuStructurePositionSet(theStructureId)
{
thePositionSetID = ge(theStructureId);
worldPositionId = theStructureId;
// remove the text to find the digits only
// which number in the array, based on id number - 1
// \d find digit
numberOnlyStructure = worldPositionId.replace(/\D/g, '') - 1;
//-//
let menuId = 'menuPositionStructureSet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
theMenu.style.height = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let positionLabel = ce("h1");
positionLabel.textContent = "STRUCTURE POSITION OPTIONS";
positionLabel.className = 'menu';
theMenu.append(positionLabel);
//-//
theMenu.append(ce('hr'));
//-//
let structureValues = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];
for (let x = 0; x < structureValues.length; x++)
{
let theButton = ce("button");
theButton.onclick = function()
{
structureMoves(x);
};
theButton.className = "ourButton";
theButton.textContent = structureValues[x];
theMenu.append(theButton);
}
//-//
theMenu.append(ce('hr'));
//-//
let customPositionButton = ce("button");
customPositionButton.onclick = function()
{
customPositionStructure();
};
customPositionButton.className = "ourButton";
customPositionButton.textContent = "Custom Structure Position";
theMenu.append(customPositionButton);
//-//
theMenu.append(ce('hr'));
//-//
let xPosLabel = ce("span");
xPosLabel.textContent = "X POS";
theMenu.append(xPosLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let xPosTextarea = ce("textarea");
xPosTextarea.id = "customPosX";
xPosTextarea.className = "textInput";
xPosTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xPosTextarea);
//-//
theMenu.append(ce("br"));
//-//
let yPosLabel = ce("span");
yPosLabel.textContent = "Y POS";
theMenu.append(yPosLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let yPosTextarea = ce("textarea");
yPosTextarea.id = "customPosY";
yPosTextarea.className = "textInput";
yPosTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(yPosTextarea);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
customPositionStructureText();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
// buttons move the structure
function structureMoves(theLocation)
{
audioPlay("sfx_blip_001", 1.0);
if (theLocation == '1')
{
thePositionSetID.x = 100;
thePositionSetID.y = 100;
}
if (theLocation == '2')
{
thePositionSetID.x = 100;
thePositionSetID.y = 200;
}
if (theLocation == '3')
{
thePositionSetID.x = 100;
thePositionSetID.y = 300;
}
if (theLocation == '4')
{
thePositionSetID.x = 100;
thePositionSetID.y = 400;
}
if (theLocation == '5')
{
thePositionSetID.x = 100;
thePositionSetID.y = 500;
}
if (theLocation == '6')
{
thePositionSetID.x = 100;
thePositionSetID.y = 600;
}
if (theLocation == '7')
{
thePositionSetID.x = 100;
thePositionSetID.y = 700;
}
if (theLocation == '8')
{
thePositionSetID.x = 100;
thePositionSetID.y = 800;
}
if (theLocation == '9')
{
thePositionSetID.x = 100;
thePositionSetID.y = 900;
}
if (theLocation == '0')
{
thePositionSetID.x = 100;
thePositionSetID.y = 1000;
}
// move the structure
thePositionSetID.style.left = thePositionSetID.x + 'px';
thePositionSetID.style.top = thePositionSetID.y + 'px';
// update the structuresArray posX and posY
structuresArray[numberOnlyStructure].posX = thePositionSetID.x;
structuresArray[numberOnlyStructure].posY = thePositionSetID.y;
// update the innerText of the structure
// show the structure id, name, posX, and posY
thePositionSetID.innerText = structuresArray[numberOnlyStructure].id + "\n" + structuresArray[numberOnlyStructure].name + "\n" + structuresArray[numberOnlyStructure].posX + "\n" + structuresArray[numberOnlyStructure].posY;
// update the textArea of the posX and posY
ge("customPosX").value = structuresArray[numberOnlyStructure].posX;
ge("customPosY").value = structuresArray[numberOnlyStructure].posY;
updateStructures(worldPositionId);
}
function customPositionStructure()
{
let playerX = prompt("Enter X Position");
let playerY = prompt("Enter Y Position");
// if no inputted value, keep player where they are
if (playerX == '' || playerY == '')
{
thePositionSetID.x = thePositionSetID.x;
thePositionSetID.y = thePositionSetID.y;
return;
}
thePositionSetID.x = parseInt(playerX);
// y location of the structure
thePositionSetID.y = parseInt(playerY);
// if person did answer Y position, move structure
if (playerY != '')
{
// movePlayer();
thePositionSetID.style.left = thePositionSetID.x + 'px';
thePositionSetID.style.top = thePositionSetID.y + 'px';
}
// update the structuresArray posX and posY
structuresArray[numberOnlyStructure].posX = thePositionSetID.x;
structuresArray[numberOnlyStructure].posY = thePositionSetID.y;
// update the innerText of the structure
// show the structure id, name, posX, and posY
thePositionSetID.innerText = structuresArray[numberOnlyStructure].id + "\n" + structuresArray[numberOnlyStructure].name + "\n" + structuresArray[numberOnlyStructure].posX + "\n" + structuresArray[numberOnlyStructure].posY;
// update the textArea of the posX and posY
ge("customPosX").value = structuresArray[numberOnlyStructure].posX;
ge("customPosY").value = structuresArray[numberOnlyStructure].posY;
// update structuresArray to show the changed value
updateStructures(worldPositionId);
}
function customPositionStructureText()
{
let playerX = ge("customPosX").value;
let playerY = ge("customPosY").value;
// if no inputted value, keep person where they are
if (playerY == '')
{
thePositionSetID.x = thePositionSetID.x;
thePositionSetID.y = thePositionSetID.y;
return;
}
thePositionSetID.x = parseInt(playerX);
// y location of the structure
thePositionSetID.y = parseInt(playerY);
// if person did answer Y position, move structure
if (playerY != '')
{
// movePlayer();
thePositionSetID.style.left = thePositionSetID.x + 'px';
thePositionSetID.style.top = thePositionSetID.y + 'px';
}
// update the structuresArray posX and posY
structuresArray[numberOnlyStructure].posX = thePositionSetID.x;
structuresArray[numberOnlyStructure].posY = thePositionSetID.y;
// update the innerText of the structure
// show the structure id, name, posX, and posY
thePositionSetID.innerText = structuresArray[numberOnlyStructure].id + "\n" + structuresArray[numberOnlyStructure].name + "\n" + structuresArray[numberOnlyStructure].posX + "\n" + structuresArray[numberOnlyStructure].posY;
// update the textArea of the posX and posY
ge("customPosX").value = structuresArray[numberOnlyStructure].posX;
ge("customPosY").value = structuresArray[numberOnlyStructure].posY;
updateStructures(worldPositionId);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureSizeGet.js
let theSizeGetID;
function menuStructureSizeGet(theStructureId)
{
theSizeGetID = theStructureId;
let menuId = 'menuSizeStructureGet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let sizeLabel = ce("h1");
sizeLabel.textContent = "GET STRUCTURE SIZE";
sizeLabel.className = 'menu';
theMenu.append(sizeLabel);
//-//
theMenu.append(ce('hr'));
//-//
let getSizeButton = ce("button");
getSizeButton.onclick = function()
{
structureSizeGet(theSizeGetID);
};
getSizeButton.className = "ourButton";
getSizeButton.textContent = "GET SIZE";
theMenu.append(getSizeButton);
//-//
theMenu.append(ce("br"));
//-//
let xSizeLabel = ce("span");
xSizeLabel.textContent = "X Size";
theMenu.append(xSizeLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let xSizeTextarea = ce("textarea");
xSizeTextarea.id = "gotSizeX";
xSizeTextarea.className = "textInput";
xSizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xSizeTextarea);
//-//
theMenu.append(ce("br"));
//-//
let ySizeLabel = ce("span");
ySizeLabel.textContent = "Y Size";
theMenu.append(ySizeLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let ySizeTextarea = ce("textarea");
ySizeTextarea.id = "gotSizeY";
ySizeTextarea.className = "textInput";
ySizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(ySizeTextarea);
}
function structureSizeGet()
{
let currentSize = sizeGet(theSizeGetID);
ge('gotSizeX').value = currentSize.x;
ge('gotSizeY').value = currentSize.y;
theSizeGetID.innerText = currentSize.x + "\n" + currentSize.y;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureSizeSet.js
let theSizeSetID;
let worldSizeId;
function menuStructureSizeSet(theStructureId)
{
theSizeSetID = ge(theStructureId);
worldSizeId = theStructureId;
// Remove the text to find the digits only
// Which number in the array, based on id number - 1
// \d find digit
numberOnlyStructure = worldSizeId.replace(/\D/g, '') - 1;
//-//
let menuId = 'menuSizeStructureSet';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.width = '200px';
// theMenu.style.height = '200px';
theMenu.style.marginBottom = 4 +'px';
theMenu.style.overflowY = "auto";
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let sizeLabel = ce("h1");
sizeLabel.textContent = "SET STRUCTURE SIZE";
sizeLabel.className = 'menu';
theMenu.append(sizeLabel);
//-//
theMenu.append(ce('hr'));
//-//
let defaultButton = ce("button");
defaultButton.onclick = function()
{
structureSizeSetDefault();
};
defaultButton.className = "ourButton";
defaultButton.textContent = "Default";
theMenu.append(defaultButton);
//-//
theMenu.append(ce("br"));
//-//
let xSizeLabel = ce("span");
xSizeLabel.textContent = "X SIZE";
theMenu.append(xSizeLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let xSizeTextarea = ce("textarea");
xSizeTextarea.id = "customSizeX";
xSizeTextarea.className = "textInput";
xSizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(xSizeTextarea);
//-//
theMenu.append(ce("br"));
//-//
let ySizeLabel = ce("span");
ySizeLabel.textContent = "Y SIZE";
theMenu.append(ySizeLabel);
//-//
theMenu.append(ce("nbsp"));
//-//
let ySizeTextarea = ce("textarea");
ySizeTextarea.id = "customSizeY";
ySizeTextarea.className = "textInput";
ySizeTextarea.onkeydown = function()
{
keyboardControlOff();
};
theMenu.append(ySizeTextarea);
//-//
theMenu.append(ce("br"));
//-//
let enterButton = ce("button");
enterButton.onclick = function()
{
structureSizeSet();
keyboardControlOn();
enterButtonSound();
};
enterButton.className = "ourButton";
enterButton.textContent = "Enter";
theMenu.append(enterButton);
}
function structureSizeSet()
{
let theSizeX;
let theSizeY;
theSizeX = ge('customSizeX').value;
theSizeY = ge('customSizeY').value;
// update the innerText of the structure
theSizeSetID.innerText = structuresArray[numberOnlyStructure].id + "\n" + structuresArray[numberOnlyStructure].name + "\n" + "Position" + "\n" + structuresArray[numberOnlyStructure].posX + "\n" + structuresArray[numberOnlyStructure].posY + "\n" + "Size" + "\n" + theSizeX + "\n" + theSizeY;
theSizeSetID.style.width = theSizeX;
theSizeSetID.style.height = theSizeY;
updateStructures(worldSizeId);
}
function structureSizeSetDefault()
{
let theSizeX = 114;
let theSizeY = 70;
ge('customSizeX').value = theSizeX;
ge('customSizeY').value = theSizeY;
// update the innerText of the structure
theSizeSetID.innerText = structuresArray[numberOnlyStructure].id + "\n" + structuresArray[numberOnlyStructure].name + "\n" + "Position" + "\n" + structuresArray[numberOnlyStructure].posX + "\n" + structuresArray[numberOnlyStructure].posY + "\n" + "Size" + "\n" + theSizeX + "\n" + theSizeY;
theSizeSetID.style.width = theSizeX;
theSizeSetID.style.height = theSizeY;
updateStructures(worldSizeId);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// menuStructureTexture.js
function menuStructureTexture(theStructureId)
{
let menuId = 'menuTextureStructure';
if (ge(menuId))
{
removeElement(menuId);
}
//-//
let mainDiv = ce("div");
mainDiv.id = menuId;
mainDiv.style.position = "absolute";
mainDiv.style.left = ourPlayer.x + 100 +'px';
mainDiv.style.top = ourPlayer.y + 30 + 'px';
mainDiv.style.zIndex = '3';
ba(mainDiv);
//-//
// make the menu draggable
makeElementDraggable(mainDiv);
//-//
let theMenu = ce("div");
theMenu.className = "divStyle001";
theMenu.style.marginBottom = 4 + 'px';
theMenu.style.width = '250px';
theMenu.style.height = '200px';
mainDiv.append(theMenu);
//-//
// close button
mainDiv.append(makeCloseButton(menuId));
//-//
theMenu.append(ce('hr'));
//-//
let textureOptionsLabel = ce("h1");
textureOptionsLabel.textContent = "TEXTURE OPTIONS";
textureOptionsLabel.className = 'menu';
theMenu.append(textureOptionsLabel);
//-//
theMenu.append(ce('hr'));
//-//
for (let z = 0; z < textureArray.length; z++)
{
let textureButton = ce("button");
textureButton.onclick = function()
{
if (online == true)
{
ge(theStructureId).style.backgroundImage = 'url('+textureArray[z].textureOnline+')';
}
else if (online == false)
{
ge(theStructureId).style.backgroundImage = 'url('+textureArray[z].textureOffline+')';
}
updateStructures(theStructureId);
};
textureButton.className = "ourButton";
textureButton.textContent = textureArray[z].name;
theMenu.append(textureButton);
//-//
theMenu.append(ce('br'));
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// mouseOff.js
function mouseOff()
{
// remove the listen for mouse clicks
window.removeEventListener("click", mousePos, false);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// mouseOn.js
function mouseOn()
{
// add a listen for mouse clicks
window.addEventListener("click", mousePos, false);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// mousePos.js
function mousePos(whichId)
{
let mouseX = event.pageX;
let mouseY = event.pageY;
// let mousePos = "Mouse" + "\n" + "X " + mouseX + "\n"+ "Y " + mouseY;
let mousePos = "X " + mouseX + "\n"+
"Y " + mouseY;
console.log(mousePos);
ge('infoDiv').innerText = mousePos;
if (cameraFlag == 0)
{
ourPlayer.x = mouseX;
ourPlayer.y = mouseY;
movePlayer(whichId);
cameraFlag = 1;
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// playerUpdate.js
function updatePlayer(idName)
{
idName = 'thePlayer';
playerArray[0].name = playerArray[0].name;
playerArray[0].id = idName;
playerArray[0].posX = get(idName, 'pos').x;
playerArray[0].posY = get(idName, 'pos').y;
playerArray[0].sizeX = get(idName, 'size').x;
playerArray[0].sizeY = get(idName, 'size').y;
playerArray[0].colorFill = get(idName, 'background-color'),
playerArray[0].colorText = get(idName, 'color'),
playerArray[0].opacity = get(idName, 'opacity');
playerArray[0].textureOffline = get(idName, 'background-image');
playerArray[0].textureOnline = get(idName, 'background-image');
showPlayerData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// positionDistance.js
function getDistanceX(obj1, obj2)
{
let obj1Position = positionGet(obj1).x;
let obj2Position = positionGet(obj2).x
let distanceX;
if (obj1Position > obj2Position)
{
distanceX = obj1Position - obj2Position;
}
else if (obj1Position < obj2Position)
{
distanceX = obj2Position - obj1Position;
}
// console.log(distanceX);
ge('thePlayer').textContent = distanceX;
return distanceX;
}
function getDistanceY(obj1, obj2)
{
let obj1Position = positionGet(obj1).y;
let obj2Position = positionGet(obj2).y
let distanceY;
if (obj1Position > obj2Position)
{
distanceY = obj1Position - obj2Position;
}
else if (obj1Position < obj2Position)
{
distanceY = obj2Position - obj1Position;
}
console.log(distanceY);
ge('thePlayer').textContent = distanceY;
return distanceY;
}
function getDistanceXY(obj1, obj2)
{
let obj1PositionX = positionGet(obj1).x;
let obj2PositionX = positionGet(obj2).x;
let obj1PositionY = positionGet(obj1).y;
let obj2PositionY = positionGet(obj2).y
let distanceX;
let distanceY;
if (obj1PositionX > obj2PositionX)
{
distanceX = obj1PositionX - obj2PositionX;
}
else if (obj1PositionX < obj2PositionX)
{
distanceX = obj2PositionX - obj1PositionX;
}
if (obj1PositionY > obj2PositionY)
{
distanceY = obj1PositionY - obj2PositionY;
}
else if (obj1PositionY < obj2PositionY)
{
distanceY = obj2PositionY - obj1PositionY;
}
ge('infoDivPlayer').innerText = obj2 + '\n' + "X " + distanceX + "\n" + "Y " + distanceY;
}
function keepGettingX(obj1, obj2)
{
let ourTimer = setInterval(function()
{
getDistanceX(obj1, obj2);
}, 1000);
}
function keepGettingY(obj1, obj2)
{
let ourTimer = setInterval(function()
{
getDistanceY(obj1, obj2);
}, 1000);
}
function keepGettingXY(obj1, obj2)
{
let ourTimer = setInterval(function()
{
getDistanceXY(obj1, obj2);
}, 1000);
}
let ourTimer;
function keepGettingXYCustom()
{
let obj1 = "thePlayer";
let obj2 = ge("idToFindDistance").value;
// clear any previous searches
if (ourTimer)
{
clearInterval(ourTimer);
}
ourTimer = setInterval(function()
{
getDistanceXY(obj1, obj2);
}, 1000);
}
function removeTimer(whichTimer)
{
clearInterval(whichTimer);
}
// let ourTimer = setInterval(function() { getDistanceY('thePlayer', 'STRUCTURE1');}, 1000);
// examples
// getDistanceX('thePlayer', 'target1');
// getDistanceY('thePlayer', 'target1');
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// positionGet.js
// get the Position of any Element that has specified id
function positionGet(whichId)
{
let playerElement = ge(whichId);
if (playerElement)
{
let theRect = playerElement.getBoundingClientRect();
let posXY = {
x: theRect.x + theRect.width / 2 + window.scrollX,
y: theRect.top + theRect.height / 2 + window.scrollY
};
return posXY;
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// positionGetSizeAndSides.js
// x, y, width, height, top, right, bottom, left
function positionGetSizeAndSides(whichId)
{
whichId = ge(whichId);
let theRect = whichId.getBoundingClientRect();
return theRect;
}
// How to Use this Function
// console.log(JSON.stringify(positionGetSizeAndSides('boxOne')));
// console.log(JSON.stringify(positionGetSizeAndSides('thePlayer')));
// console.log(JSON.stringify(positionGetSizeAndSides(ge(activePlayer))));
/*
Here is an example of using this function
// console.log(JSON.stringify(positionGetSizeAndSides('thePlayer')));
Returns the x position, y position, width, height, of the object. It also returns position of the the top, bottom, left and right sides, as shown below.
{ "x":374,"y":250.33334350585938,"width":78,"height":78,"top":250.33334350585938,"right":452,"bottom":328.3333435058594,"left":374 }
*/
// The x represents the left top side of the object.
/*
{
"x":374,
"y":250.33334350585938,
"width":78,
"height":78,
"top":250.33334350585938,
"right":452,
"bottom":328.3333435058594,
"left":374
}
*/
/*
Notice that the x and left are the same.
They both return 374, in our example.
Notice the y and top are the same.
They both return 250.33334350585938.
*/
// example
// console.log(JSON.stringify(positionGetSizeAndSides('thePlayer')));
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// sizeGet.js
// gets size of any element of a specified id
function sizeGet(whichId)
{
whichId = ge(whichId);
let theRect = whichId.getBoundingClientRect();
let sizeXY =
{
x: parseFloat(theRect.width),
y: parseFloat(theRect.height)
};
return sizeXY;
}
/*
How to Use this Function
// get the size of the player object
console.log(JSON.stringify(sizeGet('thePlayer')));
// Returns x and y size values, which includes padding
{"x":78,"y":78}
// Formatted to show x and y clearer
{
"x":78,
"y":78
}
/*
Important to note is that padding effects size.
So the object that is the size x of 70, becomes 78, if the padding of left and right are set to 4.
*/
// example
// console.log(JSON.stringify(sizeGet('thePlayer')));
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// travelTo.js
// Send Player to New Location
// based on Choice from menuPlayer GoTo section
function travelTo(theSection)
{
if (theSection == "news")
{
if (!ge("newsSection"))
{
alert("First, Explore the World\nto REVEAL the NEWS Section");
}
else
{
audioPlay("sfx_blip_001", 1.0);
ourPlayer.x = 100;
ourPlayer.y = positionGet("newsSection").y;
}
}
if (theSection == "scripting")
{
if (!ge("scriptingSection"))
{
alert("First, Explore the World\nto REVEAL the SCRIPTING Section");
}
else
{
audioPlay("sfx_blip_001", 1.0);
ourPlayer.x = 100;
ourPlayer.y = positionGet("scriptingSection").y;
}
}
if (theSection == "books")
{
if (!ge("collegeBooksSection"))
{
alert("First, Explore the World\nto REVEAL the COLLEGE BOOKS Section");
}
else
{
audioPlay("sfx_blip_001", 1.0);
ourPlayer.x = 100;
ourPlayer.y = positionGet("collegeBooksSection").y;
}
}
if (theSection == "evidence")
{
if (!ge("evidenceIdSection"))
{
alert("First, Explore the World\nto REVEAL the EVIDENCE Section");
}
else
{
audioPlay("sfx_blip_001", 1.0);
ourPlayer.x = 100;
ourPlayer.y = positionGet("evidenceIdSection").y;
}
}
movePlayer(activePlayer);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfBookImages.js
function rowOfBookImages(theX, theY, sizeX, sizeY, whichArray, criteria1, theHeading)
{
let counter = 0;
let mainDiv = ce("div");
mainDiv.id = "displayBooksId";
mainDiv.className = "bookImageStyle";
mainDiv.title = "rowOfBookImages(theX, theY, sizeX, sizeY, whichArray, criteria1, theHeading)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX;
mainDiv.style.top = theY;
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = 75 + "px";
ba(mainDiv);
//-//
// used with papercliptronics, javascriptBook1, javascriptBook2, logicA, logicB, logicC, simulation, science, human, mathematics arrays
for (let x = 0; x < whichArray.length; x++)
{
counter += 1;
if (whichArray[x].tag == criteria1)
{
// filter by month
//if (whichArray[x].month === '12')
// filter by multiple months
//if (whichArray[x].month === '8' || whichArray[x].month === '9')
// filter by date
// if (whichArray[x].month === '2' && whichArray[x].day === '29' && whichArray[x].year === '2018')
// filter by multiple dates
//if ((whichArray[x].month === '2' && whichArray[x].day === '29' && whichArray[x].year === '2018') || (whichArray[x].month === '2' && whichArray[x].day === '29' && whichArray[x].year === '2020'))
// filter by day, of any month, of any year
// if (whichArray[x].day === '2')
// filter by year
// if (whichArray[x].year === '2022')
// filter by multiple years
// if (whichArray[x].year === '2019' || whichArray[x].year === '2020')
// filter by month and year
// if (whichArray[x].month === '2' && whichArray[x].year === '2020')
// we can replace the if statement below, with one of the options above.
if (whichArray) // filter by all
{
let subDiv = ce("div");
subDiv.id = theHeading + counter;
subDiv.style.width = sizeX + 'px';
subDiv.style.borderStyle = "solid";
subDiv.style.borderWidth = 1 + "px";
subDiv.style.borderColor = "rgb(0, 255, 255)";
mainDiv.append(subDiv);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "print";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
let theTexture = ce("img");
theTexture.id = theHeading + counter;
theTexture.src = whichArray[x].image;
theTexture.className = "bookImage";
subDiv.append(theTexture);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfCollegeBooks.js
function rowOfCollegeBooks(theX, theY, sizeX, sizeY, whichArray)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "collegeBooksSection";
mainDiv.className = "";
mainDiv.title = "rowOfCollegeBooks(theX, theY, sizeX, sizeY, whichArray)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX;
mainDiv.style.top = theY;
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = 75 + "px";
mainDiv.style.overflow = "hidden";
mainDiv.style.overflowY = "scroll";
ba(mainDiv);
//-//
// used with collegeBooks Array
for (let x = 0; x < whichArray.length; x++)
{
counter += 1;
let subDiv = ce("div");
subDiv.id = "CollegeBooks" + counter;
subDiv.style.width = sizeX + 'px';
subDiv.style.height = sizeY + 'px';
subDiv.style.borderStyle = "solid";
subDiv.style.borderWidth = "2px";
subDiv.style.borderColor = "rgba(100, 100, 255, 1.0)";
subDiv.style.backgroundColor = 'rgb(0, 0, 0)';
subDiv.style.zIndex = "1";
subDiv.style.fontFamily = "arial";
subDiv.style.fontWeight = "normal";
subDiv.style.fontSize = "medium";
subDiv.style.textAlign = "center";
subDiv.style.color = "black";
mainDiv.append(subDiv);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "print";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
let theTitle = ce("div");
theTitle.style.color = "rgb(255, 255, 255)";
theTitle.innerText = "College Books" + '\n' + whichArray[x].name;
subDiv.append(theTitle);
//-//
let theBreakBelowTitle = ce("hr");
theBreakBelowTitle.className = "hrCompact";
subDiv.append(theBreakBelowTitle);
//-//
let theLink = ce("a");
theLink.target = "_blank";
theLink.href = whichArray[x].url;
theLink.innerText = "link";
subDiv.append(theLink);
//-//
let theTexture = ce("img");
theTexture.className = "theImage";
theTexture.src = whichArray[x].image;
theLink.append(theTexture);
}
}
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfCollegeLinks.js
function rowOfCollegeLinks(theX, theY, whichArray, sizeX)
{
let counter = 0;
let mainDiv = ce("div");
mainDiv.id = "collegeLinksId";
mainDiv.title = "rowOfCollegeLinks(theX, theY, whichArray)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.width = '200px';
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let x = 0; x < whichArray.length; x++) {
counter += 1;
let subDiv = ce("div");
subDiv.id = "CollegeLinks" + counter;
subDiv.style.padding = "10px";
subDiv.style.width = sizeX + 'px';
subDiv.style.zIndex = 1;
subDiv.style.borderStyle = "solid";
subDiv.style.borderWidth = "2px";
subDiv.style.borderColor = "rgba(100, 100, 255, 1.0)";
subDiv.style.backgroundColor = 'rgb(0, 0, 0)';
subDiv.style.fontFamily = "arial";
subDiv.style.fontWeight = "bold";
subDiv.style.fontSize = "medium";
subDiv.style.color = "aqua";
subDiv.style.textAlign = "center";
mainDiv.append(subDiv);
//-//
let theLink = ce("a");
theLink.href = whichArray[x].url;
theLink.target = "_blank";
theLink.textContent = whichArray[x].name;
subDiv.append(theLink);
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfDetails.js
function rowOfDetails(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "detailsId";
mainDiv.title = "rowOfDetails(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
counter += 1;
if (whichArray[i].tag == criteria1)
{
// filter by month
if (whichArray[i].date.substring(0, 2) == "07")
{
if (whichArray[i].probability >= 50)
{
let subDiv = ce("div");
subDiv.className = "divStyle001";
mainDiv.append(subDiv);
//-//
let theDiv = ce("details");
theDiv.id = "EvidenceDetails" + counter;
theDiv.style.width = sizeX + 'px';
theDiv.style.height = sizeY + 'px';
theDiv.style.color = "rgb(255, 255, 255)";
subDiv.append(theDiv);
//-//
theDiv.innerText = "Content Sensitive - Open at Your Discretion";
//-//
theDiv.append(ce("br"));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "print";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
subDiv.append(printButton);
//-//
theDiv.append(ce("br"));
//-//
let titleText = whichArray[i].title;
theDiv.append(titleText);
//-//
theDiv.append(ce("br"));
//-//
let dateText = whichArray[i].date;
theDiv.append(dateText);
//-//
theDiv.append(ce("br"));
//-//
let infoText = whichArray[i].info;
theDiv.append(infoText);
//-//
theDiv.append(ce("br"));
//-//
let probabilityText = "Probability Rating: " + whichArray[i].probability + "%";
theDiv.append(probabilityText);
//-//
theDiv.append(ce("br"));
//-//
let link = ce("a");
link.href = whichArray[i].url;
link.target = "_blank";
link.innerText = "Link";
theDiv.append(link);
//-//
theDiv.append(ce("br"));
//-//
let image = ce("img");
image.src = whichArray[i].image;
image.className = "theImage";
theDiv.append(image);
}
}
}
}
}
//--//
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 7)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY, of any month, of any year
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// rowOfEvidence.js
function rowOfEvidence(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "evidenceIdSection";
mainDiv.title = "rowOfEvidence(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
// used with evidence array
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
// filter by month
if (whichArray[i].date.substring(0, 2) == 7)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = "Evidence" + counter;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
mainDiv.append(subDiv);
//-//
let hrCompact = ce("hr");
hrCompact.className = 'hrCompact';
subDiv.append(hrCompact);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.innerText = "Print";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
subDiv.append(ce("br"));
//-//
let title = ce("span");
title.innerText = whichArray[i].title + "\n";
subDiv.append(title);
//-//
let date = ce("span");
date.innerText = whichArray[i].date + "\n";
subDiv.append(date);
//-//
let info = ce("span");
info.innerText = whichArray[i].info + "\n";
subDiv.append(info);
//-//
let link = ce("a");
link.href = whichArray[i].url;
link.target = "_blank";
link.innerText = "Link";
subDiv.append(link);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfEvidenceWithImage.js
function rowOfEvidenceWithImage(theX, theY, sizeX, sizeY, whichArray, criteria1, theHeading)
{
let counter = 0;
let mainDiv = ce("div");
mainDiv.id = "evidenceWithImageId";
mainDiv.title = "rowOfEvidenceWithImage(theX, theY, sizeX, sizeY, whichArray, criteria1, theHeading)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
// used with evidence array
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
if (whichArray)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = "EvidenceWithImage" + counter;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
subDiv.style.height = sizeY + 'px';
mainDiv.append(subDiv);
//-//
let heading = ce("div");
heading.textContent = theHeading;
subDiv.append(heading);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.innerText = "print";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
subDiv.append(ce("br"));
//-//
let title = ce("b");
title.textContent = whichArray[i].title;
subDiv.append(title);
//-//
let date = ce("div");
date.textContent = whichArray[i].date;
subDiv.append(date);
//-//
let info = ce("div");
info.textContent = whichArray[i].info;
subDiv.append(info);
//-//
let link = ce("a");
link.href = whichArray[i].url;
link.target = "_blank";
link.textContent = "Link";
subDiv.append(link);
//-//
subDiv.append(ce("br"));
//-//
let image = ce("img");
image.src = whichArray[i].image;
image.className = "theImage";
subDiv.append(image);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfInvestigation.js
function sortInvestigation(whichY, whichDirection)
{
let whichArray = petitoGabrielleInvestigation;
if (whichDirection == "up")
{
whichArray.sort(function(a, b)
{
return new Date(a.date) - new Date(b.date);
});
}
else if (whichDirection == "down")
{
whichArray.sort(function(b, a)
{
return new Date(a.date) - new Date(b.date);
});
}
rowOfInvestigation(100, whichY, 400, 400, whichArray, "note");
}
function removeRow()
{
let name = "Investigation";
let counter = 0;
for (x = 0; x < petitoGabrielleInvestigation.length; x++)
{
counter += 1;
removeElement(name + counter);
}
removeElement("theIdOfButtons");
}
function rowOfInvestigation(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
let mainDiv = ce("div");
mainDiv.id = "evidenceWithImageId";
mainDiv.title = "rowOfInvestigation(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
let theButtons = ce("div");
theButtons.id = "theIdOfButtons";
theButtons.className = "divStyle001";
mainDiv.append(theButtons);
//-//
let buttonAscending = ce("button");
buttonAscending.className = "ourButton";
buttonAscending.onclick = function()
{
sortInvestigation(theY, 'up'); removeRow();
};
buttonAscending.textContent = "Ascending";
theButtons.append(buttonAscending);
//-//
let buttonDescending = ce("button");
buttonDescending.className = "ourButton";
buttonDescending.onclick = function()
{
sortInvestigation(theY, 'down'); removeRow();
};
buttonDescending.textContent = "Descending";
theButtons.append(buttonDescending);
//-//
let buttonRemoveRow = ce("button");
buttonRemoveRow.className = "ourButton";
buttonRemoveRow.onclick = function()
{
removeRow();
};
buttonRemoveRow.innerText = "Remove\nRow";
theButtons.append(buttonRemoveRow);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 7)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY, of any month, of any year
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
if (whichArray) // shows all items
{
counter += 1;
let theDiv = ce("div");
theDiv.id = "Investigation" + counter;
theDiv.className = "divStyle001";
theDiv.style.width = sizeX + 'px';
theDiv.style.height = sizeY + 'px';
mainDiv.append(theDiv);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.style.marginRight = "10px";
printButton.style.zIndex = "20";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
printButton.textContent = "print";
theDiv.append(printButton);
//-//
let dateSpan = ce("span");
dateSpan.textContent = whichArray[i].date;
theDiv.append(dateSpan);
//-//
theDiv.append(ce("hr"));
//-//
let summarySpan = ce("span");
summarySpan.style.color = "rgb(0, 255, 255)";
summarySpan.style.fontWeight = "bold";
summarySpan.textContent = whichArray[i].summary;
theDiv.append(summarySpan);
//-//
theDiv.append(ce("br"));
//-//
let noteSpan = ce("span");
noteSpan.textContent = whichArray[i].note;
theDiv.append(noteSpan);
//-//
theDiv.append(ce("hr"));
//-//
let newsArticleLink = ce("a");
newsArticleLink.href = whichArray[i].newsArticleOne;
newsArticleLink.target = "_blank";
newsArticleLink.textContent = whichArray[i].newsArticleOne;
newsArticleLink.style.color = "aqua";
theDiv.append(newsArticleLink);
//-//
theDiv.append(ce("hr"));
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfLanguage.js
function rowOfLanguage(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "scriptingCategory";
mainDiv.title = "rowOfLanguage(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = 75 + "px";
ba(mainDiv);
//-//
// used with lindenLanguage array
// used with javascriptLanguage array
for (let i = 0; i < whichArray.length; i++)
{
if (whichArray[i].category == criteria1 && whichArray[i].tag == criteria2)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = "JavaScriptCategories_" + whichArray[i].category + counter;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX +'px';
subDiv.style.height = sizeY +'px';
mainDiv.append(subDiv);
//-//
let controlPanelDetails = ce("details");
subDiv.append(controlPanelDetails);
//-//
let controlPanelSummary = ce("summary");
controlPanelDetails.append(controlPanelSummary);
//-//
let controlPanel = ce("div");
controlPanel.style.position = "relative";
controlPanelSummary.append(controlPanel);
//-//
subDiv.append(ce('hr'));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.style.marginRight = 10 + "px";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
printButton.textContent = "print";
controlPanelDetails.append(printButton);
//-//
let titleOfUrlAnchor = ce("a");
titleOfUrlAnchor.target = "_blank";
titleOfUrlAnchor.href = whichArray[i].url;
titleOfUrlAnchor.style.marginRight = 10 + "px";
controlPanelDetails.append(titleOfUrlAnchor);
//-//
let titleOfUrl = ce("span");
titleOfUrl.textContent = "Link 1";
titleOfUrlAnchor.append(titleOfUrl);
//-//
let titleOfUrlAnchor2 = ce("a");
titleOfUrlAnchor2.target = "_blank";
titleOfUrlAnchor2.href = whichArray[i].url2;
controlPanelDetails.append(titleOfUrlAnchor2);
//-//
let titleOfUrl2 = ce("span");
titleOfUrl2.textContent = "Link 2";
titleOfUrlAnchor2.append(titleOfUrl2);
//-//
subDiv.append(ce('hr'));
//-//
let titleOfLanguage = ce("span");
titleOfLanguage.style.color = "rgb(180, 180, 180)";
titleOfLanguage.textContent = whichArray[i].language;
subDiv.append(titleOfLanguage);
//-//
subDiv.append(ce('hr'));
//-//
let titleOfCategory = ce("span");
titleOfCategory.style.color = "rgb(255, 0, 255)";
titleOfCategory.textContent = whichArray[i].category;
subDiv.append(titleOfCategory);
//-//
subDiv.append(ce('hr'));
//-//
let titleOfFunction = ce("div");
titleOfFunction.style.fontSize = 30 + "px";
titleOfFunction.style.color = "rgb(0, 255, 255)";
titleOfFunction.textContent = whichArray[i].name;
subDiv.append(titleOfFunction);
//-//
subDiv.append(ce('hr'));
//-//
let titleOfDescription= ce("span");
titleOfDescription.style.color = "rgb(0, 190, 220)";
titleOfDescription.textContent = whichArray[i].description;
subDiv.append(titleOfDescription);
//-//
subDiv.append(ce('hr'));
//-//
let syntax = ce("span");
syntax.style.color = "rgb(180, 180, 180)";
syntax.textContent = whichArray[i].syntax;
subDiv.append(syntax);
//-//
subDiv.append(ce('hr'));
//-//
let useage = ce("span");
useage.textContent = whichArray[i].useage;
subDiv.append(useage);
//-//
subDiv.append(ce('hr'));
//-//
let returnValue = ce("span");
returnValue.style.color = "rgb(150, 100, 200)";
returnValue.textContent = whichArray[i].type;
subDiv.append(returnValue);
//-//
subDiv.append(ce('hr'));
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfLanguageShowAll.js
function rowOfLanguageShowAll(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2) {
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "scriptingSection";
mainDiv.style.position = "absolute";
mainDiv.title = "rowOfLanguageShowAll(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)";
mainDiv.style.position = 'absolute';
mainDiv.style.top = theY + "px";
mainDiv.style.left = theX + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1 && whichArray[i].language == criteria2)
{
counter += 1;
//-//
let theDiv = ce("div");
theDiv.id = "JavaScriptAll" + counter;
theDiv.className = "divStyle001";
theDiv.style.width = sizeX + "px";
theDiv.style.height = sizeY + "px";
//-//
theDiv.append(ce("hr"));
//-//
let language = ce("span");
language.style.fontSize = "14pt";
language.style.lineHeight = "15pt";
language.textContent = whichArray[i].language;
theDiv.append(language);
//-//
theDiv.append(ce("hr"));
//-//
let boldAqua = ce("b");
boldAqua.style.color = "aqua";
boldAqua.textContent = whichArray[i].category;
theDiv.append(boldAqua);
//-//
theDiv.append(ce("hr"));
//-//
let boldYellow = ce("b");
boldYellow.style.color = "yellow";
boldYellow.textContent = whichArray[i].name;
theDiv.append(boldYellow);
//-//
theDiv.append(ce("hr"));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.style.marginRight = '10px';
printButton.textContent = "Print";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
theDiv.append(printButton);
//-//
let urlLabel = ce("span");
urlLabel.style.fontWeight = "bold";
urlLabel.textContent = "URL: ";
theDiv.append(urlLabel);
//-//
let urlLink = ce("a");
urlLink.href = whichArray[i].url;
urlLink.target = "_blank";
urlLink.textContent = "Link";
theDiv.append(urlLink);
//-//
let url2Label = ce("span");
url2Label.style.fontWeight = "bold";
url2Label.textContent = "URL2: ";
theDiv.append(url2Label);
//-//
let url2Link = ce("a");
url2Link.href = whichArray[i].url2;
url2Link.target = "_blank";
url2Link.textContent = "Link 2";
theDiv.append(url2Link);
//-//
theDiv.append(ce("hr"));
//-//
let functionNameLabel = ce("span");
functionNameLabel.style.fontWeight = "bold";
functionNameLabel.style.color = "rgb(180, 180, 180)";
functionNameLabel.textContent = "Name of Function:";
theDiv.append(functionNameLabel);
//-//
let functionName = ce("span");
functionName.style.fontWeight = "bold";
functionName.textContent = whichArray[i].name;
theDiv.append(functionName);
//-//
theDiv.append(ce("hr"));
//-//
let descriptionLabel = ce("span");
descriptionLabel.style.fontWeight = "bold";
descriptionLabel.style.color = "rgb(180, 180, 180)";
descriptionLabel.textContent = "Description: ";
theDiv.append(descriptionLabel);
//-//
let description = ce("div");
description.textContent = whichArray[i].description;
theDiv.append(description);
//-//
theDiv.append(ce("hr"));
//-//
let syntaxLabel = ce("span");
syntaxLabel.style.fontWeight = "bold";
syntaxLabel.style.color = "rgb(180, 180, 180)";
syntaxLabel.textContent = "Syntax: ";
theDiv.append(syntaxLabel);
//-//
let syntax = ce("div");
syntax.textContent = whichArray[i].syntax;
theDiv.append(syntax);
//-//
theDiv.append(ce("hr"));
//-//
let usageLabel = ce("span");
usageLabel.style.fontWeight = "bold";
usageLabel.style.color = "rgb(180, 180, 180)";
usageLabel.textContent = "Usage: ";
theDiv.append(usageLabel);
//-//
let usage = ce("div");
usage.textContent = whichArray[i].useage;
theDiv.append(usage);
//-//
theDiv.append(ce("hr"));
//-//
let returnTypeLabel = ce("span");
returnTypeLabel.style.fontWeight = "bold";
returnTypeLabel.style.color = "rgb(180, 180, 180)";
returnTypeLabel.textContent = "Return Value Type: ";
theDiv.append(returnTypeLabel);
//-//
let returnType = ce("div");
returnType.textContent = whichArray[i].type;
theDiv.append(returnType);
//-//
theDiv.append(ce("hr"));
//-//
let deleteButton = ce("button");
deleteButton.className = "ourButton";
deleteButton.textContent = "Delete";
deleteButton.onclick = function()
{
deleteThisRecord(theDiv.id);
};
theDiv.append(deleteButton);
//-//
theDiv.append(ce("hr"));
//-//
mainDiv.append(theDiv);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfNews.js
// makes divs in a row - custom for news Data
function rowOfNews(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "newsSection";
mainDiv.title = "rowOfNews(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
// if, instead of filter function,
// is 70% faster
if (whichArray)
{
counter += 1;
//-//
let theDiv = ce("div");
theDiv.id = "News" + counter;
theDiv.className = "divStyle001";
theDiv.style.width = sizeX + 'px';
theDiv.style.padding = "10px";
mainDiv.append(theDiv);
//-//
let newsHeading = ce("div");
newsHeading.textContent = "NEWS";
let hr = ce("hr");
hr.className = 'hrCompact';
newsHeading.append(hr);
theDiv.append(newsHeading);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "Print";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
theDiv.append(printButton);
//-//
theDiv.append(ce("br"));
//-//
let headline = ce("div");
headline.textContent = whichArray[i].headline;
theDiv.append(headline);
//-//
let date = ce("div");
date.textContent = whichArray[i].date;
theDiv.append(date);
//-//
let link = ce("a");
link.href = whichArray[i].url;
link.target = "_blank";
link.textContent = "Link";
theDiv.append(link);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfNotes.js
function rowOfNotes(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "notesId";
mainDiv.title = "rowOfNotes(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
if (whichArray)
{
counter += 1;
//-//
let theDiv = ce("div");
theDiv.id = "Notes" + counter;
theDiv.className = "divStyle001";
theDiv.style.width = "170px";
theDiv.style.padding = "12px";
mainDiv.append(theDiv);
//-//
let notesHeading = ce("div");
notesHeading.textContent = "Notes Row";
//-//
theDiv.append(ce("hr"));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "Print";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
theDiv.append(printButton);
//-//
theDiv.append(ce("br"));
//-//
let date = ce("div");
date.textContent = whichArray[i].date;
theDiv.append(date);
//-//
let number = ce("div");
number.textContent = whichArray[i].number;
theDiv.append(number);
//-//
let note = ce("div");
note.textContent = whichArray[i].note;
theDiv.append(note);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfNotesWithTextArea.js
function rowOfNotesWithTextArea(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "notesWithTextareaId";
mainDiv.title = "rowOfNotesWithTextArea(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
if (whichArray)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.className = "divStyle001";
mainDiv.append(subDiv);
//-//
let theTextArea = ce("textarea");
theTextArea.id = "NotesWithTextArea" + counter;
theTextArea.className = "divStyle001";
theTextArea.style.width = (sizeX - 30) + 'px';
theTextArea.style.height = (sizeY - 50) + 'px';
theTextArea.style.resize = "none";
theTextArea.setAttribute("readonly", "true");
theTextArea.value = "Notes Row with Text Area Scrolling" + "\n";
theTextArea.value += whichArray[i].date + "\n";
theTextArea.value += whichArray[i].number + "\n";
theTextArea.value += whichArray[i].note + "\n";
subDiv.append(theTextArea);
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "Print";
printButton.onclick = function()
{
printTextArea(theTextArea.id);
};
subDiv.append(printButton);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfScienceImagesAndLink.js
function rowOfScienceImagesAndLink(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2) {
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "notesWithTextareaId";
mainDiv.title = "rowOfScienceImagesAndLink(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1 || whichArray[i].description == criteria2) {
// filter by MONTH
// if (whichArray[i].date.substring(0, 2) == 3)
// filter by Multiple MONTHS
// if(whichArray[i].date.substring(0, 2) == 8 || whichArray[i].date.substring(0, 2) == 9)
// filter by DATE
// if (whichArray[i].date.substring(0, 10) == "02/29/2018")
// filter by Multiple DATES
// if (whichArray[i].date.substring(0, 10) == "02/29/2018" || whichArray[i].date.substring(0, 10) == "02/29/2020")
// filter by DAY of month
// if (whichArray[i].date.substring(3, 5) == 2)
// filter by YEAR
// if (whichArray[i].date.substring(6, 10) == 2019)
// filter by MULTIPLE YEARS
// if (whichArray[i].date.substring(6, 10) == 2019 || whichArray[i].date.substring(6, 10) == 2020)
// filter by MONTH and YEAR
// if (whichArray[i].date.substring(0, 2) == 2 && whichArray[i].date.substring(6, 10) == 2020)
// or show all by using
// if (whichArray)
if (whichArray)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = "ScienceWithImageAndLink" + counter;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
subDiv.style.height = sizeY + 'px';
mainDiv.append(subDiv);
//-//
let theContent = ce("div");
theContent.textContent = "Science Row with Image and Link";
subDiv.append(theContent);
//-//
theContent.append(ce("hr"));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "Print";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
theContent.append(printButton);
//-//
theContent.append(ce("br"));
//-//
let title = ce("div");
title.textContent = whichArray[i].title;
theContent.append(title);
//-//
theContent.append(ce("br"));
//-//
let date = ce("div");
date.textContent = whichArray[i].date;
theContent.append(date);
//-//
theContent.append(ce("br"));
//-//
let info = ce("div");
info.textContent = whichArray[i].info;
theContent.append(info);
//-//
theContent.append(ce("br"));
//-//
let details = ce("details");
let link = ce("a");
link.href = whichArray[i].url;
link.target = "_blank";
link.textContent = whichArray[i].url;
details.append(link);
theContent.append(details);
//-//
theContent.append(ce("br"));
//-//
let theImage = ce("img");
theImage.src = whichArray[i].image;
theImage.className = "theScienceImages";
theContent.append(theImage);
}
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfSocialMediaEvidence.js
function rowOfSocialMediaEvidence(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "notesWithTextareaId";
mainDiv.title = "rowOfSocialMediaEvidence(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1 && whichArray[i].date.substring(6, 10) == 2020 && whichArray[i].probability >= 50)
{
counter += 1;
//-//
let theDiv = ce("div");
theDiv.id = "SocialMediaEvidence" + counter;
theDiv.className = "divStyle001";
theDiv.style.width = sizeX + 'px';
theDiv.style.height = sizeY + 'px';
theDiv.textContent = 'Social Media Evidence Rating';
mainDiv.append(theDiv);
//-//
theDiv.append(ce('hr'));
//-//
let printButton = ce("button");
printButton.className = "ourButton";
printButton.textContent = "print";
printButton.onclick = function()
{
printOnlyDiv(theDiv.id);
};
theDiv.append(printButton);
//-//
theDiv.append(ce("br"));
//-//
let title = ce("div");
title.textContent = whichArray[i].title;
theDiv.append(title);
//-//
theDiv.append(ce("br"));
//-//
let date = ce("div");
date.textContent = whichArray[i].date;
theDiv.append(date);
//-//
theDiv.append(ce("br"));
//-//
let info = ce("div");
info.textContent = whichArray[i].info;
theDiv.append(info);
//-//
theDiv.append(ce("br"));
//-//
let probability = ce("div");
probability.textContent = "Probability Rating: " + whichArray[i].probability + "%";
theDiv.append(probability);
//-//
theDiv.append(ce("br"));
//-//
let theLink = ce("a");
theLink.href = whichArray[i].url;
theLink.target = "_blank";
theLink.textContent = "Link";
theDiv.append(theLink);
//-//
theDiv.append(ce("br"));
//-//
let theImage = ce("img");
theImage.src = whichArray[i].image;
theImage.className = "theImage";
theDiv.append(theImage);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfVideos.js
// adds videos to the page. The videos must allow embed. On youtube, we copy the url in the Address Bar
// for example https://www.youtube.com/watch?v=Q4tPG-cwiWE
// then we just replace watch?v= with embed/
// for example https://www.youtube.com/embed/Q4tPG-cwiWE
function rowOfVideos(theX, theY, sizeX, sizeY, whichArray, criteria)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "videoEvidenceId";
mainDiv.title = "rowOfVideos(theX, theY, sizeX, sizeY, whichArray, criteria)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++)
{
if (whichArray[i].description === criteria)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = whichArray[i].title + i;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
mainDiv.append(subDiv);
//-//
let titleText = ce("span");
titleText.textContent = whichArray[i].title;
subDiv.append(titleText);
//-//
subDiv.append(ce("br"));
//-//
let uploadDateText = ce("span");
uploadDateText.textContent = "upload date " + whichArray[i].date;
subDiv.append(uploadDateText);
//-//
subDiv.append(ce("br"));
//-//
let urlText = ce("span");
urlText.textContent = whichArray[i].url;
subDiv.append(urlText);
//-//
subDiv.append(ce("br"));
//-//
let linkElement = ce("a");
linkElement.href = whichArray[i].url;
linkElement.target = "_blank";
linkElement.textContent = "Link";
subDiv.append(linkElement);
//-//
subDiv.append(ce("br"));
//-//
let criteriaText = ce("b");
criteriaText.style.color = "aqua";
criteriaText.textContent = criteria;
subDiv.append(criteriaText);
//-//
subDiv.append(ce("br"));
//-//
let printButton = ce("button");
printButton.textContent = "print";
printButton.className = "ourButton";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
let makeVideo = ce("iframe");
makeVideo.src = whichArray[i].url;
makeVideo.style.width = sizeX + 'px';
makeVideo.style.height = sizeY + 'px';
subDiv.append(makeVideo);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfVideosMultipleFilters.js
function rowOfVideosMultipleFilters(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "videoEvidenceMultipleFilters";
mainDiv.title = "rowOfVideosMultipleFilters(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++)
{
if (whichArray[i].tag === criteria1 && whichArray[i].description === criteria2)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = whichArray[i].title + i;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
mainDiv.append(subDiv);
//-//
let criteria1Text = ce("b");
criteria1Text.style.color = "yellow";
criteria1Text.textContent = criteria1;
subDiv.append(criteria1Text);
//-//
let separatorText = ce("span");
separatorText.textContent = " - ";
subDiv.append(separatorText);
//-//
let criteria2Text = ce("b");
criteria2Text.style.color = "aqua";
criteria2Text.textContent = criteria2;
subDiv.append(criteria2Text);
//-//
subDiv.append(ce("br"));
//-//
let titleText = ce("span");
titleText.textContent = whichArray[i].title;
subDiv.append(titleText);
//-//
subDiv.append(ce("br"));
//-//
let uploadDateText = ce("span");
uploadDateText.textContent = "upload date " + whichArray[i].date;
subDiv.append(uploadDateText);
//-//
subDiv.append(ce("br"));
//-//
let urlText = ce("span");
urlText.textContent = whichArray[i].url;
subDiv.append(urlText);
//-//
subDiv.append(ce("br"));
//-//
let linkElement = ce("a");
linkElement.href = whichArray[i].url;
linkElement.target = "_blank";
linkElement.textContent = "Link";
subDiv.append(linkElement);
//-//
subDiv.append(ce("br"));
//-//
let printButton = ce("button");
printButton.textContent = "print";
printButton.className = "ourButton";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
let theVideo = ce("iframe");
theVideo.src = whichArray[i].url;
theVideo.style.width = sizeX + 'px';
theVideo.style.height = sizeY + 'px';
subDiv.append(theVideo);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfVideosOnlineStartEnd.js
// makes a row of videos, using internet url embed enabled videos, with a reload button, so that the video and/or audio can be played again from the start point.
function makeVideosOnlineStartEnd(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "makeVideosOnlineStartEnd";
mainDiv.title = "makeVideosOnlineStartEnd(theX, theY, sizeX, sizeY, whichArray, criteria1, criteria2)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++)
{
if (whichArray[i].tag === criteria1 && whichArray[i].description === criteria2)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = whichArray[i].title;
subDiv.className = "divStyle001";
subDiv.style.width = sizeX + 'px';
mainDiv.append(subDiv);
//-//
let criteria1Text = ce("b");
criteria1Text.style.color = "yellow";
criteria1Text.textContent = criteria1;
subDiv.append(criteria1Text);
//-//
let separatorText = ce("span");
separatorText.textContent = " - ";
subDiv.append(separatorText);
//-//
let criteria2Text = ce("b");
criteria2Text.style.color = "aqua";
criteria2Text.textContent = criteria2;
subDiv.append(criteria2Text);
//-//
subDiv.append(ce("br"));
//-//
let titleText = ce("span");
titleText.textContent = whichArray[i].title;
subDiv.append(titleText);
//-//
subDiv.append(ce("br"));
//-//
let uploadDateText = ce("span");
uploadDateText.textContent = "upload date " + whichArray[i].date;
subDiv.append(uploadDateText);
//-//
subDiv.append(ce("br"));
//-//
let urlText = ce("span");
urlText.textContent = whichArray[i].url;
subDiv.append(urlText);
//-//
subDiv.append(ce("br"));
//-//
let theLink = ce("a");
theLink.href = whichArray[i].url;
theLink.target = "_blank";
theLink.textContent = "Link";
subDiv.append(theLink);
//-//
subDiv.append(ce("br"));
//-//
let printButton = ce("button");
printButton.textContent = "print";
printButton.className = "ourButton";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
let theVideo = ce("iframe");
theVideo.src = whichArray[i].url;
theVideo.style.width = sizeX + 'px';
theVideo.style.height = sizeY + 'px';
subDiv.append(theVideo);
//-//
let reloadButton = ce("button");
reloadButton.className = "ourButton";
reloadButton.onclick = function()
{
theVideo.src = theVideo.src;
};
reloadButton.textContent = "Reload";
subDiv.append(reloadButton);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// rowOfWebsitesOrVideos.js
// Makes iframes in a row to add content to our level can be used to display Websites or Videos the websites must allow iframe the videos must allow embed
function rowOfWebsitesOrVideos(theX, theY, sizeX, sizeY, whichArray, criteria1)
{
let counter = 0;
//-//
let mainDiv = ce("div");
mainDiv.id = "rowOfWebsitesOrVideos";
mainDiv.title = "rowOfWebsitesOrVideos(theX, theY, sizeX, sizeY, whichArray, criteria1)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "75px";
ba(mainDiv);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray[i].tag == criteria1)
{
counter += 1;
//-//
let subDiv = ce("div");
subDiv.id = whichArray[i].title + i;
subDiv.className = "divStyle001";
mainDiv.append(subDiv);
//-//
let printButton = ce("button");
printButton.textContent = "print";
printButton.className = "ourButton";
printButton.onclick = function()
{
printOnlyDiv(subDiv.id);
};
subDiv.append(printButton);
//-//
subDiv.append(ce("br"));
//-//
let boldCriteria = ce("b");
boldCriteria.style.color = "yellow";
boldCriteria.textContent = criteria1;
subDiv.append(boldCriteria);
//-//
subDiv.append(ce("br"));
//-//
let boldTitle = ce("b");
boldTitle.textContent = whichArray[i].title;
subDiv.append(boldTitle);
//-//
subDiv.append(ce("br"));
//-//
let uploadDateText = ce("span");
uploadDateText.textContent = "upload date " + whichArray[i].date;
subDiv.append(uploadDateText);
//-//
subDiv.append(ce("br"));
//-//
let urlText = ce("span");
urlText.textContent = whichArray[i].url;
subDiv.append(urlText);
//-//
subDiv.append(ce("br"));
//-//
let linkElement = ce("a");
linkElement.href = whichArray[i].url;
linkElement.target = "_blank";
linkElement.textContent = "Link";
subDiv.append(linkElement);
//-//
subDiv.append(ce("br"));
//-//
let theFrame = ce("iframe");
theFrame.src = whichArray[i].url;
theFrame.style.width = sizeX + 'px';
theFrame.style.height = sizeY + 'px';
subDiv.append(theFrame);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// soundsArray.js
let soundsArray =
[
{
name: 'sfx_blip_001',
soundFileOffline: 'src/media/sounds/sfx_blip_001.mp4',
soundFileOnline: 'https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/sfx_blip_001.mp4'
},
{
name: 'sfx_warp_001',
soundFileOffline: 'src/media/sounds/sfx_warp_001.mp3',
soundFileOnline: 'https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/sfx_warp_001.mp3'
}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// songsArray.js
let songsArray =
[
{
name: "Emotional Blockbuster 2",
theId: "EmotionalBlockbuster2",
soundFileOffline: 'src/media/songs/emotional_blockbuster_2.mp3',
soundFileOnline: "https://64482293-555277121853380144.preview.editmysite.com/uploads/6/4/4/8/64482293/emotional_blockbuster_2.mp3"
},
{
name: "Video Game Blockbuster",
theId: "VideoGameBlockbuster",
soundFileOffline: "src/media/songs/video_game_blockbuster.mp3",
soundFileOnline: "https://64482293-555277121853380144.preview.editmysite.com/uploads/6/4/4/8/64482293/video_game_blockbuster.mp3"
},
{
name: "Ice and Snow",
theId: "iceAndSnow",
soundFileOffline: "src/media/songs/ice_and_snow.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/ice_and_snow.mp3"
},
{
name: "Kings Trailer",
theId: "kingsTrailer",
soundFileOffline: "src/media/songs/kings_trailer.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/kings_trailer.mp3"
},
{
name: "Lonely Mountain",
theId: "lonelyMontain",
soundFileOffline: "src/media/songs/lonely_mountain.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/lonely_mountain.mp3"
},
{
name: "Parhelion",
theId: "parehelion",
soundFileOffline: "src/media/songs/parhelion.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/parhelion.mp3"
},
{
name: "Night Vigil",
theId: "nightVigil",
soundFileOffline: "src/media/songs/night_vigil.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/night_vigil.mp3"
},
{
name: "The Abyss",
theId: "theAbyss",
soundFileOffline: "src/media/songs/the_abyss.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/the_abyss.mp3"
},
{
name: "Burt's Requiem",
theId: "burtsRequiem",
soundFileOffline: "src/media/songs/burts_requiem.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/burts_requiem.mp3"
},
{
name: "Horizon Flare",
theId: "horizonFlare",
soundFileOffline: "src/media/songs/horizon_flare.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/horizon_flare.mp3"
},
{
name: "Motions",
theId: "motions",
soundFileOffline: "src/media/songs/motions.mp3",
soundFileOnline: "https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/motions.mp3"
}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// audioPlay.js
function audioPlay(whichId, whichVolume)
{
let audio = ge(whichId);
if (audio)
{
audio.volume = whichVolume;
audio.play();
}
}
//--//
// example
// audioPlay("blip", 1.0);
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// clickSound.js
function clickSound()
{
audioPlay('sfx_blip_001', 1.0);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// enterButtonSound.js
function enterButtonSound()
{
audioPlay("sfx_blip_001", 1.0);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// hoverSound.js
function hoverSound()
{
audioPlay('sfx_warp_001', 1.0);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// playSong.js
function playSong(whichSongId)
{
let song = ge(whichSongId);
song.volume = songVolume;
songChosenId = song.id + "Button";
console.log(songChosenId);
// color button of song chosen
ge(songChosenId).style.background = "rgb(128,128,128)";
// console.log(song.id);
if (songFlag == 0)
{
song.volume= songVolume;
song.play();
songFlag = 1;
}
else if (songFlag == 1)
{
// color chosen song's Button back to its default color
ge(songChosenId).style.background = "rgb(0, 77, 129)";
let song = ge(whichSongId);
song.pause();
songFlag = 0;
}
}
//--//
// example
// playSong("emotionalBlockbuster2Song", 1.0);
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// sound.js
// PLAY SONG and use a Toggle Button system for activating and stopping the songs
let songFlag = 0;
let songVolume = 0.3;
let songChosenId;
let songActive = 0;
function loadSounds(whichArray)
{
for (let x = 0; x < whichArray.length; x++)
{
let theSound = ce('audio');
if (online == false)
{
theSound.src = whichArray[x].soundFileOffline;
}
else
{
theSound.src = whichArray[x].soundFileOnline;
}
theSound.id = whichArray[x].name;
theSound.loop = false;
theSound.volume = 1.0;
ba(theSound);
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// stopSound.js
function stopSound(whichSongId)
{
let song = ge(whichSongId);
song.pause();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// volumeSet.js
function volumeSet(theVolume)
{
songVolume = theVolume;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresColorAll.js
// Color All Structures
function structuresColorAll()
{
let theStructure;
for (let x = 1; x <= structuresArray.length; x++)
{
theStructure = "STRUCTURE" + x;
ge(theStructure).style.backgroundColor = "rgb(70, 95, 140)";
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresCreate.js
/*
CREATE a STRUCTURE:
After the Letter B on the keyboard is pressed, or the Create Button is Left Clicked in the Player Menu, it activates Structure Create Mode, which allows us to place structures in the world using the Left Mouse Button.
Esc Button is used to deactivate Structure Mode.
*/
let structureId = 1;
function structuresCreate(theEvent, theX, theY)
{
audioPlay("sfx_blip_001", 1.0);
//-//
theX = theEvent.pageX;
theY = theEvent.pageY;
//-//
let sizeX = 110;
let sizeY = 45;
//-//
let colorFill = "black";
let colorText = "white";
let structureOpacity = 1.0;
let theTexture = "Default";
//-//
let ourStructure = ce("div");
ourStructure.style.position = "absolute";
// For a Center Position System, use this way below
// We minus the structures size divided by itself.
// This way we place structures according to their center, instead of their top left corner.
ourStructure.style.left = theX - (sizeX / 2) + 'px';
ourStructure.style.top = theY - (sizeY / 2) + 'px';
/*
// For a Top Left Coordinate System, use this way below
ourStructure.style.left = theX +'px';
ourStructure.style.top = theY + 'px';
*/
// ourStructure.id = "STRUCTURE" + structureId;
ourStructure.style.width = sizeX +'px';
ourStructure.style.height = sizeY + 'px';
// id
ourStructure.id = structuresArray.length + 1;
ourStructure.style.resize = 'both';
// ourStructure.setAttribute('onclick', 'structuresGetInfo(\''+ourStructure.id+'\');');
// Open the Structure Edit Menu for the clicked structure
ourStructure.oncontextmenu = function()
{
clickSound();
menuStructureEdit(ourStructure.id);
};
// ourStructure.setAttribute('onclick', 'menuStructureEdit(\''+ourStructure.id+'\');');
// when clicked activate two functions
// ourStructure.setAttribute('onclick', 'menuStructureEdit(\''+ourStructure.id+'\');structuresGetInfo(\''+ourStructure.id+'\');');
ourStructure.style.zIndex = "2";
ourStructure.style.border = "solid 2px rgba(100, 100, 255, 1.0)";
ourStructure.style.background = colorFill;
ourStructure.style.opacity = structureOpacity;
// ourStructure.style.backgroundImage = 'url("https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/wood1.jpg")';
ourStructure.style.backgroundImage= theTexture;
// PADDING
// ourStructure.style.paddingTop = "2px";
ourStructure.style.fontFamily = "arial";
ourStructure.style.fontWeight = "bold";
ourStructure.style.fontSize = "20px";
ourStructure.style.color = colorText;
ourStructure.style.textAlign = "center";
ourStructure.style.overflowY = "scroll";
// show the ID, X, and Y, on the STRUCTURE
ourStructure.innerText = ourStructure.id + "\n" + "Name" + "\n" + theX + ", " + theY;
// structuresArray[structureId].name
let structureAttributes =
{
// name: ourStructure.id, //name
name: "Name", // name
id: ourStructure.id, // id
posX: theX, // posX
posY: theY, //posY
sizeX: sizeX, // sizeX
sizeY: sizeY, // sizeY
colorFill: colorFill, // fill color
colorText: colorText, // text color
opacity: structureOpacity, //opacity
texture: theTexture // texture
};
// add the new structure's name, id, posX, posY, sizeX, and sizeY to our structuresArray
structuresArray.push(structureAttributes);
console.log(JSON.stringify(structuresArray));
ba(ourStructure);
makeElementDraggable(ourStructure);
showStructureData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresCreateFromFile.js
function structuresCreateFromFile()
{
// console.log(JSON.stringify(structuresArray));
// the structuresArray that we use in this function, is located in structureData.js
for (let z = 0; z < structuresArray.length; z++)
{
let ourStructure = ce("div");
ourStructure.style.position = "absolute";
// For a Center Position System, use this way below
// We minus the structures size divided by itself.
// This way we place structures according to their center, instead of their top left corner.
ourStructure.style.left = structuresArray[z].posX - (structuresArray[z].sizeX / 2) + 'px';
ourStructure.style.top = structuresArray[z].posY - (structuresArray[z].sizeY / 2) + 'px';
/*
// For a Top Left Coordinate System, use this way below
ourStructure.style.left = structuresArray[z].posX + 'px';
ourStructure.style.top = structuresArray[z].posY + 'px';
*/
// SIZE
ourStructure.style.width = structuresArray[z].sizeX +'px';
ourStructure.style.height = structuresArray[z].sizeY +'px';
ourStructure.style.overflowY = "scroll";
// PADDING
// ourStructure.style.paddingTop = "2px";
// "STRUCTURE" + structureId;
// id
ourStructure.id = structuresArray[z].id;
ourStructure.style.resize = 'both';
// Show info about the structure, under the structure
// ourStructure.setAttribute('onclick', 'structuresGetInfo(\''+ourStructure.id+'\');');
// when right clicked
// open structure edit menu
ourStructure.oncontextmenu = function()
{
clickSound();
menuStructureEdit(ourStructure.id);
};
// ourStructure.setAttribute('onclick', 'menuStructureEdit(\''+ourStructure.id+'\');structuresGetInfo(\''+ourStructure.id+'\');');
ourStructure.style.zIndex = structuresArray[z].layer;
if (structuresArray[z].texture != "none")
{
ourStructure.style.backgroundImage = structuresArray[z].texture;
}
else
{
ourStructure.style.background = structuresArray[z].colorFill;
}
ourStructure.style.border = "solid 2px";
ourStructure.style.borderColor = "rgba(100, 100, 255, 1.0)";
ourStructure.style.opacity = structuresArray[z].opacity;
// FONT
ourStructure.style.fontFamily = "arial";
ourStructure.style.fontWeight = "bold";
ourStructure.style.fontSize = "20px";
ourStructure.style.color = structuresArray[z].colorText;
ourStructure.style.textAlign = "center";
// Show the id of the structure and also the simplified position data
ourStructure.innerText = structuresArray[z].id + "\n" + structuresArray[z].name + "\n" + structuresArray[z].posX.toFixed(0) + "\n" + structuresArray[z].posY.toFixed(0);
ba(ourStructure);
makeElementDraggable(ourStructure);
}
//console.log(JSON.stringify(structuresArray));
}
// example
// structuresArray data in the console
// console.log(JSON.stringify(structuresArray, null, ' ') + ";" + "\n\n");
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresGoTo.js
// Send the Player to the Chosen Structure Location
function structuresGoTo(whichId)
{
console.log(whichId);
//let playerElement = ge(whichId);
//if (playerElement)
//{
audioPlay("sfx_blip_001", 1.0);
// Get the position
let newPosition = positionGet(whichId);
// Update player position
ourPlayer.x = newPosition.x + 15;
ourPlayer.y = newPosition.y - 35;
// Move player to the new position
// movePlayer(whichId, ourPlayer.x, ourPlayer.y);
ge(activePlayer).style.left = ourPlayer.x + "px";
ge(activePlayer).style.top = ourPlayer.y + "px";
//}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
//structuresRemoveAll.js
// Remove All Structures
function structuresRemoveAll()
{
let theStructure;
for (let x = 1; x <= structuresArray.length; x++)
{
theStructure = "STRUCTURE" + x;
removeElement(theStructure);
}
// reset the array
structuresArray = [ ];
// reset the structureId to 1
structureId = 1;
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// structuresRow.js
/*
By Pressing the J button, the player creates a menu that is populated with entries from each Structure made.
The player can then click on any of the entries to be taken to the location of that Structure.
The Structures GoTo Menu can also be opened from the playerMenu, by clicking on the GoTo button.
*/
function structuresRow(theX, theY, sizeX, sizeY, whichArray)
{
if (ge("structureRowMainDiv"))
{
removeElement("structureRowMainDiv");
}
//-//
let mainDiv = ce("div");
mainDiv.id = "structureRowMainDiv";
mainDiv.title = "structuresRow(theX, theY, sizeX, sizeY, whichArray)";
mainDiv.style.position = "absolute";
mainDiv.style.left = theX + "px";
mainDiv.style.top = theY + "px";
mainDiv.style.display = "flex";
mainDiv.style.flexDirection = "row";
mainDiv.style.gap = "15px";
mainDiv.style.zIndex = 4;
ba(mainDiv);
//-//
let closeButton = ce("button");
closeButton.id = "closeButton";
closeButton.className = "ourButton";
closeButton.textContent = "X";
closeButton.onclick = function()
{
clickSound();
ge("structureRowMainDiv").remove();
};
mainDiv.append(closeButton);
//-//
for (let i = 0; i < whichArray.length; i++) {
if (whichArray)
{
let theTextArea = ce("div");
theTextArea.style.width = sizeX + 10 + 'px';
theTextArea.style.height = sizeY + 5 + 'px';
theTextArea.style.zIndex = "998";
theTextArea.style.border = "solid 2px";
theTextArea.style.borderColor = "rgba(0,255,255,1.0)";
theTextArea.style.background = "rgb(0,0,0)";
theTextArea.style.fontFamily = "arial";
theTextArea.style.fontWeight = "normal";
theTextArea.style.fontSize = "medium";
theTextArea.style.color = "rgb(170, 170, 170";
theTextArea.style.textAlign = "center";
theTextArea.style.overflowY = "scroll";
theTextArea.style.resize = "none";
theTextArea.setAttribute("readonly", "true");
//-//
let goToButton = ce("button");
goToButton.className = "ourButton";
goToButton.textContent = "GoTo";
goToButton.onclick = function()
{
structuresGoTo(whichArray[i].id);
};
theTextArea.append(goToButton);
//-//
theTextArea.append(ce("br"));
//-//
let nameText = ce("div");
nameText.innerText = "Name" + '\n' + whichArray[i].name + "\n";
theTextArea.append(nameText);
//-//
let idText = ce("div");
idText.textContent = "ID: " + whichArray[i].id;
theTextArea.append(idText);
//-//
let posXText = ce("div");
posXText.textContent = "X Pos " + whichArray[i].posX;
theTextArea.append(posXText);
//-//
let posYText = ce("div");
posYText.textContent = "Y Pos " + whichArray[i].posY;
theTextArea.append(posYText);
//-//
let sizeXText = ce("div");
sizeXText.textContent = "X Size " + whichArray[i].sizeX;
theTextArea.append(sizeXText);
//-//
let sizeYText = ce("div");
sizeYText.textContent = "Y Size " + whichArray[i].sizeY;
theTextArea.append(sizeYText);
mainDiv.append(theTextArea);
}
}
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// updateStructures.js
// update the structuresArray
function updateStructures(idName)
{
// strips text, leaves only digits
// to find the array index number
let theNumberOnly = idName.replace(/\D/g,'') - 1;
structureAttributes =
{
name: structuresArray[theNumberOnly].name,
id: idName,
posX: get(idName, 'pos').x,
posY: get(idName, 'pos').y,
sizeX: get(idName, 'size').x,
sizeY: get(idName, 'size').y,
colorFill: get(idName, 'background-color'),
colorText: get(idName, 'color'),
opacity: get(idName, 'opacity'),
texture: get(idName, 'background-image')
};
structuresArray.splice(theNumberOnly,1,structureAttributes);
showStructureData();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// copyIt.js
function copyIt(whichId)
{
let copyText = ge(whichId);
copyText.select();
copyText.setSelectionRange(0, 1000000);
document.execCommand("copy");
}
// We can copy the Text Area easily
// by clicking the Copy button
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// listens.js
// Add a listen used currently to
// start Structure mode
function addListen(theType, theListen)
{
window.addEventListener(theType, theListen);
}
// Remove a listen used currently to end Structure mode
function removeListen(theType, theListen)
{
window.removeEventListener(theType, theListen);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// preventContextMenu.js
function preventContextMenu()
{
document.addEventListener('contextmenu', function(event)
{
event.preventDefault();
});
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// printing.js
function printOnlyDiv(whichDiv)
{
audioPlay("sfx_blip_001", 1.0);
let mywindow = window.open('', 'PRINT', 'height = 800, width = 1000 top = 50, left = 100');
mywindow.document.write('<style>img{width: 75%;</style></head><body>');
mywindow.document.write('<h4>' + document.title + '</h4>');
mywindow.document.write(ge(whichDiv).innerHTML);
mywindow.print();
// mywindow.close();
}
function printTextArea(whichTextArea)
{
audioPlay("sfx_blip_001", 1.0);
let mywindow = window.open('', 'PRINT', 'height = 800, width = 1000 top = 50, left = 100');
mywindow.document.write('<style>img{width: 75%;</style></head><body>');
mywindow.document.write('<h4>' + document.title + '</h4>');
mywindow.document.write(ge(whichTextArea).value);
mywindow.print();
// mywindow.close();
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// removeElement.js
function removeElement(whichElement)
{
if (ge(whichElement))
{
ge(whichElement).remove();
}
}
// removes any element on the page,
// that has the id that was specified
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// whenLoaded.js
// When the Page Loads
function whenLoaded()
{
// width, height
makeBackground(250000, 250000);
// sectionTitle
makeSectionTitle();
makeDedication();
makeEngineTitle();
loadSounds(soundsArray);
loadSounds(songsArray);
// player
makePlayer();
playerLoadData(activePlayer);
movePlayer(activePlayer, -1, 0);
makeInfoDiv();
makeInfoDivPlayer();
// right click menu
preventContextMenu();
// structures
structuresCreateFromFile();
makeStructureTextArea();
makePlayerTextArea();
// show structuresArray data in textarea
setTimeout(function()
{
showStructureData();
}, 1000);
// show playerArray data in textarea
setTimeout(function()
{
showPlayerData();
}, 1000);
menuPlayer();
sortData();
containerLanguage();
makeLogo();
makeBottomToolbar(bottomToolbarArray);
// makeVideo("ewDcgG8Q288");
// listen for keydown presses
window.addEventListener("keydown", theControls, false);
// listen for keyup presses
window.addEventListener("keyup", theControls, false);
gameLoop(activePlayer);
}
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// booksPdf.js
let booksPdf =
[
{ title:`How to Combine JS Files into One`, date:`07/26/2021 12:00 AM`, url:`_ tutorials/How to Combine JS Files into One.pdf`, tag:`pdf`, description:`programming`},
{ title:`How to Publish Our Game Engine`, date:`05/12/2020 12:00 AM`, url:`_ tutorials/How to Publish Our Game Engine.pdf`, tag:`pdf`, description:`programming`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// booksWebsite.js
let booksWebsite =
[
{ title:"JavaScript for Humans", date:"07/26/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/javascript-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"JavaScript Bookmarklet Advanced Programming", date:"05/12/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/javascript-bookmarklet-advanced-programming-book.html", tag:"pdf", description:"programming"},
{ title:"Node.js for Humans", date:"06/09/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/nodejs-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"Python Language for Humans", date:"02/08/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/python-language-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"Python Scripting in Blender for Humans", date:"06/12/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/python-scripting-in-blender-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"LibreOffice Scripting for Humans", date:"07/31/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/libreoffice-scripting-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"C# Language for Humans Using Visual Studio", date:"03/06/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/c-sharp-language-for-humans-using-visual-studio-book.html", tag:"pdf", description:"programming"},
{ title:"Blend4Web for Humans", date:"06/10/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/blend4web-for-humans-book.html", tag:"pdf", description:"programming"},
{ title:"Papercliptronics", date:"01/08/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/papercliptronics-electronic-circuits-book.html", tag:"pdf", description:"electronics"},
{ title:"Mind Simulation Science", date:"09/26/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/mind-simulation-science-book.html", tag:"pdf", description:"science"},
{ title:"Human Safety Manual", date:"06/12/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/human-safety-manual-book.html", tag:"pdf", description:"safety"},
{ title:"Real Logic", date:"09/21/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/real-logic-book.html", tag:"pdf", description:"logic"},
{ title:"The Book of Freewill", date:"04/19/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/the-book-of-freewill-book.html", tag:"pdf", description:"safety"},
{ title:"Topalian JavaScript Tools Creator, Version 3", date:"06/04/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/topalian-javascript-tools-creator-book.html", tag:"pdf", description:"programming"},
{ title:"Topalian Game Engine Data Navigator - Version 24", date:"11/02/2021 12:00 AM", url:"https://collegeofscripting.weebly.com/topalian-game-engine-data-navigator-024.html", tag:"pdf", description:"programming"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// boxingVideos.js
let boxingVideos =
[
{ title:`Tyson Fury Glove Conspiracy Steps Back Strangely HD with Super Slow Motion & Zoom`, date:`02/27/2020 12:00 AM`, url:`https://www.youtube.com/embed/DutXMLj7zkQ`, tag:`boxing`, description:`furyWilder1`},
{ title:`Tyson Fury Glove Conspiracy or Fact? You decide.`, date:`02/28/2020 12:00 AM`, url:`https://www.youtube.com/embed/OFC3U2_dqno`, tag:`boxing`, description:`furyWilder1`},
{ title:`Tyson Fury Glove Conspiracy in Slow Motion and Zoomed in Dragging Against His Body`, date:`02/28/2020 12:00 AM`, url:`https://www.youtube.com/embed/eHMeq04iV7c`, tag:`boxing`, description:`furyWilder1`},
{ title:`Tyson Fury Glove Conspiracy CAMERA WAS DISCONNECTED`, date:`03/16/2020 12:00 AM`, url:`https://www.youtube.com/embed/bYUdaPubdj4`, tag:`boxing`, description:`furyWilder1`},
{ title:`Proof that Fury Cheated #1 - 2nd FIGHT - BEHIND THE HEAD`, date:`03/10/2020 12:00 AM`, url:`https://www.youtube.com/embed/n_9y36vcKeU`, tag:`boxing`, description:`furyWilder2`},
{ title:`Proof that Fury Cheated #2 - 2nd FIGHT - HEAD INTO OPPONENT`, date:`03/10/2020 12:00 AM`, url:`https://www.youtube.com/embed/pqh5iTWYQZI`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury HOLDING WHILE HITTING`, date:`03/11/2020 12:00 AM`, url:`https://www.youtube.com/embed/vJ7x7Iq7b0U`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury BEHIND THE HEAD 2`, date:`03/11/2020 12:00 AM`, url:`https://www.youtube.com/embed/G5A6zvTt3Uw`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury BEHIND THE HEAD 3, HOLDING WHILE HITTING 2`, date:`03/12/2020 12:00 AM`, url:`https://www.youtube.com/embed/pvph9__goiI`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury Cheated with 40+ Behind the Head Hits on Wilder`, date:`03/14/2020 12:00 AM`, url:`https://www.youtube.com/embed/W2kQHmK9BMc`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury Cheating Glove Conspiracy - Flappy Glove? FIGHT TWO`, date:`03/15/2020 12:00 AM`, url:`https://www.youtube.com/embed/b-UyfPg4pKg`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury CAUGHT Cheating = CONCLUSIVE VIDEO EVIDENCE`, date:`03/22/2020 12:00 AM`, url:`https://www.youtube.com/embed/3ftyfqVg24g`, tag:`boxing`, description:`furyWilder2`},
{ title:`Tyson Fury Glove Controversy`, date:`03/25/2020 12:00 AM`, url:`https://www.youtube.com/embed/wxM6Yvvs0HU`, tag:`boxing`, description:`furyWilder2`},
{ title:`Fury Cheated and the Ref Watched`, date:`03/28/2020 12:00 AM`, url:`https://www.youtube.com/embed/0vq2fFpYbR0`, tag:`boxing`, description:`furyWilder2`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// collegeBooks.js
let collegeBooks =
[
{ name:"Papercliptronics", image:"https://m.media-amazon.com/images/I/51cdZyRYXVL._SX260_.jpg", url:"https://www.amazon.com/Papercliptronics-Homemade-Electronic-Circuits-Paperclips/dp/1658209303/ref=sr_1_2?keywords=papercliptronics&qid=1582048776&sr=8-2"},
{ name:"LSL Book", image:"https://images-na.ssl-images-amazon.com/images/I/41YE35agtNL._SY498_BO1,204,203,200_.jpg", url:"https://www.amazon.com/LSL-Scripting-Book-Computer-Programming/dp/B084DG7ZFD/ref=sr_1_fkmr0_1?keywords=lsl+scripting&qid=1582049598&sr=8-1-fkmr0"},
{ name:"Topalian Game Engine Data Navigator", image:"https://m.media-amazon.com/images/I/41kybfYNoYL.jpg", url:"https://www.amazon.com/dp/B08JK7D67L"},
{ name:"JavaScript Bookmarklet Advanced Programming", image:"https://images-na.ssl-images-amazon.com/images/I/51lot64KYcL._SX384_BO1,204,203,200_.jpg", url:"https://www.amazon.com/JavaScript-Bookmarklet-Advanced-Programming-Interfaces/dp/B088JFN2BL"},
{ name:"JavaScript Video Investigator", image:"https://m.media-amazon.com/images/I/51EeQ4sNVnL._SY346_.jpg", url:"https://www.amazon.com/CREATING-JAVASCRIPT-APPLICATIONS-Video-Investigator/dp/B088N5G5GV"},
{ name:"JavaScript Missing Persons Database", image:"https://m.media-amazon.com/images/I/519eyD-37lL.jpg", url:"https://www.amazon.com/CREATING-JAVASCRIPT-APPLICATIONS-Missing-Database/dp/B088N4XYDY"},
{ name:"True Artificial Intelligence", image:"https://m.media-amazon.com/images/I/414nBuW6oaL._SY346_.jpg", url:"https://www.amazon.com/dp/B08975HFJK"},
{ name:"Real Logic", image:"https://m.media-amazon.com/images/I/414T-Y2usWL.jpg", url:"https://www.amazon.com/Real-Logic-Evidence-Foundation-Reason-ebook/dp/B08JQPZT6H/"},
{ name:"Mind Simulation Science", image:"https://m.media-amazon.com/images/I/41cfXtacGvL.jpg", url:"https://www.amazon.com/Mind-Simulation-Science-Foundation-Intelligence-ebook/dp/B08K7L9F3Q"},
{ name:"Human Safety Manual", image:"https://m.media-amazon.com/images/I/51RzxUVo7FL.jpg", url:"https://www.amazon.com/Human-Safety-Manual-Christopher-Topalian-ebook/dp/B08B515RPL"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// collegeLinks.js
let collegeLinks =
[
{ name:"Javascript", url:"https://collegeofscripting.weebly.com/javascript.html", },
{ name:"JavaScript Game Design", url:"https://collegeofscripting.weebly.com/javascript-game-design.html", },
{ name:"JavaScript Bookmarklets", url:"https://collegeofscripting.weebly.com/bookmarklets.html", },
{ name:"LSL Scripting Book", url:"https://collegeofscripting.weebly.com/lsl-scripting-book.html", },
{ name:"Logical Boolean System of A.I.", url:"https://collegeofscripting.weebly.com/logic-boolean-system.html", },
{ name:"Health Science", url:"https://collegeofscripting.weebly.com/health-science.html", },
{ name:"Solar Science", url:"https://collegeofscripting.weebly.com/solar-science.html", },
{ name:"Flat Earth Science", url:"https://collegeofscripting.weebly.com/flat-earth-science.html", },
{ name:"Why NO Video of Mars on Mars?", url:"https://collegeofscripting.weebly.com/mars---why-was-there-no-photographic-video-of-mars-on-mars-until-2021.html", },
{ name:"Computing", url:"https://collegeofscripting.weebly.com/computing.html", },
{ name:"Papercliptronics", url:"https://papercliptronics.weebly.com/", },
{ name:"Video Investigator", url:"https://javascriptbook.weebly.com/video-investigator---video-annotation-software.html", }
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// collegeVideos.js
let collegeVideos =
[
{ title:`Not Freezing Detector Circuit on a Breadboard`, date:`09/25/2020 12:00 AM`, url:`https://www.youtube.com/embed/wbN4MG-J_R4`, tag:`youtubeVideo`, description:`breadboard`},
{ title:`Heat Detector Circuit on a Breadboard`, date:`09/26/2020 12:00 AM`, url:`https://www.youtube.com/embed/kQ_mVFj1u-Y`, tag:`youtubeVideo`, description:`breadboard`},
{ title:`Evidence Viewer for Investigators`, date:`09/15/2020 12:00 AM`, url:`https://www.youtube.com/embed/jMBKRbG_bXw`, tag:`youtubeVideo`, description:`javascript`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian//computerSciencePdf.js
let computerSciencePdf =
[
{ title:`C Computer Science`, url:`src/media/pdf/C Computer Science by Christopher Topalian.pdf`, tag:`pdf`, description:`programming`},
{ title:`C++ Computer Science`, url:`src/media/pdf/C++ Computer Science by Christopher Topalian.pdf`, tag:`pdf`, description:`programming`},
{ title:`JavaScript Code Volume 1`, url:`src/media/pdf/JavaScript Code Volume 1 by Christopher Topalian.pdf`, tag:`pdf`, description:`programming`},
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
// evidence.js
let evidence =
[
{ title:`In fiery speech to Congress, Netanyahu vows 'total victory' in Gaza and denounces US protesters`, date:`2024/07/24 9:29 PM`, url:`https://apnews.com/article/netanyahu-congress-gaza-hamas-israel-6ea5daf3cd1988b0ad6e874bd450f9bf`, info:`Natanyahu gives speech to Congress`, image:`https://assets.apnews.com/fa/ba/9258a7114f5ba5c7202aaa1bdd66/aplogo.svg`, tag:`fact`, description:`ww3`},
{ title:`Bill Clinton visited Jeffrey Epstein's private island, unsealed court documents suggest`, date:`07/31/2020 12:00 AM`, url:`https://www.foxnews.com/us/bill-clinton-visited-jeffrey-epsteins-private-island-unsealed-court-documents-suggest`, info:`Witness stated that Bill Clinton Visited Jeffrey Epsteins island`, image:`https://pbs.twimg.com/media/EeN7Qo5X0AAhLyJ?format=png&name=900x900`, tag:`fact`, description:`epstein`},
{ title:`Oregon State Police end defense of federal courthouse in Portland, DHS reacts`, date:`08/14/2020 12:00 AM`, url:`https://www.youtube.com/embed/xtRJhUES30c`, info:`youtubeVideo`, image:`https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/oregonstatepolice_orig.png`, tag:`fact`, description:`riots`},
{ title:`Portland protesters will no longer be prosecuted for non-violent charges`, date:`08/12/2020 12:00 AM`, url:`https://www.youtube.com/embed/DplR0oDWhdY`, info:`youtubeVideo`, image:`https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/portlandprotestersdaprosecution_orig.png`, tag:`fact`, description:`riots`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// javascriptLanguage.js
let javascriptLanguage =
[
{ category:`array`, name:`at()`, description:` single quote ' and double quote " Returns the indexed element from the array`, syntax:`array.at(index)`, useage:`let ourArray = ourArray.at(index);`, url:`https://www.w3schools.com/jsref/jsref_array_at.asp`, url2:`https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at`, type:`returns the element of the given position (index) in the array.`, tag:`function`, language:`JavaScript`},
{ category:"array", name:"concat()", description:"Joins two or more arrays without changing the existing arrays, but instead returns a new array.", syntax:"array1.concat(array2, array3);", useage:"var combinedArray = theNotes.concat(theNews, evidence);", url:"https://www.w3schools.com/jsref/jsref_concat_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat", type:"returns a new array", tag:"function", language:"JavaScript"},
{ category:"array", name:"copyWithin()", description:"Copies a specific part of an array to a different location in the array and then returns that array without modifying its length.", syntax:"array.copyWithin(target, start, end);", useage:"theNotes.copyWithin(2, 0, 2);", url:"https://www.w3schools.com/jsref/jsref_copywithin.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin", type:"returns the modified array", tag:"function", language:"JavaScript"},
{ category:"array", name:"entries()", description:"Create an Array Iterator object and create a loop that iterates each key/value pair", syntax:"array.entries()", useage:"theNotes.entries();", url:"https://www.w3schools.com/jsref/jsref_entries.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries", type:"returns an Array Iterator object", tag:"function", language:"JavaScript"},
{ category:"array", name:"every()", description:"Checks if all elements in an array pass a test. Returns true if every element in the array passes the test. ourArray.every(functionToUse);", syntax:"array.every(function(currentValue, index, arr), thisValue)", useage:"theNotes.every(ourFunction)", url:"https://www.w3schools.com/jsref/jsref_every.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every", type:"returns boolean true or false", tag:"function", language:"JavaScript"},
{ category:"array", name:"fill()", description:"Fills the specified elements in an array with a static value.", syntax:"array.fill(value, start, end)", useage:"theNotes.fill('John');", url:"https://www.w3schools.com/jsref/jsref_fill.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill", type:"overwrites the original array", tag:"function", language:"JavaScript"},
{ category:"array", name:"filter()", description:"Creates an array filled with all array elements that pass a test.", syntax:"array.filter(function(currentValue, index, arr), thisValue)", useage:"theNotes.filter(ourFunction)", url:"https://www.w3schools.com/jsref/jsref_filter.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter", type:"returns a new array of all elements that passed the test", tag:"function", language:"JavaScript"},
{ category:"array", name:"find()", description:"Returns the value of the first element in an array that pass a test.", syntax:"array.find(function(currentValue, index, arr),thisValue)", useage:"theNotes.find(ourFunction)", url:"https://www.w3schools.com/jsref/jsref_find.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find", type:"Returns the array element value if any of the elements in the array pass the test, otherwise it returns undefined", tag:"function", language:"JavaScript"},
{ category:"array", name:"findIndex()", description:"Returns the index of the first element in an array that pass a test.", syntax:"array.findIndex(function(currentValue, index, arr), thisValue)", useage:"ages.findIndex(ourFunction)", url:"https://www.w3schools.com/jsref/jsref_findindex.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex", type:"Returns the array element index if any of the elements in the array pass the test, otherwise it returns -1", tag:"function", language:"JavaScript"},
{ category:"array", name:"flat()", description:"creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.", syntax:"array.flat(depth)", useage:"ourArray.flat(2);", url:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat", type:"A new array with the sub-array elements concatenated into it.", tag:"function", language:"JavaScript"},
{ category:"array", name:"flatMap()", description:"creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.", syntax:"array.flatMap(function(currentValue, index, arr), thisValue)", useage:"In Progress", url:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap", type:"returns a new array formed by applying a given callback function to each element of the array, and then flattening the result by one level.", tag:"function", language:"JavaScript"},
{ category:"array", name:"forEach()", description:"Executes a function once for each array element.", syntax:"array.forEach(function(currentValue, index, arr), thisValue)", useage:"numbers.forEach(ourFunction)", url:"https://www.w3schools.com/jsref/jsref_foreach.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach", type:"undefined", tag:"function", language:"JavaScript"},
{ category:"array", name:"from()", description:"Create an Array from a String. Returns an Array object from any object with a length property or an iterable object. Creates a new, shallow-copied Array instance from an array-like or iterable object.", syntax:"Array.from(object, mapFunction, thisValue)", useage:"ourArray.from('ABCDEFG')", url:"https://www.w3schools.com/jsref/jsref_from.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from", type:"An Array object", tag:"function", language:"JavaScript"},
{ category:"array", name:"includes()", description:"Returns true if the array contains a specified element. If NOT, then returns false.", syntax:"array.includes(element, start)", useage:"ourArray.includes('John', 2);", url:"https://www.w3schools.com/jsref/jsref_includes_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes", type:"A Boolean", tag:"function", language:"JavaScript"},
{ category:"array", name:"indexOf()", description:"Searches the array for the specified item and then returns the position.", syntax:"array.indexOf(item, start)", useage:"ourArray.indexOf('John', 2)", url:"https://www.w3schools.com/jsref/jsref_indexof_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf", type:"A Number, representing the position of the specified item, otherwise -1", tag:"function", language:"JavaScript"},
{ category:"array", name:"isArray()", description:"Finds out if an object is an array.", syntax:"Array.isArray(obj)", useage:"Array.isArray(ourArray)", url:"https://www.w3schools.com/jsref/jsref_isarray.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray", type:"A Boolean. Returns true if the object is an array, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"array", name:"join()", description:"Joins all elements of the array, to String.", syntax:"array.join(separator)", useage:"let text = ourArray.join(' and ');", url:"https://www.w3schools.com/jsref/jsref_join.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/joihttps://developer.mozilla", type:"A String, representing the array values, separated by the specified separator", tag:"function", language:"JavaScript"},
{ category:"array", name:"keys()", description:"Returns a Array Iteration Object, which shows the keys of the original array", syntax:"array.keys()", useage:"const keys = ourArray.keys();", url:"https://www.w3schools.com/jsref/jsref_keys.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/keys", type:"An Array Iterator object", tag:"function", language:"JavaScript"},
{ category:"array", name:"length", description:"Returns amount of elements in an array. It can set the amount too.", syntax:"array.length and array.length = number", useage:"let length = ourArray.length;", url:"https://www.w3schools.com/jsref/jsref_length_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length", type:"A Number, representing the number of elements in the array object", tag:"function", language:"JavaScript"},
{ category:"array", name:"lastIndexOf()", description:"Searches the array for an element and Returns the position. It starts searching at the end of the array.", syntax:"array.lastIndexOf(item, start)", useage:"let index = ourArray.lastIndexOf('Pie');", url:"https://www.w3schools.com/jsref/jsref_lastindexof_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf", type:"A Number, representing the position of the specified item, otherwise -1", tag:"function", language:"JavaScript"},
{ category:"array", name:"map()", description:"Creates a new array and runs a function on every array element", syntax:"array.map(function(currentValue, index, arr), thisValue)", useage:"const newArr = numbers.map(myFunction)", url:"https://www.w3schools.com/jsref/jsref_map.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map", type:"An Array containing the results of calling the provided function for each element in the original array.", tag:"function", language:"JavaScript"},
{ category:"array", name:"pop()", description:"Removes the last element of the array. Returns that removed element.", syntax:"array.pop()", useage:"ourArray.pop();", url:"https://www.w3schools.com/jsref/jsref_pop.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop", type:"The removed array item. The item can be a string, a number, an array, an object, or any other type allowed in an array.", tag:"function", language:"JavaScript"},
{ category:"array", name:"prototype", description:"Add properties and methods to an Array object.", syntax:"Array.prototype.name = value", useage:"ourArray.prototype.changeIt = function() {", url:"https://www.w3schools.com/jsref/jsref_prototype_array.asp", url2:"https://collegeofscripting.weebly.com/", type:"The prototype constructor allows you to add new properties and methods to Arrays.", tag:"function", language:"JavaScript"},
{ category:"array", name:"push()", description:"Adds new elements to the end of the array. Returns the new length.", syntax:"array.push(item1, item2, ..., itemX)", useage:"ourArray.push('Kiwi');", url:"https://www.w3schools.com/jsref/jsref_push.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push", type:"A Number, representing the new length of the array", tag:"function", language:"JavaScript"},
{ category:"array", name:"reduce()", description:"Reduces the values of an array to one value. It works from left to right.", syntax:"array.reduce(function(total, currentValue, currentIndex, arr), initialValue)", useage:"numbers.reduce(myFunc);", url:"https://www.w3schools.com/jsref/jsref_reduce.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce", type:"Returns the accumulated result from the last call of the callback function", tag:"function", language:"JavaScript"},
{ category:"array", name:"reduceRight()", description:"Reduces the values of an array to one value. It works from right to left.", syntax:"array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue)", useage:"numbers.reduceRight(myFunc);", url:"https://www.w3schools.com/jsref/jsref_reduceright.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight", type:"Returns the accumulated result from the last call of the callback function", tag:"function", language:"JavaScript"},
{ category:"array", name:"reverse()", description:"Reverses the array order. The Elements of the array are sorted in reverse order.", syntax:"array.reverse()", useage:"ourArray.reverse();", url:"https://www.w3schools.com/jsref/jsref_reverse.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse", type:"An Array, representing the array after it has been reversed", tag:"function", language:"JavaScript"},
{ category:"array", name:"shift()", description:"Removes the first element in an array. Returns that removed element.", syntax:"array.shift()", useage:"ourArray.shift();", url:"https://www.w3schools.com/jsref/jsref_shift.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift", type:"The removed array item. The item can be a string, a number, an array, an object, or any other type allowed in an array.", tag:"function", language:"JavaScript"},
{ category:"array", name:"slice()", description:"Selects a part of the array. Returns a new array.", syntax:"array.slice(start, end)", useage:"const myBest = fruits.slice(-3, -1);", url:"https://www.w3schools.com/jsref/jsref_slice_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice", type:"A new Array, containing the selected elements", tag:"function", language:"JavaScript"},
{ category:"array", name:"some()", description:"Finds out if any element in an array passes a test", syntax:"array.some(function(currentValue, index, arr), thisValue)", useage:"ourArray.some(testThem);", url:"https://www.w3schools.com/jsref/jsref_some.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some", type:"A Boolean. Returns true if any of the elements in the array pass the test, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"array", name:"sort()", description:"Sort the elements of the array", syntax:"array.sort(compareFunction)", useage:"ourArray.sort();", url:"https://www.w3schools.com/jsref/jsref_sort.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort", type:"The Array object, with the items sorted", tag:"function", language:"JavaScript"},
{ category:"array", name:"splice()", description:"Adds or Removes elements from the array", syntax:"array.splice(index, howmany, item1, ....., itemX)", useage:"ourArray.splice(1, 4, 'Cat', 'Bird');", url:"https://www.w3schools.com/jsref/jsref_splice.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice", type:"An empty Array, or an Array containing removed items (if any).", tag:"function", language:"JavaScript"},
{ category:"array", name:"toString()", description:"Converts the array to a string. Returns the result.", syntax:"array.toString()", useage:"let text = ourArray.toString();", url:"https://www.w3schools.com/jsref/jsref_tostring_array.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString", type:"A String, representing the values of the array, separated by a comma", tag:"function", language:"JavaScript"},
{ category:"array", name:"unshift()", description:"Add the new element to the beginning of the array. Returns the new length.", syntax:"array.unshift(item1, item2, ..., itemX)", useage:"ourArray.unshift('Cat', 'Bird');", url:"https://www.w3schools.com/jsref/jsref_unshift.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift", type:"A Number, representing the new length of the array", tag:"function", language:"JavaScript"},
{ category:"array", name:"valueOf()", description:"Returns the primitive value of the array", syntax:"array.valueOf()", useage:"const theArray = ourArray.valueOf();", url:"https://www.w3schools.com/jsref/jsref_valueof_array.asp", url2:"https://collegeofscripting.weebly.com/", type:"An Array. The valueOf() method returns itself", tag:"function", language:"JavaScript"},
{ category:"math", name:"abs()", description:"Returns the absolute value of the number", syntax:"Math.abs(x)", useage:"Math.abs(-2.37)", url:"https://www.w3schools.com/jsref/jsref_abs.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/abs", type:"A Number, representing the absolute value of the specified number, or NaN if the value is not a number, or 0 if the value is null", tag:"function", language:"JavaScript"},
{ category:"math", name:"acos()", description:"Returns the arccosine of X in radians", syntax:"Math.acos(x)", useage:"Math.acos(0)", url:"https://www.w3schools.com/jsref/jsref_acos.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acos", type:"A Number, from 0 to PI, or NaN if the value is outside the range of -1 to 1", tag:"function", language:"JavaScript"},
{ category:"math", name:"acosh()", description:"Returns the hyperbolic arccosine of X", syntax:"Math.acosh(x)", useage:"Math.acosh(1)", url:"https://www.w3schools.com/jsref/jsref_acosh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh", type:"A Number, or NaN if the parameter is less than 1", tag:"function", language:"JavaScript"},
{ category:"math", name:"asin()", description:"Returns the arcsine of X in radians", syntax:"Math.asin(x)", useage:"Math.asin(0)", url:"https://www.w3schools.com/jsref/jsref_asin.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asin", type:"A Number, from -PI/2 to PI/2, or NaN if the value is outside the range of -1 to 1", tag:"function", language:"JavaScript"},
{ category:"math", name:"asinh()", description:"Returns the hyperbolic arcsine of X", syntax:"Math.asinh(x)", useage:"Math.asinh(0)", url:"https://www.w3schools.com/jsref/jsref_asinh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh", type:"A Number, from -PI/2 to PI/2, or NaN if the value is empty", tag:"function", language:"JavaScript"},
{ category:"math", name:"atan()", description:"Returns the arctangent of x as a numeric value between -PI/2 and PI/2 radians", syntax:"Math.atan(x)", useage:"Math.atan(2)", url:"https://www.w3schools.com/jsref/jsref_atan.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan", type:"A Number, from PI to -PI, or NaN if the value(s) are empty", tag:"function", language:"JavaScript"},
{ category:"math", name:"atan2()", description:"Returns the arctangent of the quotient of its arguments", syntax:"Math.atan2(y, x)", useage:"Math.atan2(8, 4);", url:"https://www.w3schools.com/jsref/jsref_atan2.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2", type:"A Number, or NaN, or Infinity, or -Infinity", tag:"function", language:"JavaScript"},
{ category:"math", name:"atanh()", description:"Returns the hyperbolic arctangent of X", syntax:"Math.atanh(x)", useage:"Math.atanh(0.5)", url:"https://www.w3schools.com/jsref/jsref_atanh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh", type:"A Number, or NaN, or Infinity, or -Infinity", tag:"function", language:"JavaScript"},
{ category:"math", name:"cbrt()", description:"Returns the cubic root of X", syntax:"Math.cbrt(x)", useage:"Math.cbrt(125)", url:"https://www.w3schools.com/jsref/jsref_cbrt.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cbrt", type:"A Number", tag:"function", language:"JavaScript"},
{ category:"math", name:"ceil()", description:"Returns x, rounded upwards to the nearest integer", syntax:"Math.ceil(x)", useage:"Math.ceil(1.4)", url:"https://www.w3schools.com/jsref/jsref_ceil.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil", type:"A Number, representing the nearest integer when rounding upwards", tag:"function", language:"JavaScript"},
{ category:"math", name:"clz32()", description:"Returns the number of leading zeros in a 32-bit binary number", syntax:"Math.clz32(x)", useage:"Math.clz32(1)", url:"https://www.w3schools.com/jsref/jsref_clz32.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32", type:"A Number, representing the nearest integer when rounding upwards", tag:"function", language:"JavaScript"},
{ category:"math", name:"cos()", description:"Returns the cosine of X in radians", syntax:"Math.cos(x)", useage:"Math.cos(3.14)", url:"https://www.w3schools.com/jsref/jsref_cos.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cos", type:"Number of leading zeros in the 32-bit binary representation of a number. If the number is 0, it returns 32 (all bits are 0).", tag:"function", language:"JavaScript"},
{ category:"math", name:"cosh()", description:"Returns the hyperbolic cosine of x", syntax:"Math.cosh(x)", useage:"Math.cosh(x)", url:"https://www.w3schools.com/jsref/jsref_cosh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh", type:"A Number", tag:"function", language:"JavaScript"},
{ category:"math", name:"E", description:"Returns Euler's number (approx. 2.718)", syntax:"Math.E", useage:"Math.E", url:"https://www.w3schools.com/jsref/jsref_e.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/E", type:"A Number, representing Euler's number", tag:"function", language:"JavaScript"},
{ category:"math", name:"exp()", description:"Returns the exponential value of a number", syntax:"Math.exp(x)", useage:"Math.exp(5)", url:"https://www.w3schools.com/jsref/jsref_exp.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/exp", type:"A number representing e^x, where e is Euler's number and x is the argument.", tag:"function", language:"JavaScript"},
{ category:"math", name:"expm1", description:"returns the value of Ex minus 1, where E is Euler's number (approx 2.7183) and x is the number passed to it. This function is more accurate than using Math.exp() and subtracting 1.", syntax:"Math.expm1(x)", useage:"Math.expm1(7);", url:"https://www.w3schools.com/jsref/jsref_expm1.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1", type:"Number Ex minus 1", tag:"function", language:"JavaScript"},
{ category:"math", name:"floor()", description:"Returns x, rounded downwards to the nearest integer", syntax:"Math.floor(x)", useage:"Math.floor(5.7)", url:"https://www.w3schools.com/jsref/jsref_floor.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor", type:"A Number, representing the nearest integer when rounding downwards", tag:"function", language:"JavaScript"},
{ category:"math", name:"fround", description:"Returns the nearest 32-bit single precision float representation of a number.", syntax:"Math.fround(x)", useage:"Math.fround(5.70);", url:"https://www.w3schools.com/jsref/jsref_fround.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround", type:"Number The nearest 32-bit single precision float representation of the number.", tag:"function", language:"JavaScript"},
{ category:"math", name:"LN2", description:"Returns the natural logarithm of 2 (approx. 0.693)", syntax:"Math.LN2", useage:"Math.LN2", url:"https://www.w3schools.com/jsref/jsref_ln2.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2", type:"A Number, representing the natural logarithm of 2", tag:"function", language:"JavaScript"},
{ category:"math", name:"LN10", description:"Returns the natural logarithm of 10 (approx. 2.302)", syntax:"Math.LN10", useage:"Math.LN10", url:"https://www.w3schools.com/jsref/jsref_ln10.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10", type:"A Number, representing the natural logarithm of 10", tag:"function", language:"JavaScript"},
{ category:"math", name:"log()", description:"Returns the natural logarithm of a number", syntax:"Math.log(x)", useage:"Math.log(2)", url:"https://www.w3schools.com/jsref/jsref_log.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log", type:"A Number, representing the natural logarithm of a specified number If the number negative, NaN is returned If the number is 0, -Infinity is returned", tag:"function", language:"JavaScript"},
{ category:"math", name:"log10", description:"Returns the base-10 logarithm of a number.", syntax:"Math.log10(x)", useage:"Math.log10(5.7173);", url:"https://www.w3schools.com/jsref/jsref_log10.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log10", type:"NumberThe base-10 logarithm of the number.NaN if the number is negative.-Infinity if the number is 0.", tag:"function", language:"JavaScript"},
{ category:"math", name:"log1p", description:"Returns the natural logarithm (base E) of 1 + a number.", syntax:"Math.log1p(x)", useage:"Math.log1p(5.7173);", url:"https://www.w3schools.com/jsref/jsref_log1p.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p", type:"NumberThe natural logarithm (base E) of 1 + the number.NaN if the number is less than -1.-Infinity if the number is -1.", tag:"function", language:"JavaScript"},
{ category:"math", name:"log2", description:"Returns the base-2 logarithm of a number.", syntax:"Math.log2(5.7173);", url:"https://www.w3schools.com/jsref/jsref_log2.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2", type:"NumberThe base-2 logarithm of the number.NaN if the number is less than -1.-Infinity if the number is -1.", tag:"function", language:"JavaScript"},
{ category:"math", name:"LOG2E", description:"Returns the base-2 logarithm of E (approx. 1.442)", syntax:"Math.LOG2E", useage:"Math.LOG2E", url:"https://www.w3schools.com/jsref/jsref_log2e.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E", type:"A Number, representing the base-2 logarithm of E", tag:"function", language:"JavaScript"},
{ category:"math", name:"LOG10E", description:"Returns the base-10 logarithm of E (approx. 0.434)", syntax:"Math.LOG10E", useage:"Math.LOG10E", url:"https://www.w3schools.com/jsref/jsref_log10e.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E", type:"A Number, representing the base-10 logarithm of E", tag:"function", language:"JavaScript"},
{ category:"math", name:"max()", description:"Returns the number with the highest value", syntax:"Math.max(n1, n2,…)", useage:"Math.max(4, 7)", url:"https://www.w3schools.com/jsref/jsref_max.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max", type:"A Number, representing the highest number of the arguments, or -Infinity if no arguments are given, or NaN if one or more arguments are not numbers", tag:"function", language:"JavaScript"},
{ category:"math", name:"min()", description:"Returns the number with the lowest value", syntax:"Math.min(n1, n2,…)", useage:"Math.min(7, 30)", url:"https://www.w3schools.com/jsref/jsref_min.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/min", type:"A Number, representing the lowest number of the arguments, or Infinity if no arguments are given, or NaN if one or more arguments are not numbers", tag:"function", language:"JavaScript"},
{ category:"math", name:"PI", description:"Returns PI (approx. 3.14)", syntax:"Math.PI", useage:"Math.PI", url:"https://www.w3schools.com/jsref/jsref_pi.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/PI", type:"A Number, representing PI", tag:"function", language:"JavaScript"},
{ category:"math", name:"pow()", description:"Returns the value of x to the power of y", syntax:"Math.pow(x, y)", useage:"Math.pow", url:"https://www.w3schools.com/jsref/jsref_pow.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow", type:"A Number, representing the value of x to the power of y (x^y)", tag:"function", language:"JavaScript"},
{ category:"math", name:"random()", description:"Returns a random number between 0 and 1", syntax:"Math.random()", useage:"Math.random()", url:"https://www.w3schools.com/jsref/jsref_random.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random", type:"A Number, representing a number from 0 up to but not including 1", tag:"function", language:"JavaScript"},
{ category:"math", name:"round()", description:"Rounds x to the nearest integer", syntax:"Math.round(x)", useage:"Math.round(2.5)", url:"https://www.w3schools.com/jsref/jsref_round.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round", type:"A number, representing the nearest integer", tag:"function", language:"JavaScript"},
{ category:"math", name:"sign()", description:"Returns if a number is negative, positive or zero. If number is positive, it returns 1 If number is negative, it returns -1 If number is zero, it returns 0", syntax:"Math.sign(x)", useage:"Math.sign(7);", url:"https://www.w3schools.com/jsref/jsref_sign.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign", type:"A Number, representing the sign of the specified number: If the number is positive, it returns 1 If the number is negative, it returns -1 If the number is positive zero, it returns 0 If the number is negative zero, it returns -0 If the number is not a number, it returns NaN", tag:"function", language:"JavaScript"},
{ category:"math", name:"sin()", description:"Returns the sine of x (x is in radians)", syntax:"Math.sin(x)", useage:"Math.sin(3.14)", url:"https://www.w3schools.com/jsref/jsref_sin.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sin", type:"A Number, from -1 to 1, representing the sine of an angle, or NaN if the value is empty", tag:"function", language:"JavaScript"},
{ category:"math", name:"sinh", description:"Returns the hyperbolic sine of a number.", syntax:"Math.sinh(x)", useage:"Math.sinh(5);", url:"https://www.w3schools.com/jsref/jsref_sinh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sinh", type:"Number The hyperbolic sine of the number.NaN if the parameter is not numeric.", tag:"function", language:"JavaScript"},
{ category:"math", name:"sqrt()", description:"Returns the square root of x", syntax:"Math.sqrt(x)", useage:"Math.sqrt(7)", url:"https://www.w3schools.com/jsref/jsref_sqrt.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt", type:"A Number. If x is a negative number, NaN is returned", tag:"function", language:"JavaScript"},
{ category:"math", name:"SQRT1_2", description:"Returns the square root of 1/2 (approx. 0.707)", syntax:"Math.SQRT1_2", useage:"Math.SQRT1_2", url:"https://www.w3schools.com/jsref/jsref_sqrt1_2.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2", type:"A Number, representing the square root of ½", tag:"function", language:"JavaScript"},
{ category:"math", name:"SQRT2", description:"Returns the square root of 2 (approx. 1.414)", syntax:"Math.SQRT2", useage:"Math.SQRT2", url:"https://www.w3schools.com/jsref/jsref_sqrt2.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2", type:"A Number, representing the square root of 2", tag:"function", language:"JavaScript"},
{ category:"math", name:"tan()", description:"Returns the tangent of an angle", syntax:"Math.tan(x)", useage:"Math.tan(1)", url:"https://www.w3schools.com/jsref/jsref_tan.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tan", type:"A Number, representing the tangent of a number", tag:"function", language:"JavaScript"},
{ category:"math", name:"tanh()", description:"Returns the hyperbolic tangent of a number", syntax:"Math.tanh(x)", useage:"Math.tanh(1)", url:"https://www.w3schools.com/jsref/jsref_tanh.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh", type:"A Number", tag:"function", language:"JavaScript"},
{ category:"math", name:"trunc()", description:"Returns the integer part of a number (x)", syntax:"Math.trunc(x)", useage:"Math.trunc(8.76)", url:"https://www.w3schools.com/jsref/jsref_trunc.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc", type:"A Number", tag:"function", language:"JavaScript"},
{ category:"boolean", name:"constructor", description:"Returns the function that created JavaScript's Boolean prototype", syntax:"boolean.constructor", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_constructor_boolean.asp", url2:"https://collegeofscripting.weebly.com/", type:"function Boolean() { [native code] }", tag:"function", language:"JavaScript"},
{ category:"boolean", name:"prototype", description:"Add properties and methods to the Boolean prototype", syntax:"Boolean.prototype.name = value", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_prototype_boolean.asp", url2:"https://collegeofscripting.weebly.com/", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"boolean", name:"toString()", description:"Converts a boolean value to a string, and returns the result", syntax:"boolean.toString()", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_tostring_boolean.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toString", type:"A String, either 'true' or 'false'", tag:"function", language:"JavaScript"},
{ category:"boolean", name:"valueOf()", description:"Returns the primitive value of a boolean", syntax:"boolean.valueOf()", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_valueof_boolean.asp", url2:"https://collegeofscripting.weebly.com/", type:"A Boolean, either true or false", tag:"function", language:"JavaScript"},
{ category:"date", name:"constructor", description:"Returns the function that created the Date object's prototype", syntax:"Date.constructor", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_constructor_date.asp", url2:"https://collegeofscripting.weebly.com/", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"date", name:"getDate()", description:"Returns the day of the month (from 1-31)", syntax:"Date.getDate()", useage:"const date = new Date()", url:"https://www.w3schools.com/jsref/jsref_getdate.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate", type:"A Number, from 1 to 31, representing the day of the month", tag:"function", language:"JavaScript"},
{ category:"date", name:"getDay()", description:"Returns the day of the week (from 0-6)", syntax:"Date.getDay()", useage:"let day = date.getDay();", url:"https://www.w3schools.com/jsref/jsref_getday.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay", type:"A Number, from 0 to 6, representing the day of the week", tag:"function", language:"JavaScript"},
{ category:"date", name:"getFullYear()", description:"Returns the year", syntax:"Date.getFullYear()", useage:"let year = date.getFullYear();", url:"https://www.w3schools.com/jsref/jsref_getfullyear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear", type:"A Number, representing the year of the specified date", tag:"function", language:"JavaScript"},
{ category:"date", name:"getHours()", description:"Returns the hour (from 0-23)", syntax:"Date.getHours()", useage:"let hour = date.getHours();", url:"https://www.w3schools.com/jsref/jsref_gethours.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours", type:"A Number, from 0 to 23, representing the hour", tag:"function", language:"JavaScript"},
{ category:"date", name:"getMilliseconds()", description:"Returns the milliseconds (from 0-999)", syntax:"Date.getMilliseconds()", useage:"let ms = date.getMilliseconds();", url:"https://www.w3schools.com/jsref/jsref_getmilliseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds", type:"A Number, from 0 to 999, representing milliseconds", tag:"function", language:"JavaScript"},
{ category:"date", name:"getMinutes()", description:"Returns the minutes (from 0-59)", syntax:"Date.getMinutes()", useage:"let minutes = date.getMinutes();", url:"https://www.w3schools.com/jsref/jsref_getminutes.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes", type:"A Number, from 0 to 59, representing minutes", tag:"function", language:"JavaScript"},
{ category:"date", name:"getMonth()", description:"Returns the month (from 0-11)", syntax:"Date.getMonth()", useage:"let month = date.getMonth();", url:"https://www.w3schools.com/jsref/jsref_getmonth.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth", type:"A Number, from 0 to 11, representing the month", tag:"function", language:"JavaScript"},
{ category:"date", name:"getSeconds()", description:"Returns the seconds (from 0-59)", syntax:"Date.getSeconds()", useage:"let seconds = date.getSeconds();", url:"https://www.w3schools.com/jsref/jsref_getseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds", type:"A Number, from 0 to 59, representing the seconds", tag:"function", language:"JavaScript"},
{ category:"date", name:"getTime()", description:"Returns the number of milliseconds since midnight Jan 1 1970, and a specified date", syntax:"Date.getTime()", useage:"let time = date.getTime();", url:"https://www.w3schools.com/jsref/jsref_gettime.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime", type:"A Number, representing the number of milliseconds since midnight January 1, 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"getTimezoneOffset()", description:"Returns the time difference between UTC time and local time, in minutes", syntax:"Date.getTimezoneOffset()", useage:"let diff = date.getTimezoneOffset();", url:"https://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset", type:"A Number, representing the time difference between UTC and Local Time, in minutes", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCDate()", description:"Returns the day of the month, according to universal time (from 1-31)", syntax:"Date.getUTCDate()", useage:"let day = date.getUTCDate();", url:"https://www.w3schools.com/jsref/jsref_getutcdate.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate", type:"A Number, from 1 to 31, representing the day of the month", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCDay()", description:"Returns the day of the week, according to universal time (from 0-6)", syntax:"Date.getUTCDay()", useage:"let day = date.getUTCDay();", url:"https://www.w3schools.com/jsref/jsref_getutcday.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay", type:"A Number, from 0 to 6, representing the day of the week", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCFullYear()", description:"Returns the year, according to universal time", syntax:"Date.getUTCFullYear()", useage:"let year = date.getUTCFullYear();", url:"https://www.w3schools.com/jsref/jsref_getutcfullyear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear", type:"A Number, representing the year", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCHours()", description:"Returns the hour, according to universal time (from 0-23)", syntax:"Date.getUTCHours()", useage:"let hour = date.getUTCHours();", url:"https://www.w3schools.com/jsref/jsref_getutchours.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours", type:"A Number, from 0 to 23, representing the hour", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCMilliseconds()", description:"Returns the milliseconds, according to universal time (from 0-999)", syntax:"Date.getUTCMilliseconds()", useage:"let ms = date.getUTCMilliseconds();", url:"https://www.w3schools.com/jsref/jsref_getutcmilliseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds", type:"A Number, from 0-999, representing milliseconds", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCMinutes()", description:"Returns the minutes, according to universal time (from 0-59)", syntax:"Date.getUTCMinutes()", useage:"let minutes = date.getUTCMinutes();", url:"https://www.w3schools.com/jsref/jsref_getutcminutes.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes", type:"A Number, from 0-59, representing the minutes", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCMonth()", description:"Returns the month, according to universal time (from 0-11)", syntax:"Date.getUTCMonth()", useage:"let month = date.getUTCMonth();", url:"https://www.w3schools.com/jsref/jsref_getutcmonth.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth", type:"A Number, from 0-11, representing the month", tag:"function", language:"JavaScript"},
{ category:"date", name:"getUTCSeconds()", description:"Returns the seconds, according to universal time (from 0-59)", syntax:"Date.getUTCSeconds()", useage:"let seconds = date.getUTCSeconds();", url:"https://www.w3schools.com/jsref/jsref_getutcseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds", type:"A Number, from 0-59, representing the seconds", tag:"function", language:"JavaScript"},
{ category:"date", name:"now()", description:"Returns the number of milliseconds since midnight Jan 1, 1970", syntax:"Date.now()", useage:"let ms = Date.now();", url:"https://www.w3schools.com/jsref/jsref_now.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now", type:"A Number, representing the number of milliseconds since midnight January 1, 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"parse()", description:"Parses a date string and returns the number of milliseconds since January 1, 1970", syntax:"Date.parse(datestring)", useage:"let ms = Date.parse('March 1, 2023');", url:"https://www.w3schools.com/jsref/jsref_parse.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse", type:"A Number, representing the number of milliseconds between the specified date-time and midnight January 1, 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"prototype", description:"Allows you to add properties and methods to an object", syntax:"Date.prototype.name = value", useage:"Date.prototype.myMonth = function(){", url:"https://www.w3schools.com/jsref/jsref_prototype_date.asp", url2:"https://collegeofscripting.weebly.com/", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"date", name:"setDate()", description:"Sets the day of the month of a date object", syntax:"Date.setDate(day)", useage:"date.setDate(15);", url:"https://www.w3schools.com/jsref/jsref_setdate.asp", url2:"https://collegeofscripting.weebly.com/", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setFullYear()", description:"Sets the year of a date object", syntax:"Date.setFullYear(year, month, day)", useage:"date.setFullYear(2020);", url:"https://www.w3schools.com/jsref/jsref_setfullyear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setHours()", description:"Sets the hour of a date object", syntax:"Date.setHours(hour, min, sec, millisec)", useage:"date.setHours(15);", url:"https://www.w3schools.com/jsref/jsref_sethours.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setMilliseconds()", description:"Sets the milliseconds of a date object", syntax:"Date.setMilliseconds(millisec)", useage:"date.setMilliseconds(192);", url:"https://www.w3schools.com/jsref/jsref_setmilliseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setMinutes()", description:"Set the minutes of a date object", syntax:"Date.setMinutes(min, sec, millisec)", useage:"date.setMinutes(17);", url:"https://www.w3schools.com/jsref/jsref_setminutes.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMinutes", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setMonth()", description:"Sets the month of a date object", syntax:"Date.setMonth(month, day)", useage:"date.setMonth(4);", url:"https://www.w3schools.com/jsref/jsref_setmonth.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMonth", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setSeconds()", description:"Sets the seconds of a date object", syntax:"Date.setSeconds(sec, millisec)", useage:"date.setSeconds(35);", url:"https://www.w3schools.com/jsref/jsref_setseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setSeconds", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setTime()", description:"Sets a date to a specified number of milliseconds after/before January 1, 1970", syntax:"Date.setTime(millisec)", useage:"date.setTime(1332403882588);", url:"https://www.w3schools.com/jsref/jsref_settime.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCDate()", description:"Sets the day of the month of a date object, according to universal time", syntax:"Date.setUTCDate(day)", useage:"date.setUTCDate(15);", url:"https://www.w3schools.com/jsref/jsref_setutcdate.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCFullYear()", description:"Sets the year of a date object, according to universal time", syntax:"Date.setUTCFullYear(year, month, day)", useage:"date.setUTCFullYear(2015);", url:"https://www.w3schools.com/jsref/jsref_setutcfullyear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCHours()", description:"Sets the hour of a date object, according to universal time", syntax:"Date.setUTCHours(hour, min, sec, millisec)", useage:"date.setUTCHours(15);", url:"https://www.w3schools.com/jsref/jsref_setutchours.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCMilliseconds()", description:"Sets the milliseconds of a date object, according to universal time", syntax:"Date.setUTCMilliseconds(millisec)", useage:"date.setUTCMilliseconds(192);", url:"https://www.w3schools.com/jsref/jsref_setutcmilliseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCMinutes()", description:"Set the minutes of a date object, according to universal time", syntax:"Date.setUTCMinutes(min, sec, millisec)", useage:"date.setUTCMinutes(17);", url:"https://www.w3schools.com/jsref/jsref_setutcminutes.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCMonth()", description:"Sets the month of a date object, according to universal time", syntax:"Date.setUTCMonth(month, day)", useage:"date.setUTCMonth(4);", url:"https://www.w3schools.com/jsref/jsref_setutcmonth.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"setUTCSeconds()", description:"Set the seconds of a date object, according to universal time", syntax:"Date.setUTCSeconds(sec, millisec)", useage:"date.setUTCSeconds(35);", url:"https://www.w3schools.com/jsref/jsref_setutcseconds.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds", type:"A Number, representing the number of milliseconds between the date object and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"toDateString()", description:"Converts the date portion of a Date object into a readable string", syntax:"Date.toDateString()", useage:"let text = date.toDateString();", url:"https://www.w3schools.com/jsref/jsref_todatestring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toDateString", type:"A String, representing the date as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toISOString()", description:"Returns the date as a string, using the ISO standard", syntax:"Date.toISOString()", useage:"let text = date.toISOString();", url:"https://www.w3schools.com/jsref/jsref_toisostring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString", type:"A String, representing the date and time using the ISO standard format", tag:"function", language:"JavaScript"},
{ category:"date", name:"toJSON()", description:"Returns the date as a string, formatted as a JSON date", syntax:"Date.toJSON()", useage:"let text = date.toJSON();", url:"https://www.w3schools.com/jsref/jsref_tojson.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON", type:"A String, representing the date and time formated as a JSON date", tag:"function", language:"JavaScript"},
{ category:"date", name:"toLocaleDateString()", description:"Returns the date portion of a Date object as a string, using locale conventions", syntax:"Date.toLocaleDateString()", useage:"let text = date.toLocaleDateString();", url:"https://www.w3schools.com/jsref/jsref_tolocaledatestring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString", type:"A String, representing the date as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toLocaleTimeString()", description:"Returns the time portion of a Date object as a string, using locale conventions", syntax:"Date.toLocaleTimeString()", useage:"let text = date.toLocaleTimeString();", url:"https://www.w3schools.com/jsref/jsref_tolocaletimestring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString", type:"A String, representing the time as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toLocaleString()", description:"Converts a Date object to a string, using locale conventions", syntax:"Date.toLocaleString(locales, options)", useage:"let text = date.toLocaleString();", url:"https://www.w3schools.com/jsref/jsref_tolocalestring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString", type:"A String, representing the date and time as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toString()", description:"Converts a Date object to a string", syntax:"Date.toString()", useage:"let text = date.toString();", url:"https://www.w3schools.com/jsref/jsref_tostring_date.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toString", type:"A String, representing the date and time as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toTimeString()", description:"Converts the time portion of a Date object to a string", syntax:"Date.toTimeString()", useage:"let text = date.toTimeString();", url:"https://www.w3schools.com/jsref/jsref_totimestring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString", type:"A String, representing the time as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"toUTCString()", description:"Converts a Date object to a string, according to universal time", syntax:"Date.toUTCString()", useage:"let text = date.toUTCString();", url:"https://www.w3schools.com/jsref/jsref_toutcstring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString", type:"A String, representing the UTC date and time as a string", tag:"function", language:"JavaScript"},
{ category:"date", name:"UTC()", description:"Returns the number of milliseconds in a date since midnight of January 1, 1970, according to UTC time", syntax:"Date.UTC(year, month, day, hours, minutes, seconds, millisec)", useage:"let ms = Date.UTC(2023, 03, 17);", url:"https://www.w3schools.com/jsref/jsref_utc.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC", type:"A Number, representing the number of milliseconds between the specified date-time and midnight January 1 1970", tag:"function", language:"JavaScript"},
{ category:"date", name:"valueOf()", description:"Returns the primitive value of a Date object", syntax:"Date.valueOf()", useage:"let ms = date.valueOf();", url:"https://www.w3schools.com/jsref/jsref_valueof_date.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf", type:"A Number, representing the number of milliseconds between the date object and midnight January 1, 1970 UTC", tag:"function", language:"JavaScript"},
{ category:"string", name:"charAt()", description:"Returns the character at the specified index (position)", syntax:"string.charAt(index)", useage:"let letter = text.charAt(0);", url:"https://www.w3schools.com/jsref/jsref_charat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt", type:"A String, representing the character at the specified index, or an empty string if the index number is not found", tag:"function", language:"JavaScript"},
{ category:"string", name:"at()", description:"Returns an indexed character from a string. The at() method returns the same as [].", syntax:"string.at(index)", useage:"let character = text.at(0);", url:"https://www.w3schools.com/jsref/jsref_string_at.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at", type:"A StringA single character.The character in the given position (index) in the string.", tag:"function", language:"JavaScript"},
{ category:"string", name:"charAt()", description:"Returns the character at a specified index (position) in a string. The index of the first character is 0, the second 1, ...", syntax:"string.charAt(index)", useage:"let letter = text.charAt(0);", url:"https://www.w3schools.com/jsref/jsref_charat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt", type:"String. The character at the specified index. Empty string (' ') if the index is out of range.", tag:"function", language:"JavaScript"},
{ category:"string", name:"charCodeAt()", description:"Returns the Unicode of the character at the specified index", syntax:"string.charCodeAt(index)", useage:"let code = text.charCodeAt(0);", url:"https://www.w3schools.com/jsref/jsref_charcodeat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt", type:"A Number, representing the unicode of the character at the specified index. Returns 'NaN' if there is no character at the specified index, or if the index is less than '0'.", tag:"function", language:"JavaScript"},
{ category:"string", name:"codePointAt()", description:"Returns the Unicode value at an index (position) in a string. The index of the first position is 0, the second is 1, ....", syntax:"string.codePointAt(index)", useage:"let code = text.codePointAt(0);", url:"https://www.w3schools.com/jsref/jsref_codepointat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt", type:"NumberThe code point value at the specified index.undefined if the index is invalid. charCodeAt and codePointAt return an integer representing the UTF-16 code of a character, but only codePointAt() returns the full value of a Unicode value greater than 0xFFFF (65535).", tag:"function", language:"JavaScript"},
{ category:"string", name:"concat()", description:"Joins two or more strings, and returns a new joined strings", syntax:"string.concat(string1, string2, ..., stringX)", useage:"let result = text1.concat(text2);", url:"https://www.w3schools.com/jsref/jsref_concat_string.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat", type:"A new String, containing the text of the combined strings", tag:"function", language:"JavaScript"},
{ category:"string", name:"constructor", description:"Returns the string's constructor function", syntax:"string.constructor", useage:"let text = message.constructor;", url:"https://www.w3schools.com/jsref/jsref_constructor_string.asp", url2:"https://collegeofscripting.weebly.com/", type:"function String() { [native code] }", tag:"function", language:"JavaScript"},
{ category:"string", name:"endsWith()", description:"Checks whether a string ends with specified string/characters", syntax:"string.endsWith(searchvalue, length)", useage:"let result = text.endsWith('world');", url:"https://www.w3schools.com/jsref/jsref_endswith.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith", type:"A Boolean. Returns true if the string ends with the value, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"string", name:"fromCharCode()", description:"Converts Unicode values to characters", syntax:"String.fromCharCode(n1, n2, ..., nX)", useage:"let char = String.fromCharCode(65);", url:"https://www.w3schools.com/jsref/jsref_fromcharcode.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode", type:"A String, representing the character(s) representing the specified unicode number(s)", tag:"function", language:"JavaScript"},
{ category:"string", name:"includes()", description:"Checks whether a string contains the specified string/characters", syntax:"string.includes(searchvalue, start)", useage:"let result = text.includes('world');", url:"https://www.w3schools.com/jsref/jsref_includes.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes", type:"A Boolean. Returns true if the string contains the value, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"string", name:"indexOf()", description:"Returns the position of the first found occurrence of a specified value in a string", syntax:"string.indexOf(searchvalue, start)", useage:"let result = text.indexOf('welcome');", url:"https://www.w3schools.com/jsref/jsref_indexof.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf", type:"A Number, representing the position where the searchvalue occurs for the first time, or -1 if it never occurs", tag:"function", language:"JavaScript"},
{ category:"string", name:"lastIndexOf()", description:"Returns the position of the last found occurrence of a specified value in a string", syntax:"string.lastIndexOf(searchvalue, start)", useage:"let result = text.lastIndexOf('planet');", url:"https://www.w3schools.com/jsref/jsref_lastindexof.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf", type:"A Number, representing the position where the specified searchvalue occurs for the last time, or -1 if it never occurs", tag:"function", language:"JavaScript"},
{ category:"string", name:"length", description:"Returns the length of a string", syntax:"string.length", useage:"let length = text.length;", url:"https://www.w3schools.com/jsref/jsref_length_string.asp", url2:"https://collegeofscripting.weebly.com/", type:"The length of a string", tag:"function", language:"JavaScript"},
{ category:"string", name:"localeCompare()", description:"Compares two strings in the current locale", syntax:"string.localeCompare(compareString)", useage:"let result = text1.localeCompare(text2);", url:"https://www.w3schools.com/jsref/jsref_localecompare.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare", type:"A Number, indicating whether the reference string comes before, after or is the same as the compareString in sort order. Returns one of three values: -1 if the reference string is sorted before the compareString 0 if the two strings are equal 1 if the reference string is sorted after the compareString", tag:"function", language:"JavaScript"},
{ category:"string", name:"match()", description:"Searches a string for a match against a regular expression, and returns the matches", syntax:"string.match(match)", useage:"text.match('th');", url:"https://www.w3schools.com/jsref/jsref_match.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match", type:"An Array, containing the matches, one item for each match, or null if no match is found", tag:"function", language:"JavaScript"},
{ category:"string", name:"padEnd()", description:"Pads a string at the end. Pads a string with another string (multiple times) until it reaches a given length.", syntax:"string.padEnd(length, string)", useage:"let padded = text.padEnd(4,'0');", url:"https://www.w3schools.com/jsref/jsref_string_padend.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd", type:"A string A String of the specified length, with the padding applied at the end.", tag:"function", language:"JavaScript"},
{ category:"string", name:"padStart()", description:"Pads a string from the start. Pads a string with another string (multiple times) until it reaches a given length.", syntax:"string.padStart(length, string)", useage:"let padded = text.padStart(4,'0');", url:"https://www.w3schools.com/jsref/jsref_string_padstart.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart", type:"A string A String of the specified length, with the padding applied from the start.", tag:"function", language:"JavaScript"},
{ category:"string", name:"prototype", description:"Allows you to add properties and methods to an object", syntax:"object.prototype.name = value", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_prototype_string.asp", url2:"https://collegeofscripting.weebly.com/", type:"A reference to the String.prototype object", tag:"function", language:"JavaScript"},
{ category:"string", name:"repeat()", description:"Returns a new string with a specified number of copies of an existing string", syntax:"string.repeat(count)", useage:"let result = text.repeat(2);", url:"https://www.w3schools.com/jsref/jsref_repeat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat", type:"A String, a new string containing copies of the original string", tag:"function", language:"JavaScript"},
{ category:"string", name:"replace()", description:"Searches a string for a specified value, or a regular expression, and returns a new string where the specified values are replaced", syntax:"string.replace(searchValue, newValue)", useage:"let result = text.replace('Jane', 'Joan');", url:"https://www.w3schools.com/jsref/jsref_replace.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace", type:"A new String, where the specified value(s) has been replaced by the new value", tag:"function", language:"JavaScript"},
{ category:"string", name:"replaceAll()", description:"Searches a string for a value or a regular expression. Returns a new string with all values replaced. Does not change the original string.", syntax:"string.replaceAll(searchValue, newValue)", useage:"text = text.replaceAll('cats', 'dogs');", url:"https://www.w3schools.com/jsref/jsref_string_replaceall.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll", type:"A string A new string where the search values has been replaced.", tag:"function", language:"JavaScript"},
{ category:"string", name:"search()", description:"Searches a string for a specified value, or regular expression, and returns the position of the match", syntax:"string.search(searchValue)", useage:"let position = text.search('Blue');", url:"https://www.w3schools.com/jsref/jsref_search.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search", type:"A Number, representing the position of the first occurrence of the specified searchvalue, or -1 if no match is found", tag:"function", language:"JavaScript"},
{ category:"string", name:"slice()", description:"Extracts a part of a string and returns a new string", syntax:"string.slice(start, end)", useage:"let result = text.slice(0, 5);", url:"https://www.w3schools.com/jsref/jsref_slice_string.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice", type:"A String, representing the extracted part of the string", tag:"function", language:"JavaScript"},
{ category:"string", name:"split()", description:"Splits a string into an array of substrings", syntax:"string.split(separator, limit)", useage:"const myArray = text.split(' ');", url:"https://www.w3schools.com/jsref/jsref_split.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split", type:"An Array, containing the splitted values", tag:"function", language:"JavaScript"},
{ category:"string", name:"startsWith()", description:"Checks whether a string begins with specified characters", syntax:"string.startsWith(searchValue, start)", useage:"text.startsWith('Hi');", url:"https://www.w3schools.com/jsref/jsref_startswith.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith", type:"A Boolean. Returns true if the string starts with the value, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"string", name:"substr()", description:"Extracts the characters from a string, beginning at a specified start position, and through the specified number of characters", syntax:"string.substr(start, length)", useage:"let result = text.substr(1, 4);", url:"https://www.w3schools.com/jsref/jsref_substr.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr", type:"A new String, containing the extracted part of the text. If length is 0 or negative, an empty string is returned", tag:"function", language:"JavaScript"},
{ category:"string", name:"substring()", description:"Extracts the characters from a string, between two specified indices", syntax:"string.substring(start, end)", useage:"let result = text.substring(1, 4);", url:"https://www.w3schools.com/jsref/jsref_substring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring", type:"A new String containing the extracted characters", tag:"function", language:"JavaScript"},
{ category:"string", name:"toLocaleLowerCase()", description:"Converts a string to lowercase letters, according to the host's locale", syntax:"string.toLocaleLowerCase()", useage:"let result = text.toLocaleLowerCase();", url:"https://www.w3schools.com/jsref/jsref_tolocalelowercase.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase", type:"A String, representing the value of a string converted to lowercase according to the host's current locale", tag:"function", language:"JavaScript"},
{ category:"string", name:"toLocaleUpperCase()", description:"Converts a string to uppercase letters, according to the host's locale", syntax:"string.toLocaleUpperCase()", useage:"let result = text.toLocaleUpperCase();", url:"https://www.w3schools.com/jsref/jsref_tolocaleuppercase.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase", type:"A String, representing the value of a string converted to uppercase according to the host's current locale", tag:"function", language:"JavaScript"},
{ category:"string", name:"toLowerCase()", description:"Converts a string to lowercase letters", syntax:"string.toLowerCase()", useage:"let result = text.toLowerCase();", url:"https://www.w3schools.com/jsref/jsref_tolowercase.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase", type:"A String, representing the value of a string converted to lowercase", tag:"function", language:"JavaScript"},
{ category:"string", name:"toString()", description:"Returns the value of a String object", syntax:"string.toString()", useage:"let result = text.toString();", url:"https://www.w3schools.com/jsref/jsref_tostring_string.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toString", type:"A String, representing the value of a string", tag:"function", language:"JavaScript"},
{ category:"string", name:"toUpperCase()", description:"Converts a string to uppercase letters", syntax:"string.toUpperCase()", useage:"let result = text.toUpperCase();", url:"https://www.w3schools.com/jsref/jsref_touppercase.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase", type:"A String, representing the value of a string converted to uppercase", tag:"function", language:"JavaScript"},
{ category:"string", name:"trim()", description:"Removes whitespace from both ends of a string", syntax:"string.trim()", useage:"let result = text.trim();", url:"https://www.w3schools.com/jsref/jsref_trim_string.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim", type:"A String, representing the string with removed whitespace from both ends", tag:"function", language:"JavaScript"},
{ category:"string", name:"trimEnd()", description:"Removes whitespace from the end of a string. Does not change the original string. Works like trim(), but removes whitespace only from the end of a string.", syntax:"string.trimEnd()", useage:"let text2 = text1.trimEnd();", url:"https://www.w3schools.com/jsref/jsref_string_trim_end.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd", type:"A string A string with removed whitespace from the end of the string.", tag:"function", language:"JavaScript"},
{ category:"string", name:"trimStart()", description:"Removes whitespace from the beginning of a string. Does not change the original string. Works like trim(), but removes whitespace only from the start of a string.", syntax:"let text2 = text1.trimStart();", url:"https://www.w3schools.com/jsref/jsref_string_trim_start.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart", type:"A string A string with removed whitespace from the beginning of the string.", tag:"function", language:"JavaScript"},
{ category:"string", name:"valueOf()", description:"Returns the primitive value of a String object", syntax:"string.valueOf()", useage:"let result = text.valueOf();", url:"https://www.w3schools.com/jsref/jsref_valueof_string.asp", url2:"https://collegeofscripting.weebly.com/", type:"A String, representing the primitive value of a string", tag:"function", language:"JavaScript"},
{ category:"global", name:"decodeURI()", description:"Decodes a URI", syntax:"decodeURI(uri)", useage:"let decoded = decodeURI(encoded);", url:"https://www.w3schools.com/jsref/jsref_decodeuri.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI", type:"A String, representing the decoded URI", tag:"function", language:"JavaScript"},
{ category:"global", name:"decodeURIComponent()", description:"Decodes a URI component", syntax:"decodeURIComponent(uri)", useage:"let decoded = decodeURIComponent(encoded);", url:"https://www.w3schools.com/jsref/jsref_decodeuricomponent.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent", type:"A String, representing the decoded URI", tag:"function", language:"JavaScript"},
{ category:"global", name:"encodeURI()", description:"Encodes a URI", syntax:"encodeURI(uri)", useage:"let encoded = encodeURI(uri);", url:"https://www.w3schools.com/jsref/jsref_encodeuri.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI", type:"A String, representing the encoded URI", tag:"function", language:"JavaScript"},
{ category:"global", name:"encodeURIComponent()", description:"Encodes a URI component", syntax:"encodeURIComponent(uri)", useage:"let encoded = encodeURIComponent(uri);", url:"https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent", type:"A String, representing the encoded URI", tag:"function", language:"JavaScript"},
{ category:"global", name:"escape() DEPRECATED", description:"Deprecated. Use encodeURI() or encodeURIComponent() instead", syntax:"DEPRECATED", useage:"deprecated", url:"https://www.w3schools.com/jsref/jsref_escape.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape", type:"A String, representing the encoded string", tag:"function", language:"JavaScript"},
{ category:"global", name:"eval()", description:"Evaluates a string and executes it as if it was script code", syntax:"eval(string)", useage:"let result = eval(text);", url:"https://www.w3schools.com/jsref/jsref_eval.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval", type:"In Progress *", tag:"function", language:"JavaScript"},
{ category:"global", name:"Infinity", description:"A numeric value that represents positive/negative infinity", syntax:"Infinity", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_infinity.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity", type:"Infinity", tag:"function", language:"JavaScript"},
{ category:"global", name:"isFinite()", description:"Determines whether a value is a finite, legal number", syntax:"isFinite(value)", useage:"let result = isFinite(17);", url:"https://www.w3schools.com/jsref/jsref_isfinite.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite", type:"A Boolean. Returns false if the value is +infinity, -infinity, or NaN, otherwise it returns true.", tag:"function", language:"JavaScript"},
{ category:"global", name:"isNaN()", description:"Determines whether a value is an illegal number", syntax:"isNaN(value)", useage:"IsNaN(17);", url:"https://www.w3schools.com/jsref/jsref_isnan.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN", type:"A Boolean. Returns true if the value is NaN, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"global", name:"NaN", description:"Not-a-Number value", syntax:"NaN", useage:"NaN", url:"https://www.w3schools.com/jsref/jsref_nan.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN", type:"NaN", tag:"function", language:"JavaScript"},
{ category:"global", name:"Number()", description:"Converts an object's value to a number", syntax:"Number(value)", useage:"Number(true);", url:"https://www.w3schools.com/jsref/jsref_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number", type:"A Number. Returns different object values to their numbers. If the value cannot be converted to a legal number, NaN is returned. If no argument is provided, it returns 0.", tag:"function", language:"JavaScript"},
{ category:"global", name:"parseFloat()", description:"Parses a string and returns a floating point number", syntax:"parseFloat(value)", useage:"ParseFloat('10.17');", url:"https://www.w3schools.com/jsref/jsref_parsefloat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat", type:"A Number. If the first character cannot be converted to a number, NaN is returned", tag:"function", language:"JavaScript"},
{ category:"global", name:"parseInt()", description:"Parses a string and returns an integer", syntax:"parseInt(string, radix)", useage:"ParseInt('17');", url:"https://www.w3schools.com/jsref/jsref_parseint.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt", type:"A Number. If the first character cannot be converted to a number, NaN is returned", tag:"function", language:"JavaScript"},
{ category:"global", name:"String()", description:"Converts an object's value to a string", syntax:"String(value)", useage:"String(12345);", url:"https://www.w3schools.com/jsref/jsref_string.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"global", name:"undefined", description:"Indicates that a variable has not been assigned a value", syntax:"In Progress", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_undefined.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"global", name:"unescape() Deprecated", description:"Deprecated. Use decodeURI() or decodeURIComponent() instead", syntax:"DEPRECATED", useage:"deprecated", url:"https://www.w3schools.com/jsref/jsref_unescape.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape", type:"A String, representing the decoded string", tag:"function", language:"JavaScript"},
{ category:"number", name:"constructor", description:"Returns the function that created JavaScript's Number prototype", syntax:"number.constructor", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_constructor_number.asp", url2:"https://collegeofscripting.weebly.com/", type:"function Number() { [native code] }", tag:"function", language:"JavaScript"},
{ category:"number", name:"EPSILON", description:"Number.EPSILON returns the difference between the smallest floating point number greater than 1 and 1. Number.EPSILON has the value of 2.220446049250313e-16.", syntax:"Number.EPSILON", useage:"let x = Number.EPSILON;", url:"https://www.w3schools.com/jsref/jsref_number_epsilon.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON", type:"Number 2.220446049250313e-16", tag:"function", language:"JavaScript"},
{ category:"number", name:"isFinite()", description:"Checks whether a value is a finite number", syntax:"Number.isFinite(value)", useage:"Number.isFinite(17)", url:"https://www.w3schools.com/jsref/jsref_isfinite_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite", type:"A Boolean. Returns true if the value is a finite Number, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"number", name:"isSafeInteger()", description:"Returns true if a number is a safe integer. If not, then it returns false.", syntax:"Number.isSafeInteger(value)", useage:"Number.isSafeInteger(17);", url:"https://www.w3schools.com/jsref/jsref_issafeinteger.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger", type:"A boolean true if the value is a safe integer, otherwise false.", tag:"function", language:"JavaScript"},
{ category:"number", name:"isInteger()", description:"Checks whether a value is an integer", syntax:"Number.isInteger(value)", useage:"Number.isInteger(17);", url:"https://www.w3schools.com/jsref/jsref_isinteger.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger", type:"A Boolean. Returns true if the value is an integer Number, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"number", name:"isNaN()", description:"Checks whether a value is Number.NaN", syntax:"Number.isNaN(value)", useage:"Number.isNaN(17);", url:"https://www.w3schools.com/jsref/jsref_isnan_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN", type:"A Boolean. Returns true if the value is Number.NaN, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"number", name:"isSafeInteger()", description:"Checks whether a value is a safe integer", syntax:"Number.isSafeInteger(value)", useage:"Number.isSafeInteger(17);", url:"https://www.w3schools.com/jsref/jsref_issafeinteger.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger", type:"A Boolean. Returns true if the value is a safe integer Number, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"number", name:"MAX_SAFE_INTEGER", description:"Number.MAX_SAFE_INTEGER represents the maximum safe integer in JavaScript. Number.MAX_SAFE_INTEGER is (2^53 – 1).", syntax:"let x = Number.MAX_SAFE_INTEGER;", useage:"let x = Number.MAX_SAFE_INTEGER;", url:"https://www.w3schools.com/jsref/jsref_max_safe_integer.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER", type:"Number 9007199254740991", tag:"function", language:"JavaScript"},
{ category:"number", name:"MIN_SAFE_INTEGER", description:"Number.MIN_SAFE_INTEGER represents the minimum safe integer in JavaScript. Number.MIN_SAFE_INTEGER is -(2^53 - 1).", syntax:"Number.MIN_SAFE_INTEGER", useage:"let x = Number.MIN_SAFE_INTEGER;", url:"https://www.w3schools.com/jsref/jsref_min_safe_integer.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER", type:"Number -9007199254740991", tag:"function", language:"JavaScript"},
{ category:"number", name:"MAX_VALUE", description:"Returns the largest number possible in JavaScript", syntax:"Number.MAX_VALUE", useage:"let x = Number.MAX_VALUE;", url:"https://www.w3schools.com/jsref/jsref_max_value.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE", type:"A Number, 1.7976931348623157e+308", tag:"function", language:"JavaScript"},
{ category:"number", name:"MIN_VALUE", description:"Returns the smallest number possible in JavaScript", syntax:"Number.MIN_VALUE", useage:"let x = Number.MIN_VALUE;", url:"https://www.w3schools.com/jsref/jsref_min_value.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE", type:"A Number, 5e-324", tag:"function", language:"JavaScript"},
{ category:"number", name:"NEGATIVE_INFINITY", description:"Represents negative infinity (returned on overflow)", syntax:"Number.NEGATIVE_INFINITY", useage:"let x = Number.NEGATIVE_INFINITY;", url:"https://www.w3schools.com/jsref/jsref_negative_infinity.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY", type:"The numeric value: -Infinity", tag:"function", language:"JavaScript"},
{ category:"number", name:"NaN", description:"Represents a Not-a-Number value", syntax:"Number.NaN", useage:"let x = Number.NaN;", url:"https://www.w3schools.com/jsref/jsref_number_nan.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN", type:"NaN", tag:"function", language:"JavaScript"},
{ category:"number", name:"POSITIVE_INFINITY", description:"Represents infinity (returned on overflow)", syntax:"Number.POSITIVE_INFINITY", useage:"let x = Number.POSITIVE_INFINITY;", url:"https://www.w3schools.com/jsref/jsref_positive_infinity.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY", type:"The numeric value: Infinity", tag:"function", language:"JavaScript"},
{ category:"number", name:"parseFloat()", description:"Parses a value as a string and returns the first number. Number.parseFloat vs. parseFloat This method has the same functionality as the global parseFloat() function:", syntax:"Number.parseFloat(value)", useage:"Number.parseFloat('7.37');", url:"https://www.w3schools.com/jsref/jsref_number_parsefloat.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat", type:"Number NaN if no number is found.", tag:"function", language:"JavaScript"},
{ category:"number", name:"parseInt()", description:"Parses a value as a string and returns the first integer. Number.parseInt vs. parseInt This method has the same functionality as the global parseInt() function: A radix parameter specifies the number system to use: 2 = binary, 8 = octal, 10 = decimal, 16 = hexadecimal. If radix is omitted, JavaScript assumes radix 10. If the value begins with '0x', JavaScript assumes radix 16.", syntax:"Number.parseInt(string, radix)", useage:"Number.parseInt('7.37');", url:"https://www.w3schools.com/jsref/jsref_number_parseint.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt", type:"Number NaN if no integer is found.", tag:"function", language:"JavaScript"},
{ category:"number", name:"prototype", description:"Allows you to add properties and methods to an object", syntax:"Number.prototype.name = value", useage:"Number.prototype.myMethod = function(){", url:"https://www.w3schools.com/jsref/jsref_prototype_num.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"number", name:"toExponential()", description:"Converts a number into an exponential notation", syntax:"number.toExponential(x)", useage:"let n = num.toExponential();", url:"https://www.w3schools.com/jsref/jsref_toexponential.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential", type:"A String, representing the number as an exponential notation", tag:"function", language:"JavaScript"},
{ category:"number", name:"toFixed()", description:"Formats a number with x numbers of digits after the decimal point", syntax:"number.toFixed(x)", useage:"let n = num.toFixed(2);", url:"https://www.w3schools.com/jsref/jsref_tofixed.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed", type:"A String, representing a number, with the exact number of decimals", tag:"function", language:"JavaScript"},
{ category:"number", name:"toLocaleString()", description:"Converts a number into a string, based on the locale settings", syntax:"number.toLocaleString(locales, options)", useage:"let text = num.toLocaleString();", url:"https://www.w3schools.com/jsref/jsref_tolocalestring_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString", type:"A String, representing a number", tag:"function", language:"JavaScript"},
{ category:"number", name:"toPrecision()", description:"Formats a number to x length", syntax:"number.toPrecision(x)", useage:"let n = num.toPrecision(2);", url:"https://www.w3schools.com/jsref/jsref_toprecision.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision", type:"A String, representing a number formatted to the specified precision", tag:"function", language:"JavaScript"},
{ category:"number", name:"toString()", description:"Converts a number to a string", syntax:"number.toString(radix)", useage:"let text = num.toString();", url:"https://www.w3schools.com/jsref/jsref_tostring_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString", type:"A String, representing a number", tag:"function", language:"JavaScript"},
{ category:"number", name:"valueOf()", description:"Returns the primitive value of a number", syntax:"number.valueOf()", useage:"let n = num.valueOf();", url:"https://www.w3schools.com/jsref/jsref_valueof_number.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/valueOf", type:"A Number, representing the primitive value of a number", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"constructor", description:"Returns the function that created the RegExp object's prototype", syntax:"RegExpObject.constructor", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_constructor.asp", url2:"https://collegeofscripting.weebly.com/", type:"function RegExp() { [native code] }", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"compile()", description:"compile() Deprecated. Compiles a regular expression", syntax:"In Progress", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_compile.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"exec()", description:"Tests for a match in a string. Returns the first match", syntax:"RegExpObject.exec(string)", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_exec.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec", type:"An array containing the matched text if it finds a match, otherwise it returns null", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"g", description:"Perform a global match (find all matches rather than stopping after the first match)", syntax:"/regexp/g", useage:"let result = text.match(/is/g;);", url:"https://www.w3schools.com/jsref/jsref_regexp_g.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"global", description:"Checks whether the g modifier is set", syntax:"RegExpObject.global", useage:"let result = pattern.global;", url:"https://www.w3schools.com/jsref/jsref_regexp_global.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global", type:"Boolean, Returns true if the 'g' modifier is set, false otherwise", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"i", description:"Perform case-insensitive matching", syntax:"/regexp/i", useage:"let result = text.match(/hi/i);", url:"https://www.w3schools.com/jsref/jsref_regexp_i.asp", url2:"https://collegeofscripting.weebly.com/", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"ignoreCase", description:"Checks whether the I modifier is set", syntax:"RegExpObject.ignoreCase", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_ignorecase.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase", type:"Boolean Returns true if the 'I' modifier is set, false otherwise", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"lastIndex", description:"Specifies the index at which to start the next match", syntax:"RegExpObject.lastIndex", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_lastindex.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex", type:"Number, An integer that specifies the character position immediately after the last match found by exec( ) or test( ) methods", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"m", description:"Perform multiline matching", syntax:"/regexp/m", useage:"let pattern = /^is/m;", url:"https://www.w3schools.com/jsref/jsref_regexp_m.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/", type:"In Progress *", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"multiline", description:"Perform multiline matching", syntax:"RegExpObject.multiline", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_regexp_multiline.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline", type:"Boolean Returns true if the 'm' modifier is set, false otherwise", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"+", description:"Matches any string that contains at least one n", syntax:"/n+/g", useage:"let result = text.match(/o+/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_onemore.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"*", description:"Matches any string that contains zero or more occurrences of n", syntax:"/n*/g", useage:"let result = text.match(/lo*/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_zeromore.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"?", description:"Matches any string that contains zero or one occurrences of n", syntax:"/n?/g", useage:"let result = text.match(/10?/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_zeroone.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"{X}", description:"Matches any string that contains a sequence of at least X n's", syntax:"/n{X}/g", useage:"let result = text.match(/\d{4}/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_nx.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"{X,Y}", description:"Matches any string that contains a sequence of X to Y n's", syntax:"/n{X,Y}/g", useage:"let result = text.match(/\d{3,4}/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_nxy.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"{X,}", description:"Matches any string that contains a sequence of at least X n's", syntax:"/n{X,}/g", useage:"let result = text.match(/\d{3,}/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_nxcomma.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"$", description:"Matches any string with n at the end of it", syntax:"/n$/g", useage:"let result = text.match(/is$/);", url:"https://www.w3schools.com/jsref/jsref_regexp_ndollar.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"^", description:"Matches any string with n at the beginning of it", syntax:"/^n/ /\^n/g", useage:"let result = text.match(/^Is/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_ncaret.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"?=", description:"Matches any string that is followed by a specific string n", syntax:"/regexp(?=n)/g", useage:"let result = text.match(/is(?= all)/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_nfollow.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"?!", description:"Matches any string that is not followed by a specific string n", syntax:"/regexp(?!n)/g", useage:"let result = text.match(/is(?! all)/gi);", url:"https://www.w3schools.com/jsref/jsref_regexp_nfollow_not.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"source", description:"Returns the text of the RegExp pattern", syntax:"RegExpObject.source", useage:"let result = pattern.source;", url:"https://www.w3schools.com/jsref/jsref_regexp_source.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source", type:"String. The text of the RegExp pattern", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"test()", description:"Tests for a match in a string. Returns true or false", syntax:"RegExpObject.test(string)", useage:"let result = pattern.test(text);", url:"https://www.w3schools.com/jsref/jsref_regexp_test.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test", type:"Boolean. Returns true if it finds a match, otherwise it returns false", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"toString()", description:"Returns the string value of the regular expression", syntax:"RegExpObject.toString()", useage:"let text = pattern.toString();", url:"https://www.w3schools.com/jsref/jsref_regexp_tostring.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/toString", type:"String. The string value of the regular expression", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"[abc]", description:"Find any character between the brackets", syntax:"/[abc]/g", useage:"let result = text.match(/[h]/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_charset.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"[^abc]", description:"Find any character NOT between the brackets", syntax:"/[^xyz]/g", useage:"let result = text.match(/[^h]/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_charset_not.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"[0-9]", description:"Find any character between the brackets (any digit)", syntax:"/[0-9]/g", useage:"let result = text.match(/[1-4]/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_0-9.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"[^0-9]", description:"Find any character NOT between the brackets (any non-digit)", syntax:"/[^0-9]/g", useage:"let result = text.match(/[^1-4]/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_not_0-9.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"(x|y)", description:"Find any of the alternatives specified", syntax:"/(x|y)/g", useage:"let result = text.match(/(red|green)/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_xy.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:".", description:"Find a single character, except newline or line terminator", syntax:"/regexp./g", useage:"let result = text.match(/h.t/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_dot.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\w", description:"Find a word character", syntax:"/\w/g", useage:"let result = text.match(/\w/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_wordchar.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\W", description:"Find a non-word character", syntax:"/\W/g", useage:"let result = text.match(/\w/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_wordchar_non.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\d", description:"Find a digit", syntax:"/\d/g", useage:"let result = text.match(/\d/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_digit.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\D", description:"Find a non-digit character", syntax:"/\D/g", useage:"let result = text.match(/\d/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_digit_non.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\s", description:"Find a whitespace character", syntax:"/\s/g", useage:"let result = text.match(/\s/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_whitespace.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\S", description:"Find a non-whitespace character", syntax:"/\S/g", useage:"let result = text.match(/\s/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_whitespace_non.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\b", description:"Find a match at the beginning/end of a word, beginning like this: \bHI, end like this: HI\b", syntax:"/\bregexp/g", useage:"let result = text.match(/\bLO/);", url:"https://www.w3schools.com/jsref/jsref_regexp_begin.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\B", description:"Find a match, but not at the beginning/end of a word", syntax:"/\bregexp/g", useage:"let result = text.match(/\BLO/);", url:"https://www.w3schools.com/jsref/jsref_regexp_begin_not.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\0", description:"Find a NULL character", syntax:"/\0/", useage:"let result = text.match(/\0/);", url:"https://www.w3schools.com/jsref/jsref_regexp_nul.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\n", description:"Find a new line character", syntax:"/\n/", useage:"let result = text.match(/\n/);", url:"https://www.w3schools.com/jsref/jsref_regexp_newline.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\f", description:"Find a form feed character", syntax:"/\f/", useage:"let result = text.match(/\f/);", url:"https://www.w3schools.com/jsref/jsref_regexp_formfeed.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\r", description:"Find a carriage return character", syntax:"/\r/", useage:"let result = text.match(/\r/);", url:"https://www.w3schools.com/jsref/jsref_regexp_carriagereturn.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\t", description:"Find a tab character", syntax:"/\t/", useage:"let result = text.match(/\t/);", url:"https://www.w3schools.com/jsref/jsref_regexp_tab.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\v", description:"Find a vertical tab character", syntax:"/\v/", useage:"let result = text.match(/\v/);", url:"https://www.w3schools.com/jsref/jsref_regexp_vtab.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\xxx", description:"Find the character specified by an octal number xxx", syntax:"/\\xxx/g", useage:"let result = text.match(/\\127/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_octal.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\xdd", description:"Find the character specified by a hexadecimal number dd", syntax:"/\\xdd/g", useage:"let result = text.match(/\\x57/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_hex.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"regular expression", name:"\\uxxxx", description:"Find the Unicode character specified by a hexadecimal number dddd", syntax:"/\udddd/g", useage:"let result = text.match(/\\u0057/g);", url:"https://www.w3schools.com/jsref/jsref_regexp_unicode_hex.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet", type:"none", tag:"function", language:"JavaScript"},
{ category:"classes", name:"constructor()", description:"A special method for creating and initializing objects created within a class", syntax:"constructor(parameters)", useage:"constructor(x) {", url:"https://www.w3schools.com/jsref/jsref_constructor_class.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"classes", name:"extends", description:"Extends a class (inherit)", syntax:"class childClass extends parentClass", useage:"class Model extends Car {", url:"https://www.w3schools.com/jsref/jsref_class_extends.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/extends", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"classes", name:"static", description:"Defines a static method for a class", syntax:"static methodName()", useage:"static hi() {", url:"https://www.w3schools.com/jsref/jsref_class_static.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"classes", name:"super", description:"Refers to the parent class", syntax:"super(arguments); calls the parent constructor (only inside the constructor) super.parentMethod(arguments); calls a parent method", useage:"super(speed);", url:"https://www.w3schools.com/jsref/jsref_class_super.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"error", name:"name", description:"Sets or returns an error name", syntax:"errorObj.name", useage:"try { Addalert('Welcome guest!'); } catch(err) { ge('demo').innerHTML = err.name; }", url:"https://www.w3schools.com/jsref/prop_error_name.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name", type:"A String, representing the name of the error", tag:"function", language:"JavaScript"},
{ category:"error", name:"message", description:"Sets or returns an error message (a string)", syntax:"errorObj.message", useage:"try { Adddlert('Welcome guest'); } catch(err) { ge('demo').innerHTML = err.message; }", url:"https://www.w3schools.com/jsref/prop_error_message.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/message", type:"A String, representing a description of an error (varies depending on the browser)", tag:"function", language:"JavaScript"},
{ category:"json", name:"parse()", description:"Parses a JSON string and returns a JavaScript object", syntax:"JSON.parse(string, function)", useage:"In Progress", url:"https://www.w3schools.com/jsref/jsref_parse_json.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse", type:"A JSON Object, or Array", tag:"function", language:"JavaScript"},
{ category:"json", name:"stringify()", description:"Convert a JavaScript object to a JSON string", syntax:"JSON.stringify(obj, replacer, space)", useage:"var myJSON = JSON.stringify(obj);", url:"https://www.w3schools.com/jsref/jsref_stringify.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify", type:"A String", tag:"function", language:"JavaScript"},
{ category:"console", name:"assert()", description:"Writes an error message to the console if the assertion is false", syntax:"console.assert(expression, message)", useage:"console.assert(x + y == 11, 'Expression returned false');", url:"https://www.w3schools.com/jsref/met_console_assert.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/assert", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"clear()", description:"Clears the console", syntax:"console.clear()", useage:"console.clear();", url:"https://www.w3schools.com/jsref/met_console_clear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/clear", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"count()", description:"Logs the number of times that this particular call to count() has been called", syntax:"console.count(label)", useage:"for (let i = 0; i < 5; i++) { console.count('myLabel'); }", url:"https://www.w3schools.com/jsref/met_console_count.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/count", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"error()", description:"Outputs an error message to the console", syntax:"console.error(message)", useage:"console.error('They are in error');", url:"https://www.w3schools.com/jsref/met_console_error.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/error", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"group()", description:"Creates a new inline group in the console. This indents following console messages by an additional level, until console.groupEnd() is called", syntax:"console.group(label)", useage:"console.log('Hi world'); console.group(); console.log('Hi again, inside a group');", url:"https://www.w3schools.com/jsref/met_console_group.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/group", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"groupCollapsed()", description:"Creates a new inline group in the console. However, the new group is created collapsed. The user will need to use the disclosure button to expand it", syntax:"console.groupCollapsed(label)", useage:"console.log('Hi world!'); console.groupCollapsed(); console.log('Hi inside collapsed group');", url:"https://www.w3schools.com/jsref/met_console_groupcollapsed.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/groupCollapsed", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"groupEnd()", description:"Exits the current inline group in the console", syntax:"console.groupEnd()", useage:"console.log('Hi world'); console.group(); console.log('Hi again, this time inside a group'); console.groupEnd(); console.log('the new');", url:"https://www.w3schools.com/jsref/met_console_groupend.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/groupEnd", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"info()", description:"Outputs an informational message to the console", syntax:"console.info(message)", useage:"console.info('Hi Everyone');", url:"https://www.w3schools.com/jsref/met_console_info.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/info", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"log()", description:"Outputs a message to the console", syntax:"console.log(message)", useage:"console.log('Hi Everyone');", url:"https://www.w3schools.com/jsref/met_console_log.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/log", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"table()", description:"Displays tabular data as a table", syntax:"console.table(tabledata, tablecolumns)", useage:"console.table(['Audi', 'Volvo', 'Ford']); console.table({firstname:'John', lastname:'Doe'});", url:"https://www.w3schools.com/jsref/met_console_table.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/table", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"time()", description:"Starts a timer (can track how long an operation takes)", syntax:"console.time(label)", useage:"console.time(); for (let i = 0; i < 100000; i++) { // some code } console.timeEnd();", url:"https://www.w3schools.com/jsref/met_console_time.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/time", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"timeEnd()", description:"Stops a timer that was previously started by console.time()", syntax:"console.timeEnd(label)", useage:"console.time(); for (let i = 0; i < 100000; i++) { // some code } console.timeEnd();", url:"https://www.w3schools.com/jsref/met_console_timeend.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/timeEnd", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"trace()", description:"Outputs a stack trace to the console", syntax:"console.trace(label)", useage:"function myFunction() { myOtherFunction(); } function myOtherFunction() { console.trace(); }", url:"https://www.w3schools.com/jsref/met_console_trace.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/trace", type:"none", tag:"function", language:"JavaScript"},
{ category:"console", name:"warn()", description:"Outputs a warning message to the console", syntax:"console.warn(message)", useage:"console.warn('This is a warning');", url:"https://www.w3schools.com/jsref/met_console_warn.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/console/warn", type:"none", tag:"function", language:"JavaScript"},
{ category:"history", name:"back()", description:"Loads the previous URL in the history list", syntax:"history.back()", useage:"<button onclick = 'history.back()'>Go Back</button>", url:"https://www.w3schools.com/jsref/met_his_back.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/History/back", type:"none", tag:"function", language:"JavaScript"},
{ category:"history", name:"forward()", description:"Loads the next URL in the history list", syntax:"history.forward()", useage:"<button onclick = 'history.forward()'>Go Forward</button>", url:"https://www.w3schools.com/jsref/met_his_forward.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/History/forward", type:"none", tag:"function", language:"JavaScript"},
{ category:"history", name:"go()", description:"Loads a specific URL from the history list", syntax:"history.go(number)", useage:"<button onclick = 'history.go(-2)'>Go Back 2 Pages</button>", url:"https://www.w3schools.com/jsref/met_his_go.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/History/go", type:"none", tag:"function", language:"JavaScript"},
{ category:"history", name:"length", description:"Returns the number of URLs in the history list", syntax:"history.length", useage:"let length = history.length;", url:"https://www.w3schools.com/jsref/prop_his_length.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/History/length", type:"A Number, representing the number of entries in the session history", tag:"function", language:"JavaScript"},
{ category:"storage", name:"key()", description:"Returns the name of the nth key in the storage", syntax:"localStorage.key(index) or sessionStorage.key(index)", useage:"var x = localStorage.key(0);", url:"https://www.w3schools.com/jsref/met_storage_key.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/Storage/key", type:"A String, representing the name of the specified key", tag:"function", language:"JavaScript"},
{ category:"storage", name:"length", description:"Returns the number of data items stored in the Storage object", syntax:"localStorage.length or sessionStorage.length", useage:"var x = localStorage.length;", url:"https://www.w3schools.com/jsref/prop_storage_length.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/Storage/length", type:"A Integer, representing the number of stored items", tag:"function", language:"JavaScript"},
{ category:"storage", name:"getItem()", description:"Returns the value of the specified key name", syntax:"localStorage.getItem(keyname) or sessionStorage.getItem(keyname)", useage:"var x = localStorage.getItem('time');", url:"https://www.w3schools.com/jsref/met_storage_getitem.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem", type:"A String, representing the value of the specified key", tag:"function", language:"JavaScript"},
{ category:"storage", name:"setItem()", description:"Adds that key to the storage, or update that key's value if it already exists", syntax:"localStorage.setItem(keyname, value) or sessionStorage.setItem(keyname, value)", useage:"localStorage.setItem('mytime', Date.now());", url:"https://www.w3schools.com/jsref/met_storage_setitem.asp", url2:"https://collegeofscripting.weebly.com/", type:"A String, representing the inserted value", tag:"function", language:"JavaScript"},
{ category:"storage", name:"removeItem()", description:"Removes that key from the storage", syntax:"localStorage.removeItem(keyname) or sessionStorage.removeItem(keyname)", useage:"localStorage.removeItem('mytime');", url:"https://www.w3schools.com/jsref/met_storage_removeitem.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem", type:"none", tag:"function", language:"JavaScript"},
{ category:"storage", name:"clear()", description:"Empty all key out of the storage", syntax:"localStorage.clear() or sessionStorage.clear()", useage:"localStorage.clear();", url:"https://www.w3schools.com/jsref/met_storage_clear.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/Storage/clear", type:"none", tag:"function", language:"JavaScript"},
{ category:"geolocation", name:"coordinates", description:"Returns the position and altitude of the device on Earth", syntax:"gets", useage:"var x = ge('demo'); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = 'Geolocation is not supported by this browser.'; } }", url:"https://www.w3schools.com/jsref/prop_geo_coordinates.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationCoordinates", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"geolocation", name:"position", description:"Returns the position of the concerned device at a given time", syntax:"gets", useage:"var x = ge('demo'); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = 'Geolocation is not supported by this browser.'; } }", url:"https://www.w3schools.com/jsref/prop_geo_position.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"geolocation", name:"positionError", description:"Returns the reason of an error occurring when using the geolocating device", syntax:"In Progress", useage:"In Progress", url:"https://www.w3schools.com/jsref/api_geolocation.asp", url2:"https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPositionError", type:"In Progress", tag:"function", language:"JavaScript"},
{ category:"geolocation", name:"positionOptions", description:"Describes an object containing option properties to pass as a parameter of Geolocation.getCurrentPosition() and Geolocation.watchPosition()", syntax:"getCurrentPosition(success) getCurrentPosition(success, error) getCurrentPosition(success, error, options)", useage:"In Progress", url:"https://www.w3schools.com/jsref/api_geolocation.asp", url2:"https://collegeofscripting.weebly.com/", type:"In Progress", tag:"function", language:"JavaScript"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// lindenLanguage.js
let lindenLanguage =
[
{ name:"llAbs", description:"Tells you the absolute value of any integer number", syntax:"llAbs(integer number);", useage:"llAbs(-3);", url:"https://wiki.secondlife.com/wiki/LlAbs", url2:"https://collegeofscripting.weebly.com/", type:"returns an integer", tag:"function", category:"math", language:"Linden"},
{ name:"llAcos", description:"Tells you the ArcCosine of a number", syntax:"llAcos(float number);", useage:"llAcos(0.7);", url:"https://wiki.secondlife.com/wiki/LlAcos", url2:"https://collegeofscripting.weebly.com/", type:"returns a float, in radians", tag:"function", category:"math", language:"Linden"},
{ name:"llAddToLandBanList", description:"Adds person to the land ban list for a time. Forever is zero.", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAddToLandBanList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAddToLandPassList", description:"Adds person to the land pass list for a time. Forever is zero.", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAddToLandPassList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAdjustSoundVolume", description:"Changes the volume of attached sound.", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAdjustSoundVolume", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAgentInExperience", description:"Finds out if the specific person is in the script's experience.", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAgentInExperience", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAllowInventoryDrop", description:"Allows all users to add inventory items to a prim.", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAllowInventoryDrop", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAngleBetween", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAngleBetween", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llApplyImpulse", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlApplyImpulse", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llApplyRotationalImpulse", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlApplyRotationalImpulse", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAsin", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAsin", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAtan2", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAtan2", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAttachToAvatar", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAttachToAvatar", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAttachToAvatarTemp", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAttachToAvatarTemp", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAvatarOnLinkSitTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAvatarOnLinkSitTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAvatarOnSitTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAvatarOnSitTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAxes2Rot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAxes2Rot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llAxisAngle2Rot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlAxisAngle2Rot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llBase64ToInteger", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlBase64ToInteger", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llBase64ToString", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlBase64ToString", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llBreakAllLinks", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlBreakAllLinks", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llBreakLink", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlBreakLink", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCastRay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCastRay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCeil", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCeil", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llClearCameraParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlClearCameraParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llClearLinkMedia", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlClearLinkMedia", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llClearPrimMedia", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlClearPrimMedia", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCloseRemoteDataChannel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCloseRemoteDataChannel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCloud (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCloud", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCollisionFilter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCollisionFilter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCollisionSound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCollisionSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCollisionSprite (Broken)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCollisionSprite", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCreateCharacter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCreateCharacter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCreateKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCreateKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCreateLink", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCreateLink", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llCSV2List", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlCSV2List", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDataSizeKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDataSizeKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDeleteCharacter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDeleteCharacter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDeleteKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDeleteKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDeleteSubList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDeleteSubList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDeleteSubString", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDeleteSubString", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetachFromAvatar", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetachFromAvatar", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedGrab", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedGrab", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedGroup", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedGroup", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedLinkNumber", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedLinkNumber", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedOwner", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedOwner", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchBinormal", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchBinormal", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchFace", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchFace", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchNormal", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchNormal", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchST", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchST", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedTouchUV", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedTouchUV", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDetectedVel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDetectedVel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDialog", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDialog", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDie", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDie", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llDumpList2String", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlDumpList2String", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEdgeOfWorld", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEdgeOfWorld", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEjectFromLand", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEjectFromLand", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEmail", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEmail", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEscapeURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEscapeURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEuler2Rot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEuler2Rot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llEvade", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlEvade", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llExecCharacterCmd", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlExecCharacterCmd", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llFabs", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlFabs", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llFleeFrom", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlFleeFrom", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llFloor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlFloor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llForceMouselook", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlForceMouselook", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llFrand", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlFrand", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGenerateKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGenerateKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAccel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAccel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAgentInfo", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAgentInfo", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAgentLanguage", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAgentLanguage", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAgentList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAgentList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAgentSize", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAgentSize", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAlpha", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAlpha", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAndResetTime", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAndResetTime", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAnimation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAnimation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAnimationList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAnimationList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAnimationOverride", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAnimationOverride", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAttached", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAttached", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetAttachedList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetAttachedList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetBoundingBox", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetBoundingBox", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetCameraPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetCameraPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetCameraRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetCameraRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetCenterOfMass", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetCenterOfMass", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetClosestNavPoint", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetClosestNavPoint", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetColor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetColor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetCreator", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetCreator", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetDate", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetDate", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetDayLength", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetDayLength", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetDayOffset", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetDayOffset", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetDisplayName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetDisplayName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetEnergy", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetEnergy", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetEnv", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetEnv", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetEnvironment", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetEnvironment", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetExperienceDetails", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetExperienceDetails", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetExperienceErrorMessage", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetExperienceErrorMessage", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetForce", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetForce", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetFreeMemory", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetFreeMemory", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetFreeURLs", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetFreeURLs", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetGeometricCenter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetGeometricCenter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetGMTclock", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetGMTclock", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetHTTPHeader", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetHTTPHeader", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryCreator", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryCreator", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryNumber", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryNumber", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryPermMask", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryPermMask", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetInventoryType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetInventoryType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLandOwnerAt", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLandOwnerAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkMedia", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkMedia", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkNumber", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkNumber", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkNumberOfSides", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkNumberOfSides", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLinkPrimitiveParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLinkPrimitiveParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetListEntryType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetListEntryType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetListLength", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetListLength", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLocalPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLocalPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetLocalRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetLocalRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMass", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMass", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMassMKS", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMassMKS", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMaxScaleFactor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMaxScaleFactor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMemoryLimit", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMemoryLimit", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMinScaleFactor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMinScaleFactor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMoonDirection", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMoonDirection", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetMoonRotation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetMoonRotation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetNextEmail", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetNextEmail", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetNotecardLine", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetNotecardLine", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetNumberOfNotecardLines", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetNumberOfNotecardLines", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetNumberOfPrims", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetNumberOfPrims", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetNumberOfSides", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetNumberOfSides", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectAnimationNames", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectAnimationNames", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectDesc", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectDesc", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectDetails", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectDetails", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectMass", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectMass", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectPermMask", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectPermMask", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetObjectPrimCount", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetObjectPrimCount", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetOmega", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetOmega", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetOwner", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetOwner", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetOwnerKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetOwnerKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelDetails", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelDetails", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelFlags", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelFlags", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelMaxPrims", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelMaxPrims", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelMusicURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelMusicURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelPrimCount", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelPrimCount", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetParcelPrimOwners", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetParcelPrimOwners", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPermissions", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPermissions", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPermissionsKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPermissionsKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPhysicsMaterial", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPhysicsMaterial", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPrimitiveParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPrimitiveParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetPrimMediaParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetPrimMediaParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionAgentCount", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionAgentCount", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionCorner", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionCorner", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionDayLength", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionDayLength", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionDayOffset", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionDayOffset", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionFlags", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionFlags", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionFPS", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionFPS", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionMoonDirection", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionMoonDirection", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionMoonRotation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionMoonRotation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionSunDirection", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionSunDirection", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionSunRotation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionSunRotation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRegionTimeDilation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRegionTimeDilation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRootPosition", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRootPosition", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRootRotation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRootRotation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetScale", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetScale", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetScriptName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetScriptName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetScriptState", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetScriptState", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSimStats", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSimStats", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSimulatorHostname", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSimulatorHostname", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSPMaxMemory", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSPMaxMemory", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetStartParameter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetStartParameter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetStaticPath", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetStaticPath", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetStatus", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetStatus", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSubString", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSubString", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSunDirection", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSunDirection", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetSunRotation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetSunRotation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTextureOffset", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTextureOffset", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTextureRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTextureRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTextureScale", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTextureScale", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTime", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTime", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTimeOfDay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTimeOfDay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTimestamp", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTimestamp", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetTorque", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetTorque", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetUnixTime", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetUnixTime", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetUsedMemory", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetUsedMemory", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetUsername", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetUsername", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetVel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetVel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGetWallclock", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGetWallclock", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGiveInventory", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGiveInventory", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGiveInventoryList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGiveInventoryList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGiveMoney", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGiveMoney", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGodLikeRezObject (linden only)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGodLikeRezObject", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGround", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGround", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGroundContour", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGroundContour", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGroundNormal", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGroundNormal", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGroundRepel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGroundRepel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llGroundSlope", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlGroundSlope", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llHTTPRequest", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlHTTPRequest", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llHTTPResponse", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlHTTPResponse", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llInsertString", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlInsertString", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llInstantMessage", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlInstantMessage", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llIntegerToBase64", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlIntegerToBase64", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llJson2List", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlJson2List", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llJsonGetValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlJsonGetValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llJsonSetValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlJsonSetValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llJsonValueType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlJsonValueType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llKey2Name", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlKey2Name", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llKeyCountKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlKeyCountKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llKeysKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlKeysKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLinear2sRGB", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLinear2sRGB", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLinkParticleSystem", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLinkParticleSystem", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLinkSitTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLinkSitTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2CSV", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2CSV", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Float", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Float", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Integer", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Integer", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Json", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Json", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Key", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Key", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2List", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2List", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2ListStrided", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2ListStrided", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Rot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Rot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2String", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2String", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llList2Vector", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlList2Vector", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListen", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListen", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListenControl", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListenControl", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListenRemove", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListenRemove", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListFindList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListFindList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListInsertList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListInsertList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListRandomize", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListRandomize", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListReplaceList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListReplaceList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListSort", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListSort", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llListStatistics", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlListStatistics", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLoadURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLoadURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLog", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLog", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLog10", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLog10", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLookAt", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLookAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLoopSound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLoopSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLoopSoundMaster", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLoopSoundMaster", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llLoopSoundSlave", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlLoopSoundSlave", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMakeExplosion (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMakeExplosion", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMakeFire (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMakeFire", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMakeFountain (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMakeFountain", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMakeSmoke (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMakeSmoke", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llManageEstateAccess", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlManageEstateAccess", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMapDestination", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMapDestination", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMD5String", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMD5String", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMessageLinked", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMessageLinked", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMinEventDelay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMinEventDelay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llModifyLand", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlModifyLand", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llModPow", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlModPow", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llMoveToTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlMoveToTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llName2Key", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlName2Key", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llNavigateTo", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlNavigateTo", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llOffsetTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlOffsetTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llOpenRemoteDataChannel", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlOpenRemoteDataChannel", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llOverMyLand", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlOverMyLand", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llOwnerSay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlOwnerSay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llParcelMediaCommandList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlParcelMediaCommandList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llParcelMediaQuery", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlParcelMediaQuery", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llParseString2List", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlParseString2List", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llParseStringKeepNulls", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlParseStringKeepNulls", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llParticleSystem", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlParticleSystem", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPassCollisions", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPassCollisions", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPassTouches", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPassTouches", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPatrolPoints", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPatrolPoints", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPlaySound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPlaySound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPlaySoundSlave", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPlaySoundSlave", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPointAt (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPointAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPow", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPow", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPreloadSound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPreloadSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPursue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPursue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llPushObject", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlPushObject", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReadKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReadKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRefreshPrimURL (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRefreshPrimURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRegionSay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRegionSay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRegionSayTo", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRegionSayTo", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReleaseCamera (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReleaseCamera", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReleaseControls", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReleaseControls", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReleaseURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReleaseURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoteDataReply", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoteDataReply", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoteDataSetRegion (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoteDataSetRegion", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoteLoadScript (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoteLoadScript", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoteLoadScriptPin", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoteLoadScriptPin", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoveFromLandBanList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoveFromLandBanList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoveFromLandPassList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoveFromLandPassList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoveInventory", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoveInventory", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRemoveVehicleFlags", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRemoveVehicleFlags", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReplaceAgentEnvironment", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReplaceAgentEnvironment", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestAgentData", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestAgentData", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestDisplayName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestDisplayName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestExperiencePermissions", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestExperiencePermissions", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestInventoryData", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestInventoryData", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestPermissions", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestPermissions", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestSecureURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestSecureURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestSimulatorData", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestSimulatorData", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestUserKey", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestUserKey", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRequestUsername", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRequestUsername", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetAnimationOverride", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetAnimationOverride", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetLandBanList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetLandBanList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetLandPassList", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetLandPassList", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetOtherScript", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetOtherScript", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetScript", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetScript", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llResetTime", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlResetTime", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReturnObjectsByID", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReturnObjectsByID", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llReturnObjectsByOwner", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlReturnObjectsByOwner", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRezAtRoot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRezAtRoot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRezObject", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRezObject", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Angle", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Angle", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Axis", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Axis", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Euler", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Euler", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Fwd", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Fwd", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Left", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Left", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRot2Up", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRot2Up", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRotateTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRotateTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRotBetween", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRotBetween", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRotLookAt", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRotLookAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRotTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRotTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRotTargetRemove", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRotTargetRemove", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llRound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlRound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSameGroup", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSameGroup", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSay", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSay", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llScaleByFactor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlScaleByFactor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llScaleTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlScaleTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llScriptDanger", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlScriptDanger", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llScriptProfiler", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlScriptProfiler", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSendRemoteData", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSendRemoteData", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSensor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSensor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSensorRemove", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSensorRemove", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSensorRepeat", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSensorRepeat", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetAgentEnvironment", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetAgentEnvironment", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetAlpha", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetAlpha", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetAngularVelocity", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetAngularVelocity", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetAnimationOverride", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetAnimationOverride", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetBuoyancy", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetBuoyancy", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetCameraAtOffset", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetCameraAtOffset", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetCameraEyeOffset", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetCameraEyeOffset", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetCameraParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetCameraParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetClickAction", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetClickAction", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetColor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetColor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetContentType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetContentType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetDamage", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetDamage", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetForce", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetForce", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetForceAndTorque", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetForceAndTorque", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetHoverHeight", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetHoverHeight", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetInventoryPermMask (Linden only)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetInventoryPermMask", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetKeyframedMotion", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetKeyframedMotion", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkAlpha", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkAlpha", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkCamera", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkCamera", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkColor", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkColor", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkMedia", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkMedia", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkPrimitiveParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkPrimitiveParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkPrimitiveParamsFast", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkPrimitiveParamsFast", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLinkTextureAnim", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLinkTextureAnim", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetLocalRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetLocalRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetMemoryLimit", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetMemoryLimit", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetObjectDesc", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetObjectDesc", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetObjectName", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetObjectName", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetObjectPermMask (Linden Only)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetObjectPermMask", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetParcelMusicURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetParcelMusicURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPayPrice", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPayPrice", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPhysicsMaterial", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPhysicsMaterial", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPrimitiveParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPrimitiveParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPrimMediaParams", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPrimMediaParams", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetPrimURL (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetPrimURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetRegionPos", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetRegionPos", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetRemoteScriptAccessPin", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetRemoteScriptAccessPin", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetRot", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetRot", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetScale", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetScale", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetScriptState", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetScriptState", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetSitText", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetSitText", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetSoundQueueing", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetSoundQueueing", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetSoundRadius", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetSoundRadius", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetStatus", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetStatus", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetText", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetText", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetTexture", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetTexture", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetTextureAnim", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetTextureAnim", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetTimerEvent", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetTimerEvent", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetTorque", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetTorque", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetTouchText", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetTouchText", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVehicleFlags", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVehicleFlags", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVehicleFloatParam", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVehicleFloatParam", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVehicleRotationParam", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVehicleRotationParam", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVehicleType", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVehicleType", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVehicleVectorParam", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVehicleVectorParam", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSetVelocity", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSetVelocity", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSHA1String", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSHA1String", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llShout", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlShout", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSin", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSin", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSitOnLink", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSitOnLink", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSitTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSitTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSleep", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSleep", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSound (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSoundPreload (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSoundPreload", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSqrt", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSqrt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llsRGB2Linear", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlsRGB2Linear", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStartAnimation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStartAnimation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStartObjectAnimation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStartObjectAnimation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopAnimation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopAnimation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopObjectAnimation", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopObjectAnimation", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopHover", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopHover", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopLookAt", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopLookAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopMoveToTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopMoveToTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopPointAt (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopPointAt", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStopSound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStopSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStringLength", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStringLength", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStringToBase64", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStringToBase64", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llStringTrim", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlStringTrim", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llSubStringIndex", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlSubStringIndex", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTakeCamera (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTakeCamera", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTakeControls", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTakeControls", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTan", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTan", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTarget", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTarget", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTargetedEmail", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTargetedEmail", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTargetOmega", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTargetOmega", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTargetRemove", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTargetRemove", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTeleportAgent", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTeleportAgent", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTeleportAgentGlobalCoords", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTeleportAgentGlobalCoords", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTeleportAgentHome", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTeleportAgentHome", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTextBox", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTextBox", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llToLower", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlToLower", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llToUpper", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlToUpper", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTransferLindenDollars", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTransferLindenDollars", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTriggerSound", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTriggerSound", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llTriggerSoundLimited", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlTriggerSoundLimited", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llUnescapeURL", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlUnescapeURL", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llUnSit", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlUnSit", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llUpdateCharacter", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlUpdateCharacter", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llUpdateKeyValue", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlUpdateKeyValue", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llVecDist", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlVecDist", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llVecMag", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlVecMag", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llVecNorm", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlVecNorm", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llVolumeDetect", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlVolumeDetect", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llWanderWithin", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlWanderWithin", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llWater", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlWater", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llWhisper", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlWhisper", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llWind", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlWind", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llXorBase64", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlXorBase64", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llXorBase64Strings (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlXorBase64Strings", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"},
{ name:"llXorBase64StringsCorrect (Deprecated)", description:"in progress", syntax:"in progress", useage:"in progress", url:"https://wiki.secondlife.com/wiki/LlXorBase64StringsCorrect", url2:"https://collegeofscripting.weebly.com/", type:"in progress", tag:"function", category:"in progress", language:"Linden"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// mathematics.js
let mathematics =
[
{ title:`MATHEMATICS`, date:`01/01/2007 12:00 AM`, url:`https://collegeofscripting.weebly.com`, image:`https://logicscience.weebly.com/uploads/1/3/5/6/135653355/mathematics-1.png`, info:`texture`, tag:`book`, description:`math tutorial`},
{ title:`MATHEMATICS`, date:`01/02/2007 12:00 AM`, url:`https://collegeofscripting.weebly.com`, image:`https://logicscience.weebly.com/uploads/1/3/5/6/135653355/mathematics-2.png`, info:`texture`, tag:`book`, description:`math tutorial`},
{ title:`MATHEMATICS`, date:`01/03/2007 12:00 AM`, url:`https://collegeofscripting.weebly.com`, image:`https://logicscience.weebly.com/uploads/1/3/5/6/135653355/mathematics-3.png`, info:`texture`, tag:`book`, description:`math tutorial`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// ourVideoFiles.js
let ourVideoFiles =
[
{ title:"Central Records Complex Opens to House FBI Files", type:"mp4", date:"08/14/2020 12:00 AM", url:"https://www.youtube.com/watch?v=WsOFxqB3U3A", url2:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/central_records_complex_opens_to_house_fbi_files.mp4", tag:"personal", description:"personal", starttime:"00:00:05", endtime:"00:00:10", kind:"video"},
{ title:"FBI Special Agents Your Expertise Fits", type:"mp4", date:"03/10/2020 12:00 AM", url:"https://www.youtube.com/watch?v=8C973Mi8caQ", url2:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/fbi_special_agents_your_expertise_fits.mp4", tag:"personal", description:"personal", starttime:"00:00:11", endtime:"00:00:17", kind:"video"},
{ title:"Video Simulation Team", type:"mp4", date:"04/26/2011 12:00 AM", url:"https://www.youtube.com/watch?v=84bIBZFFVYk", url2:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/video_simulation_team.mp4", tag:"personal", description:"personal", starttime:"00:00:00", endtime:"00:00:20", kind:"video"},
{ title:"myGuitarMelody1", type:"mp3", date:"10/28/2020 12:00 AM", url:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/myguitarmelody1.mp3", url2:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/myguitarmelody1.mp3", tag:"personal", description:"personal", starttime:"00:00:00", endtime:"00:00:48", kind:"audio"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// petitoGabrielleInvestigation.js
let petitoGabrielleInvestigation =
[
{ date:`08/12/2021 12:00 PM`, note:`<b>August 12th</b> is the same day Petito and Laundrie had an encounter with police in Moab, Utah.`, summary:`Police in Utah pull Brian over with Gabrielle on August 12, 2021`, number:`0`, tag:`note`, newsArticleOne:`https://newyork.cbslocal.com/2021/09/18/gabby-petito-search-timeline-of-notable-dates-and-events/`},
{ date:`08/25/2021 12:00 AM`, note:`She last spoke with her family on <b>Aug. 25</b> from Wyoming’s Grand Teton National Park`, summary:`Last time Gabrielle spoke with family`, number:`0`, tag:`note`, newsArticleOne:`https://nypost.com/2021/09/19/gabby-petito-case-police-have-obtained-cell-tracking-data/`},
{ date:`08/30/2021 12:00 PM`, note:`In the last text from her phone to family on <b>Aug. 30</b>, Petito indicated that she ended up in Yosemite, about 900 miles away in California - though her mother is skeptical that she actually sent the message`, summary:`Last text from Gabrielle's phone`, number:`0`, tag:`note`, newsArticleOne:`https://nypost.com/2021/09/19/gabby-petito-case-police-have-obtained-cell-tracking-data/`},
{ date:`09/01/2021 12:00 AM`, note:`Police said Laundrie returned in the van alone to his home in North Port, Florida on <b>Sept 1</b>.`, summary:`Brian returned to his home in the van alone`, number:`0`, tag:`note`, newsArticleOne:`https://nypost.com/2021/09/19/gabby-petito-case-police-have-obtained-cell-tracking-data/`},
{ date:`09/11/2021 12:00 AM`, note:`Meanwhile. Petito’s family reported her missing <b>Sept. 11</b> after she lost contact with them.`, summary:`Gabrielle reported missing on Sept 11, 2021`, number:`0`, tag:`note`, newsArticleOne:`https://nypost.com/2021/09/19/gabby-petito-case-police-have-obtained-cell-tracking-data/`},
{ date:`09/18/2021 12:00 PM`, note:`Laundrie’s family has refused to let authorities talk to him and they claimed on <b>Saturday (09/18/2021)</b> that he had gone missing himself days earlier from their home.`, summary:`Brian reported missing`, number:`0`, tag:`note`, newsArticleOne:`https://nypost.com/2021/09/19/gabby-petito-case-police-have-obtained-cell-tracking-data/`},
{ date:`09/19/2021 12:00 PM`, note:`A body consistent with the description of Gabby Petito, the 22-year-old woman who went missing while on a cross-country road trip with her boyfriend, was discovered in the Bridger-Teton National Forest in Wyoming.`, summary:`Body found matching description of Gabrielle on Sept 19, 2021`, number:`0`, tag:`note`, newsArticleOne:`https://www.yahoo.com/gma/unidentified-body-found-near-area-213900218.html`},
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// rickyHattonInterview.js
let rickyHattonInterview =
[
{ title:"ABSOLUTE INSULT!` RICKY HATTON RESPONDS TO DEONTAY WILDERS CLAIMS HE HELPED TYSON FURY CHEAT!", date:"11/06/2020 12:00 AM", url:"https://www.youtube.com/embed/5HWFJxTy4R0", tag:"youtubeVideo", startTime:"00:00:33", endTime:"00:00:57", words:"Timecode <br> 00:00:33 to 00:00:57 <br> <br> Deontay Wilder is heard speaking on a video that Ricky Hatton is watching. <br> Deontay Wilder is heard saying: <br> <b>So in the first fight, when Ricky Hatton was pulling down your glove, to put your fist in an improper position-</b><br><br> Ricky Hatton says in response:<br> <b>I wasn`t pulling down the glove.<br> I was pulling his gloves on.<br> Cause Tyson flicks the punches.<br> He flicks his shots.<br> Pulling the glove, pulling the glove back on for him.</b>", name:"Ricky Hatton", description:"Interview", },
{ title:"`ABSOLUTE INSULT!` RICKY HATTON RESPONDS TO DEONTAY WILDER`S CLAIMS HE HELPED TYSON FURY CHEAT!", date:"11/06/2020 12:00 AM", url:"https://www.youtube.com/embed/5HWFJxTy4R0", tag:"youtubeVideo", startTime:"00:06:33", endTime:"00:07:07", words:"Timecode <br> 00:06:33 <br> <br> Ricky Hatton says <br> <b>So, that`s why Tyson, when Tyson, you know, he went, pull me glove up. <br> <br> Said pull me glove up. <br> <br> He didn`t say get that horseshoe out and stick that in it man. <br> You know what I mean? <br> <br> He said pull me glove up, because he doesn`t like it as fastened right tightly round his wrist, because he, he likes to flick the shots. <br> You know, he`s not, ah, you know, he doesn`t punch with his whole body, Tyson, like certain fighters. <br> He likes to flick and jab and poke his jab and leave it there and that`s why he doesn`t like, he likes mobility in his wrist rather than having it locked, yeah.</b>", name:"Ricky Hatton", description:"Interview", },
{ title:"`ABSOLUTE INSULT!` RICKY HATTON RESPONDS TO DEONTAY WILDER`S CLAIMS HE HELPED TYSON FURY CHEAT!", date:"11/06/2020 12:00 AM", url:"https://www.youtube.com/embed/5HWFJxTy4R0", tag:"youtubeVideo", startTime:"00:07:19", endTime:"00:07:30", words:"Timecode <br> 00:07:19 to 00:07:30 <br> <br> Ricky Hatton Says: <br> <b>Yeah, and it`s like, I think um, he was, you know Deontay was you know having a a dig at me, you know indirectly, cause I was the individual pulling the glove up, but I mean- </b>", name:"Ricky Hatton", description:"Interview", },
{ title:"`ABSOLUTE INSULT!` RICKY HATTON RESPONDS TO DEONTAY WILDER`S CLAIMS HE HELPED TYSON FURY CHEAT!", date:"11/06/2020 12:00 AM", url:"https://www.youtube.com/embed/5HWFJxTy4R0", tag:"youtubeVideo", startTime:"00:24:45", endTime:"00:25:14", words:"Timecode <br> 24:45 to 25:14 <br> <br> Ricky Hatton says: <br> <b>I know I keep repeating myself about the style of Tyson, you know, he flicks his jab, so if you flick your jab, what happens to your glove? <br> It falls down your hand. <br> Flicking the jab, flicking the jab, flicking the, flicking the. <br> Every round I had to nearly pull it up. <br> Pull the gloves up Rick. <br> Pull the gloves a bit man. <br> Because he`s, that`s the way his style is, he flicks it. <br> Come on, puttin a, puttin a thing in his glove, honest to God.</b>", name:"Ricky Hatton", description:"Interview", }
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// scienceImages.js
let scienceImages =
[
{ title:"Electricity is the flow of electrons around a circuit", date:"10/07/2020 12:00 AM", url:"http://ffden-2.phys.uaf.edu/webproj/211_fall_2016/Sterling_Stasak/Sterling_Stasak/Physics%20of%20Electricity.html", image:"https://cdn4.explainthatstuff.com/electronflow.png", info:"website", tag:"electricity", description:"electron flow"},
{ title:"What is Electric Current? Definition & Direction of flow of current", date:"08/01/2018 12:00 AM", url:"https://www.youtube.com/watch?v=kAL17fHlv4U", image:"https://i.ytimg.com/vi/kAL17fHlv4U/maxresdefault.jpg", info:"youtubeVideo", tag:"electricity", description:"electron flow"},
{ title:"Current Electricity and Electrical Potential", date:"09/08/2010 12:00 AM", url:"http://paulzhang-sph3u.blogspot.com/2010/09/current-electricity-and-electrical.html", image:"https://1.bp.blogspot.com/_kJYnXmViRmg/TIl-IlFDpsI/AAAAAAAAAAQ/fWFfGCZBiXI/s1600/electric+current.jpg", info:"website", tag:"electricity", description:"electron flow"},
{ title:"Electricity Simplified", date:"01/01/2001 12:00 AM", url:"https://docireport.org/2013/08/17/electricity-simplified/", image:"https://docireport.files.wordpress.com/2013/08/electron-flow.jpg", info:"website", tag:"electricity", description:"electron flow"},
{ title:"DIY - How to Build a mini electric motor", date:"07/27/2017 12:00 AM", url:"https://www.youtube.com/watch?v=Xnc4oLHZ438", image:"https://i.ytimg.com/vi/Xnc4oLHZ438/maxresdefault.jpg", info:"youtubeVideo", tag:"electricity", description:"electric motor"},
{ title:"Rotation electric motor, easy homemade", date:"02/04/2013 12:00 AM", url:"https://www.youtube.com/watch?v=WKklyuzghQg", image:"https://i.ytimg.com/vi/WKklyuzghQg/maxresdefault.jpg", info:"youtubeVideo", tag:"electricity", description:"electric motor"},
{ title:"How to make an electric motor homemade", date:"08/10/2014 12:00 AM", url:"https://www.youtube.com/watch?v=kkXUmex-fy4", image:"https://i.ytimg.com/vi/kkXUmex-fy4/maxresdefault.jpg", info:"youtubeVideo", tag:"electricity", description:"electric motor"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// socialMediaEvidence.js
let socialMediaEvidence =
[
{ title:"Jeffrey Epstein hosted Bill Clinton on his private island, documents reveal", date:"07/31/2020 03:05 AM", url:"https://nypost.com/2020/07/31/jeffrey-epstein-hosted-bill-clinton-on-private-island-court-docs/", info:"Witness Testimony", image:"https://nypost.com/wp-content/uploads/sites/2/2020/07/clinton-epstein.jpg?quality=90&strip=all&w=1236&h=820&crop=1", tag:"twitter", description:"epstein", probability:"98"},
{ title:"Bill Clinton visited Jeffrey Epstein's private island, unsealed court documents suggest", date:"07/31/2020 12:00 AM", url:"https://www.foxnews.com/us/bill-clinton-visited-jeffrey-epsteins-private-island-unsealed-court-documents-suggest", info:"testimony", image:"https://a57.foxnews.com/cf-images.us-east-1.prod.boltdns.net/v1/static/694940094001/a178ccca-ad16-4650-9e23-b520d8f99642/c0ebbece-df07-4bcf-852b-2e84318ee934/1280x720/match/931/524/image.jpg?ve=1&tl=1", tag:"twitter", description:"epstein", probability:"97"},
{ title:"MIT Technology Review @techreview", date:"07/31/2020 02:55 PM", url:"https://twitter.com/techreview/status/1289273594761994241", info:"The pandemic has rapidly grown the presence of QAnon and the spread of its conspiracy theories. If we stand any hope of stopping it, online platforms must do much more than fact checks and account bans.", image:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/mit_orig.jpg", tag:"twitter", description:"censorship", probability:"99"},
{ title:"Save the Children", date:"08/01/2020 12:04 AM", url:"https://twitter.com/i/status/1289411729265393664", info:"HUMANITY IS ALIVE", image:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/save_orig.jpg", tag:"twitter", description:"epstein", probability:"100"},
{ title:"Thousands of protesters against German coronavirus restrictions converge in Berlin", date:"08/01/2020 08:31 AM", url:"https://twitter.com/AP/status/1289539152258662402", info:"German People unite for freedom", image:"https://collegeofscripting.weebly.com/uploads/6/4/4/8/64482293/germanprotest_orig.jpg", tag:"twitter", description:"freedom", probability:"100"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// techVideos.js
let techVideos =
[
{ title:"How To Make a Water Pump From DC Motor at Home | DC Motor Ideas", date:"03/31/2020 12:00 AM", url:"https://www.youtube.com/embed/qnhReMd7dAk", tag:"youtubeVideo", description:"water pump"},
{ title:"Simple Homemade DIY Water PUMP", date:"09/22/2020 12:00 AM", url:"https://www.youtube.com/embed/9fwo_VEMKos", tag:"youtubeVideo", description:"water pump"},
{ title:"How To Make Water Pump 12V At Home/Centrifugal/WaterProof/PROPELLER BIG 60mm/775/288W/V14", date:"08/11/2020 12:00 AM", url:"https://www.youtube.com/embed/JS828t-63HI", tag:"youtubeVideo", description:"water pump"},
{ title:"Powerful Homemade Electric Motor (Physics Explained)", date:"04/10/2016 12:00 AM", url:"https://www.youtube.com/embed/nw1JDYY3zfA", tag:"youtubeVideo", description:"electric motor"},
{ title:"The First Electric Motor", date:"02/07/2015 12:00 AM", url:"https://www.youtube.com/embed/8LTP49d7KF8", tag:"youtubeVideo", description:"electric motor"},
{ title:"How to make a air pump at home", date:"07/12/2019 12:00 AM", url:"https://www.youtube.com/embed/KgG-GjF0c8o", tag:"youtubeVideo", description:"air pump"},
{ title:"How To Make a Mini Air Pump using DC Motor", date:"11/18/2019 12:00 AM", url:"https://www.youtube.com/embed/7f-FrBc6j38", tag:"youtubeVideo", description:"air pump"},
{ title:"How to Make a Matchbox Microphone", date:"02/03/2015 12:00 AM", url:"https://www.youtube.com/embed/yj-wkw98j7Q", tag:"youtubeVideo", description:"microphone"},
{ title:"How to Make Microphone using Pencil Nobs and Match Box", date:"04/22/2017 12:00 AM", url:"https://www.youtube.com/embed/3weyFhg9jsM", tag:"youtubeVideo", description:"microphone"},
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// theNews.js
let theNews =
[
{ headline:`Bill Gates Met With Jeffrey Epstein Many Times, Despite His Past`, date:`10/12/2019 12:00 AM`, url:`https://www.nytimes.com/2019/10/12/business/jeffrey-epstein-bill-gates.html`, tag:`news`, description:`epstein`},
{ headline:`Ghislaine Maxwell was a faithful lapdog to Jeffrey Epstein, wanted to marry him, royal cousin claims`, date:`07/06/2020 12:00 AM`, url:`https://www.foxnews.com/entertainment/ghislaine-maxwell-jeffrey-epstein-christina-oxenberg-prince-andrew`, tag:`news`, description:`epstein`},
{ headline:`Massachusetts Legislature Overrides Governors Veto, Allowing Minors to Obtain Abortions without Parental Consent`, date:`01/18/2021 02:23 PM`, url:`https://www.nationalreview.com/corner/massachusetts-legislature-overrides-governors-veto-allowing-minors-to-obtain-abortions-without-parental-consent/`, tag:`news`, description:`crimes against humanity`},
{ headline:`New York Democrats bill allowing governor to detain individuals dangerous to public health sparks backlash`, date:`01/03/2021 12:00 AM`, url:`https://www.foxnews.com/politics/new-york-bill-a416-detainment-assembly-ny`, tag:`news`, description:`constitution violation`},
{ headline:`Bidens executive order unlevels the playing field for girls`, date:`01/21/2021 08:12 PM`, url:`https://nypost.com/2021/01/21/bidens-exec-order-unlevels-the-playing-field-for-girls/`, tag:`news`, description:`executive order`},
{ headline:`More hand sanitizers identified for methanol risk and added to FDA list of ones to avoid`, date:`08/04/2020 12:11 PM`, url:`https://www.usatoday.com/story/money/2020/08/04/hand-sanitizer-recalls-methanol-risk-fda-warning-coronavirus/5581182002/`, tag:`news`, description:`hand soap`},
{ headline:`Covid-19 mask safety: Two or three layers best to protect against virus, study finds`, date:`07/24/2020 07:39 AM`, url:`https://www.cnn.com/2020/07/23/health/covid-mask-layers-wellness/index.html`, tag:`news`, description:`mask`},
{ headline:`CDC post says to wear a mask with 2 or more layers of fabric over the nose and mouth.`, date:`01/16/2021 04:29 PM`, url:`https://twitter.com/CDCgov/status/1350555688683134985`, tag:`news`, description:`mask`},
{ headline:`Heres how you can be forced to get the Covid vaccine in the U.S.`, date:`04/01/2021 05:08 PM`, url:`https://www.cnbc.com/2021/04/01/can-i-be-forced-to-get-the-covid-vaccine.html`, tag:`news`, description:`vaccines`},
{ headline:`Smallpox virus squads and the mandatory vaccinations upheld by the Supreme Court`, date:`04/01/2021 04:36 PM`, url:`https://www.washingtonpost.com/history/2021/04/01/vaccine-supreme-court-smallpox-covid/`, tag:`news`, description:`vaccines`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// theNotes.js
let theNotes =
[
{ note:"Here is a simple Note.", date:"08/22/1998 12:00 AM", number:"1", tag:"note"},
{ note:"Here is the second note.", date:"08/29/2018 12:00 AM", number:"2", tag:"note"},
{ note:"Here is the third note.", date:"09/07/2019 12:00 AM", number:"3", tag:"note"},
{ note:"Here is the fourth note.", date:"10/16/2020 10:19 AM", number:"4", tag:"note"}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// videoEvidence.js
let videoEvidence =
[
{ title:`Event 201 Pandemic Exercise: Highlights Reel`, date:`11/04/2019 12:00 AM`, url:`https://www.youtube.com/embed/AoLw-Q8X174`, tag:`youtubeVideo`, description:`exercise`},
{ title:`Video footage shows massive explosion in Tianjin, China`, date:`08/12/2015 12:00 AM`, url:`https://www.youtube.com/embed/qARRLogg38k`, tag:`youtubeVideo`, description:`important`},
{ title:`Najaf , Iraq explosion video`, date:`08/06/2020 12:00 AM`, url:`https://www.youtube.com/embed/YARLD34YiAY`, tag:`youtubeVideo`, description:`important`},
{ title:`HD footage shows new angle of blast that rocked Beirut, Lebanon`, date:`08/09/2020 12:00 AM`, url:`https://www.youtube.com/embed/F-vGkIKxGAg`, tag:`youtubeVideo`, description:`important`}
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian// videoInvestigator.js
let bdaBoxingComments =
[
{ title:"Lomachenko fans making excuses like the LDBC/Wilder fanboys?", date:"10/21/2020 12:00 AM", url:"https://www.youtube.com/embed/JZpvDUeUU24", tag:"youtubeVideo", startTime:"00:04:20", endTime:"00:05:20", description:"shoulder excuse", words:"BDA cites the shoulder injury excuse. BDA attempts to excuse the excuse by citing the source of the report.", name:"BDA", },
{ title:"Lomachenko fans making excuses like the LDBC/Wilder fanboys?", date:"10/21/2020 12:00 AM", url:"https://www.youtube.com/embed/JZpvDUeUU24", tag:"youtubeVideo", startTime:"00:04:44", endTime:"00:05:44", description:"funny", words:"Bucho claims that he found NO channels making excuses for Lomachenko. Bucho name calls any person making excuses for Lomachenko, as PSYCHOS. Bucho says there are a lot of PSYCHOS and redefines channels to mean: MAJOR Boxing Channels.", name:"Bucho", },
{ title:"Lomachenko fans making excuses like the LDBC/Wilder fanboys?", date:"10/21/2020 12:00 AM", url:"https://www.youtube.com/embed/JZpvDUeUU24", tag:"youtubeVideo", startTime:"00:06:48", endTime:"00:07:48", description:"shoulder excuse", words:"BDA cites the shoulder injury excuse. BDA attempts to excuse the excuse by citing the source of the report. BDA also attempts to excuse the excuse by claiming that the excuse had to be announced or else Lomachenko HATERS, would call Lomachenko a LIAR, for not citing the excuse.", name:"BDA", }
];
//--//
// Dedicated to God the Father
// All Rights Reserved Christopher Andrew Topalian Copyright 2000-2024
// https://github.com/ChristopherTopalian
// https://github.com/ChristopherAndrewTopalian
</script>
</head>
<body onload = "whenLoaded();">
</body>
</html>