function getRndItem(field) { var index = Math.floor(field.length*Math.random()) return field[index]; } function getRandomIon() { return getRndItem(ionts); } function getRandomElement() { var index = Math.floor(elements.length*Math.random()) return elements[index]; } function getFormula(ion) { var out = ion.label + "" + ion.charge.replace("-","−") + "" return out; } function getValenceCount(element) { var valence = element.valence.trim(); if (valence == "") return 0; var orbitals = valence.split(/\s+/); var count = 0; for (var i = 0; i < orbitals.length; i++) { var orbCount = parseInt(orbitals[i].substring(2), 10); count += orbCount; } return count; } function getFullCount(ion) { return getElCount(ion.full); } function getElCount(text) { var orbitals = text.trim().split(/\s+/); var count = 0; for (var i = 0; i < orbitals.length; i++) { var orbCount = parseInt(orbitals[i].substring(2), 10); count += orbCount; } return count; } function getFullConfig(ion) { return getHTMLFull(ion) } function getHTMLValence(element) { return getHTMLElconfig(element.valence); } function getHTMLFull(element) { return getHTMLElconfig(element.full); } function getHTMLElconfig(text) { var orbitals = text.trim().split(/\s+/); var out = []; for (var i = 0; i < orbitals.length; i++) { out.push(orbitals[i].replace(/(\d[spdfg])(\d+)/g, "$1$2")); } return out.join(" "); }