function init(form) { form.Samples.selectedIndex=1; generate_input(form, form.Samples.options[form.Samples.selectedIndex].text); generate(form); } function generate(form) { form.outtext.value = "" str = form.intext.value + " " nchars = str.length str = str + str for (i = 0; i < form.level.length; i++) { if (form.level[i].checked) { lev = parseInt(form.level[i].value) } } for (i = 0; i < 1000; i++) { ichar = Math.floor(nchars * Math.random()) chr = str.charAt(ichar) if ((chr >= "A") && (chr <= "Z")) break } form.outtext.value = form.outtext.value + str.substring(ichar, ichar + lev) target = str.substring(ichar + 1, ichar + lev) for (i = 0; i < 1200; i++) { if (lev == 1) { chr = str.charAt(Math.floor(nchars * Math.random())) } else { nmatches = 0 j = -1 while (true) { j = str.indexOf(target, j + 1) if ((j < 0) || (j >= nchars)) { break } else { nmatches++ } } imatch = Math.floor(nmatches * Math.random()) nmatches = 0 j = -1 while (true) { j = str.indexOf(target, j + 1) if ((j < 0) || (j >= nchars)) { break } else if (imatch == nmatches) { chr = str.charAt(j + lev - 1) break } else { nmatches++ } } } form.outtext.value = form.outtext.value + chr if (lev > 1) { target = target.substring(1, lev - 1) + chr } } }