//these are the arrays for consonants
var CONSONANTS = [
["b", "bb"],
["d", "dd", "ed"],
["f", "ff", "ph", "gh", "lf", "ft"],
["g", "gg", "gh", "gu", "gue"],
["h", "wh"],
["j", "ge", "g", "dge", "di", "gg"],
["k", "c", "ch", "cc", "lk", "qu" , "q", "ck", "x"],
["l", "ll"],
["m", "mm", "mb", "mn", "lm"],
["n", "nn", "kn", "gn", "pn"],
["p", "pp"],
["r", "rr", "wr", "rh"],
["s", "ss", "c", "sc", "ps", "st", "ce", "se"],
["t", "tt", "th", "ed"],
["v", "f", "ph", "ve"],
["w", "wh", "u", "o"],
["y", "i", "j"],
["z", "zz", "s", "ss", "x", "ze", "se"]
];

//these are the vowel arrays
var VOWELS = [
["a", "ai", "au"],
[ "a", "ai", "eigh", "aigh", "ay", "er", "et", "ei", "au", "ae", "ea", "ey"],
["e", "ea", "u", "ie", "ai", "a", "eo", "ei", "ae", "ay"],
["e", "ee", "ea", "y", "ey", "oe", "ie", "i", "ei", "eo", "ay"],
["i", "e", "o", "u", "ui", "y", "ie"],
["i", "y", "igh", "ie", "uy", "ye", "ai", "is", "eigh", "i_e"],
["o", "a", "ho", "au", "aw", "ough"],
["o", "oa", "oe", "ow", "ough", "eau", "oo", "ew"],
["o", "oo", "u", "ou"],
["u", "o", "oo", "ou"],
["o", "oo", "ew", "ue", "oe", "ough", "ui", "oew", "ou"],
["u", "ew", "iew", "yu", "ul", "eue", "eau", "ieu", "eu"],
["oi", "oy", "uoy"],
["ow", "ou", "ough"],
["a", "er", "i", "ar", "our", "or", "e", "ur", "re", "eur"]
];

//these are the rhotic vowel cluster arrays
var RHOTIC_CLUSTERS = [
["air", "are", "ear", "ere", "eir", "ayer"],
["a", "ar", "au", "er", "ear"],
["ir", "er", "ur", "ear", "or", "our", "yr"],
["aw", "a", "or", "oor", "ore", "oar", "our", "augh", "ar", "ough", "au"],
["ear", "eer", "ere", "ier"],
["ure", "our"]
];

//these are the digraph arrays
var DIGRAPHS = [
["s", "si", "z"],
["ch", "tch", "tu", "ti", "te"],
["sh", "ce", "s", "ci", "si", "ch", "sci", "ti"],
["th"],
["ng", "n", "ngue"]
];

var PHONEMES = [
 CONSONANTS,
 DIGRAPHS,
 VOWELS,
 RHOTIC_CLUSTERS
 ];

var characters = Math.floor((Math.random() * 6) + 1) + Math.floor((Math.random() * 4) + 1) + 2;

var charname = [];
var CLUSTER = [];
var GROUP = [];
var GRAPHEME_CLUSTER = [];
var LEX_UNIT = [];
var COUNTER = [];
var charlength = []

for (var i = 0; i < characters; i++) {
 if (i === 0){
var CLUSTER = Math.floor((Math.random() * 4));
var GROUP = PHONEMES[CLUSTER];
var GRAPHEME_COUNTER = Math.floor((Math.random() * GROUP.length));
var GRAPHEME_CLUSTER = GROUP[GRAPHEME_COUNTER];
var LEX_UNIT = GRAPHEME_CLUSTER[0];
charname.push(LEX_UNIT);
charlength = charname.join("");
var i = ((charlength.length) + 1);
console.log(CLUSTER)
if (CLUSTER > 1 ){
 var COUNTER = 1
}
else {
 var COUNTER = 0
}
 }
 else {
if (COUNTER > 0 ){
 var CLUSTER = Math.floor((Math.random() * 1));
 var GROUP = PHONEMES[CLUSTER];
 var GRAPHEME_COUNTER = Math.floor((Math.random() * GROUP.length));
 var GRAPHEME_CLUSTER = GROUP[GRAPHEME_COUNTER];
 var LEX_NUMBER = Math.floor((Math.random() * GRAPHEME_CLUSTER.length));
 var LEX_UNIT = GRAPHEME_CLUSTER[LEX_NUMBER];
 charname.push(LEX_UNIT);
 var COUNTER = 0;
 charlength = charname.join("");
 var i = ((charlength.length) + 1);
}
else {
 var CLUSTER = Math.floor((Math.random() * 1) + 2);
 var GROUP = PHONEMES[CLUSTER];
 var GRAPHEME_COUNTER = Math.floor((Math.random() * GROUP.length));
 var GRAPHEME_CLUSTER = GROUP[GRAPHEME_COUNTER];
 var LEX_NUMBER = Math.floor((Math.random() * GRAPHEME_CLUSTER.length));
 var LEX_UNIT = GRAPHEME_CLUSTER[LEX_NUMBER];
 charname.push(LEX_UNIT);
 var COUNTER = 1;
 charlength = charname.join("");
 var i = ((charlength.length) + 1);
}
 }
}

charname=charname.join("");
console.log(charname)