rebel / Chathancer

// ==UserScript==
// @name        Chathancer
// @namespace   chatroll
// @include     http://chatroll.com/*
// @version     2.6.8.1.1
// @description makes the chat nice, controls that do nothing, special k
// @grant       GM_getValue
// @grant       GM_setValue
// @require     https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
// @run-at      document-end
// ==/UserScript==
var version = '2.6.8.1';

GM_setValue('user_' + "Rebel-",    JSON.stringify(['Rebel'      , 'Red'    , 0]));
GM_setValue('user_' + "Pinguster", JSON.stringify(['Pingu'      , '#164712', 0]));
GM_setValue('user_' + "Burpman",   JSON.stringify([0            , '#0DF100', 0]));
GM_setValue('user_' + "Zog",       JSON.stringify([0            , '#CAFF0A', 1]));
GM_setValue('user_' + "Blasto",    JSON.stringify(['Special K'  , '#B8B800'   , 0]));
GM_setValue('user_' + "Rousseau",  JSON.stringify(['Bubble'     , '#99FF00', 1]));
GM_setValue('user_' + "Kiino",     JSON.stringify(['Razer'      , '#990000', 0]));
GM_setValue('user_' + "Shoeman",   JSON.stringify([0            , '#990022', 0]));


//query first run
//if first run 
//set values
//else
//get preferences


// 0 = default                                                             0 = white 1 = black
//GM_setValue('user_' + *username*, JSON.stringify([*namechange*, *color*, *textcolor*]));


//

//add page test for archive 
//render archive





function colorName(n) {
  
  var name = n.children[0].children[1];
  
  var username = name.children[0].text;
  var color = 'black';
  var textcolor = 'white';
  
  var user = JSON.parse(GM_getValue('user_' + name.children[0].text));
  if(user[0] != 0){
    username = user[0];
  }
  if(user[1] != 0){
    color = user[1];
  }
  if(user[2] == 1){
    textcolor = 'black';
  }
  
  name.children[0].text = username;
  name.children[0].style.cssText = 'font-weight : bold; text-decoration: underline; color : ' + textcolor + ';';
  name.style.background = color;
  name.style.color = textcolor;
  n.style.borderColor = color;
  n.style.borderLeftWidth = '6px';
  n.style.borderLeftStyle = 'solid';
}

