Toggle Youtube Comments [14th March 2013]

By Jamie Hyde Last update Mar 26, 2013 — Installed 11,147 times.

There are 17 previous versions of this script.

// ==UserScript==
// @name          Toggle Youtube Comments
// @author	      Jamie Hyde
// @description   Allows Toggling of Youtube Comments and more!
// @match         http://*.youtube.com/watch?*
// @match         http://youtube.com/watch?*
// @include       *.youtube.com/watch?*
// @match         https://*.youtube.com/watch?*
// @match         https://youtube.com/watch?
// @grant         GM_getValue
// @grant         GM_setValue
// @grant         GM_registerMenuCommand
// @grant         GM_addStyle
// @version		  0.35
// ==/UserScript==
GM_addStyle("#settingdiv { border-radius: 5px; border: 1px solid #000000; background-color: #FFFFFF; position:fixed; z-index: 200; top: 5px; left: 5px; width:200px; height:200px; padding: 5px;} \
#title { margin-bottom: 5px; text-align: center; margin-left: -5px; border-bottom: 1px solid #000000; width: 206px; padding: 2px 2px 3px; font-weight: bold; }\
#closebtn { color: #000000; float: right; margin-right: 2px;} #closebtn:hover { text-decoration: none; }\
#Refresh { color: #000000; text-align: center;  border-top: 1px solid #000000; width: 206px; padding: 3px 2px 2px; font-weight: bold; position: absolute; bottom: 0; left: 0; }");

//VARIABLES
GM_registerMenuCommand("TYC Settings", pref);
var seen = false;
var arr = ["watch7-sidebar","watch-discussion","footer-container"]; // Array of elements
var arr2 = ["Sidebar","Comments","Footer"]; // Array of Names
var loaded = false;

// Autohide function
function autohide() {
if (loaded == false) {
var length = arr.length,
	element = null;
for (var i = 0; i < length; i++) {
	element = arr[i];
if ((GM_getValue(element, false)) == true) {
	var div = document.getElementById(element);
		div.style.display = "none";
			}
		}
	}
}

function pref() { //Pref Dialog
if (seen == false) {
	seen = true;
var holder = document.createElement('div');
	holder.setAttribute('ID','settingdiv');
var title = document.createElement('p');
	title.innerHTML = "TYC Settings";
	title.setAttribute('ID','title');
var close = document.createElement('a');
	close.innerHTML = "X";
	close.setAttribute('ID','closebtn');
	close.addEventListener('click', function() { document.body.removeChild(holder); seen = false;}, false);
	
//Make Pref Dialog
	title.appendChild(close);
	holder.appendChild(title);
	document.body.appendChild(holder);
	menu()
	}
}

function menu() { //Dynamicly make the menu
var holder = document.getElementById("settingdiv");
var length = arr.length,
    element = null;
for (var i = 0; i < length; i++) {
	element = arr[i];	
var text = document.createElement('p');
	text.innerHTML = arr2[i];
	text.setAttribute("style","width: 120px; height: 20px; line-height: 20px;");
var check = document.createElement('input');
	check.type = "checkbox";
	check.name = arr[i];
	check.style.cssFloat = "right";

// Tick if hidden
var setting = (GM_getValue(element, false));
if (setting == true) { (check.checked = true); }
check.addEventListener("click", function () { if (this.checked == true) { (GM_setValue(this.name, true));} else { (GM_setValue(this.name, false));}}, false);
text.appendChild(check);
holder.appendChild(text);
}
var refresh = document.createElement('a');
	refresh.id = "Refresh";
	refresh.innerHTML = "Refresh Page";
	refresh.setAttribute("onClick","javascript: window.location.reload()");
holder.appendChild(refresh);
}

function toggle() {
var length = arr.length,
	element = null;
for (var i = 0; i < length; i++) {
	element = arr[i];
	var div = document.getElementById(element);
if (div.style.display == "none") { div.style.display = "block"; }
else { div.style.display = "none"; }
	}
}
	
function addButton() { //Add the button
var togb = document.createElement('input');
	togb.setAttribute('type','button');
	togb.setAttribute('value','Comments');
	togb.id = 'ToggleButton';
	togb.setAttribute('class', 'yt-uix-button yt-uix-button-subscribe-branded');
	togb.setAttribute('style', 'margin-left: 3px; color: #666; padding: 0 3px;');
	document.getElementById("watch7-user-header").appendChild(togb);
	togb.addEventListener('click', function() { toggle(); }, false);
}

//onLoad Page
document.addEventListener('load', function() { autohide(); loaded = true;}, true);
addButton()