demonymGen.js (8085B)
1 var nm1 = ["b", "c", "d", "f", "g", "h", "i", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z", "", "", "", "", ""]; 2 var nm2 = ["a", "e", "o", "u"]; 3 var nm3 = ["br", "cr", "dr", "fr", "gr", "pr", "str", "tr", "bl", "cl", "gl", "pl", "sl", "sc", "sk", "sm", "sn", "sp", "st", "sw", "ch", "sh", "th", "wh"]; 4 var nm4 = ["a", "e", "o", "u", "a", "e", "o", "u", "a", "e", "o", "u", "a", "e", "o", "u", "ae", "ai", "ao", "au", "a", "ay", "ea", "ei", "eo", "eu", "e", "ey", "ua", "ue", "ui", "uo", "u", "uy", "ia", "ie", "iu", "io", "iy", "oa", "oe", "ou", "oi", "o", "oy"]; 5 var nm5 = ["stan", "dor", "vania", "nia", "lor", "cor", "dal", "bar", "sal", "ra", "la", "lia", "jan", "rus", "ze", "tan", "wana", "sil", "so", "na", "le", "bia", "ca", "ji", "ce", "ton", "ssau", "sau", "sia", "ca", "ya", "ye", "yae", "tho", "stein", "ria", "nia", "burg", "nia", "gro", "que", "gua", "qua", "rhiel", "cia", "les", "dan", "nga"]; 6 var nm6 = ["ia", "a", "en", "ar", "istan", "aria", "ington", "ua", "ijan", "ain", "ium", "us", "esh", "os", "ana", "il", "ad", "or", "ea", "eau", "ax", "on", "ana", "ary", "ya", "ye", "yae", "ait", "ein", "urg", "al", "ines", "ela"]; 7 var vowel = ["a", "e", "i", "o", "u", "y"]; 8 var dVowel = ["aa", "ae", "ai", "ao", "ae", "ea", "ee", "ei", "eo", "eu", "ia", "ie", "ii", "io", "iu", "oa", "oe", "oi", "oo", "ou", "ua", "ue", "ui", "uo", "uu"]; 9 var ranNames = []; 10 var br = ""; 11 var cust = ""; 12 13 function nameGen() { 14 $('#placeholder').css('textTransform', 'capitalize'); 15 var endings = ["n", "an", "ian", "anian", "nian", "in", "ine", "ite", "r", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "iot", "iote", "asque", "gian", "onian", "vian"]; 16 var endingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"]; 17 var endingNoSplice = ["nan", "nian", "nin", "no", "ne", "nsian", "lese", "vese", "nese", "gian", "vian", "lian"]; 18 var cEndingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"]; 19 var cEndingNoSplice = ["n", "an", "an", "anian", "nian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "ot", "ote", "asque", "gian", "onian", "vian"]; 20 var vowelLast = "no"; 21 var dVowelLast = "no"; 22 var element = document.createElement("div"); 23 element.setAttribute("id", "result"); 24 for (j = 0; j < 10; j++) { 25 if (j < 2) { 26 rnd = (Math.random() * nm2.length | 0); 27 rnd2 = (Math.random() * nm3.length | 0); 28 rnd3 = (Math.random() * nm6.length | 0); 29 ranNames[j] = nm2[rnd] + nm3[rnd2] + nm6[rnd3]; 30 } else if (j < 4) { 31 rnd = (Math.random() * nm3.length | 0); 32 rnd2 = (Math.random() * nm4.length | 0); 33 rnd3 = (Math.random() * nm5.length | 0); 34 ranNames[j] = nm3[rnd] + nm4[rnd2] + nm5[rnd3]; 35 } else if (j < 6) { 36 rnd = (Math.random() * nm1.length | 0); 37 rnd2 = (Math.random() * nm2.length | 0); 38 rnd3 = (Math.random() * nm3.length | 0); 39 rnd4 = (Math.random() * nm6.length | 0); 40 ranNames[j] = nm1[rnd] + nm2[rnd2] + nm3[rnd3] + nm6[rnd4]; 41 } else if (j < 8) { 42 rnd = (Math.random() * nm1.length | 0); 43 rnd2 = (Math.random() * nm2.length | 0); 44 rnd3 = (Math.random() * nm3.length | 0); 45 rnd5 = (Math.random() * cEndingSplice.length | 0); 46 ranNames[j] = nm1[rnd] + nm2[rnd2] + nm3[rnd3] + cEndingSplice[rnd5]; 47 } else { 48 rnd = (Math.random() * nm3.length | 0); 49 rnd2 = (Math.random() * nm4.length | 0); 50 rnd3 = (Math.random() * nm1.length | 0); 51 rnd4 = (Math.random() * cEndingSplice.length | 0); 52 ranNames[j] = nm3[rnd] + nm4[rnd2] + nm1[rnd3] + cEndingSplice[rnd4]; 53 } 54 } 55 for (i = 0; i < 10; i++) { 56 if ($('#custName').is(':checked')) { 57 cust = $(".custName").val(); 58 } else { 59 cust = ranNames[i]; 60 } 61 custLast = cust.slice(-1); 62 custLastTwo = cust.slice(-2); 63 for (j = 0; j < vowel.length; j++) { 64 if (custLast === vowel[j]) { 65 vowelLast = "yes"; 66 cEndingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"]; 67 cEndingNoSplice = ["n", "an", "an", "anian", "nian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "lese", "vese", "nese", "i", "ic", "ot", "ote", "asque", "gian", "onian", "vian"]; 68 } else { 69 vowelLast = "no"; 70 } 71 } 72 for (k = 0; k < dVowel.length; k++) { 73 if (custLastTwo === dVowel[k]) { 74 dVowelLast = "yes"; 75 endingSplice = ["an", "ian", "anian", "in", "ine", "ite", "er", "eno", "ino", "ish", "ene", "ensian", "ard", "ese", "i", "ic", "iot", "iote", "asque", "onian"]; 76 endingNoSplice = ["nan", "nian", "nin", "no", "ne", "nsian", "lese", "vese", "nese", "gian", "vian", "lian"]; 77 } else { 78 dVowelLast = "no"; 79 } 80 } 81 var cRan = (Math.random() * cEndingNoSplice.length | 0); 82 var ran = (Math.random() * endingNoSplice.length | 0); 83 var csRan = (Math.random() * cEndingSplice.length | 0); 84 var sran = (Math.random() * endingSplice.length | 0); 85 if (vowelLast === "yes") { 86 if (i < 5) { 87 names = cust.slice(0, -1) + endingSplice[sran]; 88 endingSplice.splice(sran, 1); 89 } else { 90 names = cust.slice(0, -1) + endingNoSplice[ran]; 91 endingNoSplice.splice(ran, 1); 92 } 93 } else if (dVowelLast === "yes") { 94 if (i < 5) { 95 if (cust.length < 5) { 96 names = cust.slice(0, -1) + endingSplice[cran]; 97 endingSplice.splice(sran, 1); 98 } else { 99 names = cust.slice(0, -2) + cEndingSplice[csRan]; 100 cEndingSplice.splice(csRan, 1); 101 } 102 } else { 103 if (cust.length < 5) { 104 names = cust.slice(0, -1) + endingSplice[cran]; 105 endingSplice.splice(sran, 1); 106 } else { 107 names = cust.slice(0, -2) + cEndingNoSplice[cRan]; 108 cEndingNoSplice.splice(cRan, 1); 109 } 110 } 111 } else { 112 if (i < 4) { 113 names = cust + endingSplice[sran]; 114 endingSplice.splice(sran, 1); 115 } else if (i < 6) { 116 names = cust.slice(0, -1) + endingSplice[sran]; 117 endingSplice.splice(sran, 1); 118 } else if (i < 8) { 119 if (cust.length < 5) { 120 names = cust.slice(0, -1) + endingSplice[sran]; 121 endingSplice.splice(sran, 1); 122 } else { 123 names = cust.slice(0, -2) + endingSplice[sran]; 124 endingSplice.splice(sran, 1); 125 } 126 } else { 127 if (cust.length < 5) { 128 names = cust.slice(0, -1) + endingSplice[sran]; 129 endingSplice.splice(sran, 1); 130 } else { 131 names = cust.slice(0, -3) + endingSplice[sran]; 132 endingSplice.splice(sran, 1); 133 } 134 } 135 } 136 br = document.createElement('br'); 137 element.appendChild(document.createTextNode(names)); 138 element.appendChild(br); 139 } 140 if (document.getElementById("result")) { 141 document.getElementById("placeholder").removeChild(document.getElementById("result")); 142 } 143 document.getElementById("placeholder").appendChild(element); 144 }