function textTriggers(n) {
  var msg = n.innerHTML;
  //Twitch Emotes
  msg = msg.replace(/4Head/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/354/1.0\' />');
  msg = msg.replace(/ANELE/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/3792/1.0\' />');
  msg = msg.replace(/ArsonNoSexy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/50/1.0\' />');
  msg = msg.replace(/AsianGlow/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/74/1.0\' />');
  msg = msg.replace(/AtGL/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9809/1.0\' />');
  msg = msg.replace(/AthenaPMS/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/32035/1.0\' />');
  msg = msg.replace(/AtIvy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9800/1.0\' />');
  msg = msg.replace(/AtWW/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9801/1.0\' />');
  msg = msg.replace(/BabyRage/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/22639/1.0\' />');
  msg = msg.replace(/BatChest/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1905/1.0\' />');
  msg = msg.replace(/BCWarrior/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/30/1.0\' />');
  msg = msg.replace(/BibleThump/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/86/1.0\' />');
  msg = msg.replace(/BigBrother/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1904/1.0\' />');
  msg = msg.replace(/BionicBunion/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/24/1.0\' />');
  msg = msg.replace(/BlargNaut/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/38/1.0\' />');
  msg = msg.replace(/BloodTrail/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/69/1.0\' />');
  msg = msg.replace(/BORT/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/243/1.0\' />');
  msg = msg.replace(/BrainSlug/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/881/1.0\' />');
  msg = msg.replace(/BrokeBack/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/4057/1.0\' />');
  msg = msg.replace(/BuddhaBar/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27602/1.0\' />');
  msg = msg.replace(/CougarHunt/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/21/1.0\' />');
  msg = msg.replace(/DAESuppy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/973/1.0\' />');
  msg = msg.replace(/DansGame/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/33/1.0\' />');
  msg = msg.replace(/DatSheffy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/170/1.0\' />');
  msg = msg.replace(/DBstyle/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/73/1.0\' />');
  msg = msg.replace(/DendiFace/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/29695/1.0\' />');
  msg = msg.replace(/DogFace/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1903/1.0\' />');
  msg = msg.replace(/EagleEye/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/20/1.0\' />');
  msg = msg.replace(/EleGiggle/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/4339/1.0\' />');
  msg = msg.replace(/EvilFetus/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/72/1.0\' />');
  msg = msg.replace(/FailFish/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/360/1.0\' />');
  msg = msg.replace(/FPSMarksman/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/42/1.0\' />');
  msg = msg.replace(/FrankerZ/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/65/1.0\' />');
  msg = msg.replace(/FreakinStinkin/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/39/1.0\' />');
  msg = msg.replace(/FUNgineer/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/244/1.0\' />');
  msg = msg.replace(/FunRun/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/48/1.0\' />');
  msg = msg.replace(/FuzzyOtterOO/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/168/1.0\' />');
  msg = msg.replace(/GasJoker/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9802/1.0\' />');
  msg = msg.replace(/GingerPower/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/32/1.0\' />');
  msg = msg.replace(/GrammarKing/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/3632/1.0\' />');
  msg = msg.replace(/HassaanChop/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/20225/1.0\' />');
  msg = msg.replace(/HassanChop/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/68/1.0\' />');
  msg = msg.replace(/HeyGuys/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/30259/1.0\' />');
  msg = msg.replace(/HotPokket/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/357/1.0\' />');
  msg = msg.replace(/HumbleLife/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27301/1.0\' />');
  msg = msg.replace(/ItsBoshyTime/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/169/1.0\' />');
  msg = msg.replace(/Jebaited/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/90/1.0\' />');
  msg = msg.replace(/JKanStyle/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/15/1.0\' />');
  msg = msg.replace(/JonCarnage/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/26/1.0\' />');
  msg = msg.replace(/KAPOW/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9803/1.0\' />');
  msg = msg.replace(/Kappa/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/25/1.0\' />');
  msg = msg.replace(/Keepo/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1902/1.0\' />');
  msg = msg.replace(/KevinTurtle/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/40/1.0\' />');
  msg = msg.replace(/Kippa/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1901/1.0\' />');
  msg = msg.replace(/Kreygasm/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/41/1.0\' />');
  msg = msg.replace(/KZskull/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/5253/1.0\' />');
  msg = msg.replace(/Mau5/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/30134/1.0\' />');
  msg = msg.replace(/mcaT/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/35063/1.0\' />');
  msg = msg.replace(/MechaSupes/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9804/1.0\' />');
  msg = msg.replace(/MrDestructoid/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/28/1.0\' />');
  msg = msg.replace(/MVGame/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/29/1.0\' />');
  msg = msg.replace(/NightBat/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9805/1.0\' />');
  msg = msg.replace(/NinjaTroll/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/45/1.0\' />');
  msg = msg.replace(/NoNoSpot/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/44/1.0\' />');
  msg = msg.replace(/noScope/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/13084/1.0\' />');
  msg = msg.replace(/NotAtk/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/34875/1.0\' />');
  msg = msg.replace(/OMGScoots/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/91/1.0\' />');
  msg = msg.replace(/OneHand/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/66/1.0\' />');
  msg = msg.replace(/OpieOP/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/356/1.0\' />');
  msg = msg.replace(/OptimizePrime/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/16/1.0\' />');
  msg = msg.replace(/panicBasket/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/22998/1.0\' />');
  msg = msg.replace(/PanicVis/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/3668/1.0\' />');
  msg = msg.replace(/PazPazowitz/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/19/1.0\' />');
  msg = msg.replace(/PeoplesChamp/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/3412/1.0\' />');
  msg = msg.replace(/PermaSmug/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27509/1.0\' />');
  msg = msg.replace(/PicoMause/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27/1.0\' />');
  msg = msg.replace(/PipeHype/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/4240/1.0\' />');
  msg = msg.replace(/PJHarley/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9808/1.0\' />');
  msg = msg.replace(/PJSalt/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/36/1.0\' />');
  msg = msg.replace(/PMSTwin/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/92/1.0\' />');
  msg = msg.replace(/PogChamp/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/88/1.0\' />');
  msg = msg.replace(/Poooound/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/358/1.0\' />');
  msg = msg.replace(/PraiseIt/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/38586/1.0\' />');
  msg = msg.replace(/PRChase/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/28328/1.0\' />');
  msg = msg.replace(/PunchTrees/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/47/1.0\' />');
  msg = msg.replace(/PuppeyFace/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/30252/1.0\' />');
  msg = msg.replace(/RaccAttack/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27679/1.0\' />');
  msg = msg.replace(/RalpherZ/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1900/1.0\' />');
  msg = msg.replace(/RedCoat/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/22/1.0\' />');
  msg = msg.replace(/ResidentSleeper/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/245/1.0\' />');
  msg = msg.replace(/RitzMitz/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/4338/1.0\' />');
  msg = msg.replace(/RuleFive/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/361/1.0\' />');
  msg = msg.replace(/Shazam/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9807/1.0\' />');
  msg = msg.replace(/shazamicon/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/9806/1.0\' />');
  msg = msg.replace(/ShazBotstix/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/87/1.0\' />');
  msg = msg.replace(/ShibeZ/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/27903/1.0\' />');
  msg = msg.replace(/SMOrc/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/52/1.0\' />');
  msg = msg.replace(/SMSkull/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/51/1.0\' />');
  msg = msg.replace(/SoBayed/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1906/1.0\' />');
  msg = msg.replace(/SoonerLater/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/355/1.0\' />');
  msg = msg.replace(/SriHead/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/14706/1.0\' />');
  msg = msg.replace(/SSSsss/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/46/1.0\' />');
  msg = msg.replace(/StoneLightning/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/17/1.0\' />');
  msg = msg.replace(/StrawBeary/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/37/1.0\' />');
  msg = msg.replace(/SuperVinlin/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/31/1.0\' />');
  msg = msg.replace(/SwiftRage/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/34/1.0\' />');
  msg = msg.replace(/tbBaconBiscuit/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/44499/1.0\' />');
  msg = msg.replace(/tbChickenBiscuit/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/44498/1.0\' />');
  msg = msg.replace(/tbQuesarito/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/40863/1.0\' />');
  msg = msg.replace(/tbSausageBiscuit/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/44500/1.0\' />');
  msg = msg.replace(/tbSpicy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/40864/1.0\' />');
  msg = msg.replace(/tbSriracha/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/40871/1.0\' />');
  msg = msg.replace(/TF2John/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1899/1.0\' />');
  msg = msg.replace(/TheRinger/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/18/1.0\' />');
  msg = msg.replace(/TheTarFu/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/70/1.0\' />');
  msg = msg.replace(/TheThing/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/7427/1.0\' />');
  msg = msg.replace(/ThunBeast/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1898/1.0\' />');
  msg = msg.replace(/TinyFace/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/67/1.0\' />');
  msg = msg.replace(/TooSpicy/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/359/1.0\' />');
  msg = msg.replace(/TriHard/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/171/1.0\' />');
  msg = msg.replace(/TTours/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/38436/1.0\' />');
  msg = msg.replace(/UleetBackup/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/49/1.0\' />');
  msg = msg.replace(/UncleNox/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/3666/1.0\' />');
  msg = msg.replace(/UnSane/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/71/1.0\' />');
  msg = msg.replace(/Volcania/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/166/1.0\' />');
  msg = msg.replace(/WholeWheat/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1896/1.0\' />');
  msg = msg.replace(/WinWaker/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/167/1.0\' />');
  msg = msg.replace(/WTRuck/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/1897/1.0\' />');
  msg = msg.replace(/WutFace/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/28087/1.0\' />');
  msg = msg.replace(/YouWHY/g, '<img src=\'https://static-cdn.jtvnw.net/emoticons/v1/4337/1.0\' />');
  
  msg = msg.replace(/daily dose/g, '<img src=\'http://i1.kym-cdn.com/photos/images/newsfeed/000/243/347/90d.gif\'  style=\'width:20px;height:20px;\'/>');
  if (msg == 'checkem') {
    msg = '<img src=\'http://i2.kym-cdn.com/entries/icons/original/000/001/714/doublesguy.jpg\' style=\'width:40px;height:40px;\'/>'
  }
  if (msg == 'L') {
    msg = 'lol'
  }
  //greentext

  if (msg.startsWith('&gt;<wbr>')) {
    n.style.color = '#789922';
  }
  n.innerHTML = msg;
}
function format(n) {
  
  
    //time style modern
    //n.children[0].children[0].style.margin = '0px 0px 0px -41px';
    n.children[1].style.top = '15px';
    n.children[0].style.minHeight = '50px';
    
    
    
  //moves the numbers from the message class to user namespace

  //move numbers to inside user

   var fakespan2 = document.createElement('span');
  fakespan2.className = 'message-timestamp';
  fakespan2.innerHTML = n.children[0].children[0].innerHTML;
  fakespan2.style.cssText = 'display:none;';
  n.children[0].appendChild(fakespan2);
  
  
  n.children[0].children[0].style.cssText = 'font-size: 0.77em;line-height: 1em;color: #AAA;height: 12px; margin: 0px 0px 0px -41px; background: rgba(255, 255, 255, 0.5)';
  n.children[0].children[0].className = '';
  
  var number = n.classList[1].slice( - 3);
  n.children[0].children[1].className = '';
  if (number == '420') {
    n.children[0].children[0].innerHTML = n.children[0].children[0].innerHTML + ' - No. <img src="http://fc08.deviantart.net/fs70/f/2014/340/3/5/_420weed__by_romenx-d88xdm8.gif" />' + ' <span style="font-size: 120%;">:</span>';
  } else {
    n.children[0].children[0].innerHTML = n.children[0].children[0].innerHTML + ' - No.' + number + ' <span style="font-size: 120%;">:</span>';
  }
  //fake span to get modified while shown one stays the same,

  var fakespan = document.createElement('span');
  fakespan.className = 'message-profile-name';
  fakespan.style.cssText = 'display:none;';
  n.children[0].appendChild(fakespan);
 
  //remove semicolon
  n.children[0].childNodes[4].data = '';
  //make text next line
  n.children[0].children[2].style.display = 'block';
  //n.children[0].children[2].innerHTML = ":" + n.children[0].children[2].innerHTML;
}
function desktopNotify(n) {
  var user = n.children[0].children[1].children[0].text;
  var message = n.children[0].children[2].textContent;
  var img = n.children[1].children[0].children[0].currentSrc;
  new Notification(user, {
    body: message,
    icon: img,
    dir: 'auto'
  });
}

