Yveltal / MapleStory 2 New Leaf Survey Fairfight Spambot

// ==UserScript==
// @name         MapleStory 2 New Leaf Survey Fairfight Spambot
// @namespace    fbearhlbjfhejf
// @version      0.1
// @description  Spambot for an MS2 Survey
// @author       Yveltal
// @match        https://www.surveymonkey.com/r/LYK8FXD
// @license      MIT
// ==/UserScript==

function randEmail() {
    let chrs = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
    let len = Math.floor(Math.random()*20+6);
    let ans = "@gmail.com";
    for (let i=0;i<len;i++) {
        ans = chrs.charAt(Math.floor(Math.random()*chrs.length))+ans;
    }
    return ans;
}

function shuffle(array) { // got this shuffle off of stackoverflow, thanks whoever it was
  var currentIndex = array.length, temporaryValue, randomIndex;

  // While there remain elements to shuffle...
  while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}

function getpage() {
    let p = document.getElementsByClassName("page-title user-generated")[0].innerText;
    return p.charAt(p.length-1);
};
let page;
try {
    page = getpage();
}
catch (e) {
    location.replace("https://www.surveymonkey.com/r/LYK8FXD");
};
if (page=='1') {
    document.getElementsByClassName("radio-button-label-text question-body-font-theme user-generated")[Math.floor(Math.random()*8+1)].click();
}
else if (page=='2' || page=='3') {
    // radio buttons
    let btns = shuffle(Array.prototype.slice.call(document.getElementsByClassName("radio-button-label-text question-body-font-theme user-generated")));
    for (let i=0;i<btns.length;i++) {
        if (!btns[i].innerText.startsWith("Other")) {
            btns[i].click();
        }
    }
    if (page=='3') {
        document.getElementsByClassName("radio-button-label-text question-body-font-theme user-generated")[15].click();
        document.getElementsByClassName("text other-answer-text")[0].value="fairfight";
    }
    // checkboxes
    let btns2 = document.getElementsByClassName("answer-label checkbox-button-label no-touch touch-sensitive clearfix");
    for (let i=0;i<btns2.length;i++) {
        if (!btns2[i].innerText.startsWith("Other") && Math.random()<.5) {
            btns2[i].click();
        }
    }
    // emoji buttons
    btns = shuffle(Array.prototype.slice.call(document.getElementsByClassName("smf-icon emoji-border")));
    for (let i=0;i<btns.length;i++) {
        btns[i].click();
        document.getElementsByClassName("smf-icon emoji-border")[28+Math.floor(Math.random()*2)].click();
    }
    // textboxes
    let texts = document.getElementsByClassName("textarea");
    if (page=='2') {
        texts[0].value="fairfight";
    }
    if (page=='3') {
        texts[0].value="Chaos raids because there is no fairfight";
        texts[1].value="Defeating foes with fairfight quickly";
        texts[2].value="Fairfight";
        texts[3].value="The existence of features intentionally designed to make the game less enjoyable, such as fairfight";
    }
}
else if (page=="e") {
    let texts = document.getElementsByClassName("textarea");
    texts[0].value="Could you please give everyone who thought fairfight was a good idea a pay cut?";
    texts[1].value="REMOVE FAIRFIGHT";
    texts[2].value="REMOVE FAIRFIGHT";
    document.getElementsByClassName("text medium")[0].value=randEmail();
}
let submits=document.getElementsByClassName("btn small survey-page-button user-generated notranslate");
submits[submits.length-1].click();