function createControls() {
  $('.chat-contacts-container').css('width', '175px');
  $('.chat-contacts-banner').css('width', '175px');
  $('.chat-contacts-divider').css('right', '175px');
  $('.chat-messages-container').css('right', '179px');
  $('.chat-contacts-container').append('<div id="script-controls" style="position: absolute; height: 200px; width: 100%; bottom: 0px; border-width: 4px 0px 0px; border-style: solid; border-color: rgb(212, 212, 212); padding: 0px 0px 0px 4px;"></div>');
  $('#script-controls').append('<div id="SC-title">Chathancer ver : ' + version + '</div>');
  $('#script-controls').append('<div id="SC-controls">Controls: nothing yet</div>');
  $('#script-controls').append('<input type="checkbox" id="colors"> Colors</br>');
  $('#script-controls').append('<input type="checkbox" id="emotes"> Emotes');
  $( "#colors" ).prop( "checked", true );
  $( "#emotes" ).prop( "checked", true );
}

var previousUser = "";
function init() {
  Notification.requestPermission(function (permission) {
    var notification = new Notification('Alert!', {
      body: 'Desktop Notifications Active',
      icon: 'icon.png',
      dir: 'auto'
    });
  });
  createControls();
  var x = document.getElementsByClassName('chat-messages');
  for (var i = 0; i < x[0].childElementCount - 1; i++) {
    var message = x[0].children[i];
    format(message);
    colorName(message);
    textTriggers(message.children[0].children[2]);
    
    //make a function
    if(previousUser == message.children[0].children[1].children[0].text){
      message.children[1].style.display = 'none';
      message.children[0].children[1].style.display = 'none';
      message.children[0].style.minHeight = '0px';
      message.style.margin = '-6px 0px 0px';
      }
      previousUser = message.children[0].children[1].children[0].text;
  }
}
// The node to be monitored


var target = $('.chat-messages') [0];

// Create an observer instance
var observer = new MutationObserver(function (mutations) {
  mutations.forEach(function (mutation) {
    for (var i = 0; i < mutation.addedNodes.length; i++) {
      var message = mutation.addedNodes[i];
      format(message);
      colorName(message);
      desktopNotify(message);
      textTriggers(message.children[0].children[2]);
      
      //make a function
      if(previousUser == message.children[0].children[1].children[0].text){
      message.children[1].style.display = 'none';
      message.children[0].children[1].style.display = 'none';
      message.children[0].style.minHeight = '0px';
      message.style.margin = '-6px 0px 0px';
      }
      previousUser = message.children[0].children[1].children[0].text;
      $('.chat-messages-container').scrollTop($('.chat-messages').height());
      //$('.chat-messages-container').scrollTop = $('.chat-messages-container').scrollHeight;
    }
  });
});
// Configuration of the observer:
var config = {
  attributes: true,
  childList: true,
  characterData: true
};
// Pass in the target node, as well as the observer options
observer.observe(target, config);
init();