// ==UserScript==
// @name           Ribbon Titles
// @namespace      tacticalgamer.com
// @description    Provides description of each ribbon when hovered over.
// @include		   http://tacticalgamer.com/
// @include        http://www.tacticalgamer.com/*
// ==/UserScript==
// version 0.1 [ 6/09/2007 - jmaker ] Initial version
// version 0.2 { 6/10/2007 - jmaker } Added clean titles. Added links to ribbon images.
// updated 6/26/2007 - added new 12th tags
// NOTE: Any ribbons from http://awards.tg7th.com/ribbons/show-all.php should work correctly. Other ribbons
//			that I've seen people have will not show up, simple because I don't know about them.

var ribbon_name = ["kit-anti-tank-class1", "kit-anti-tank-class2", "kit-anti-tank-class3", "kit-anti-tank-class4", "kit-anti-tank-class5",
"kit-anti-tank-class6", "assassin-class1", "assassin-class2", "assassin-class3", "assassin-class4", "assassin-class5", "assassin-class6",
"kit-assault-class1", "kit-assault-class2", "kit-assault-class3", "kit-assault-class4", "kit-assault-class5", "kit-assault-class6", "bomb-disposal-class1",
"bomb-disposal-class2", "bomb-disposal-class3", "bomb-disposal-class4", "bomb-disposal-class5", "bomb-disposal-class6", "combat-class1", "combat-class2",
"combat-class3", "combat-class4", "combat-class5", "combat-class6", "demolitions-class1", "demolitions-class2", "demolitions-class3", "demolitions-class4",
"demolitions-class5", "demolitions-class6", "vehicle-air-cavalry-class1", "vehicle-air-cavalry-class2", "vehicle-air-cavalry-class3", "vehicle-air-cavalry-class4",
"vehicle-air-cavalry-class5", "vehicle-air-cavalry-class6", "vehicle-armor-class1", "vehicle-armor-class2", "vehicle-armor-class3", "vehicle-armor-class4",
"vehicle-armor-class5", "vehicle-armor-class6", "commander-class1", "commander-class2", "commander-class3", "commander-class4", "commander-class5", "commander-class6",
"conduct-class1", "conduct-class2", "conduct-class3", "conduct-class4", "conduct-class5", "conduct-class6", "dys-decker-class1", "dys-decker-class2", "dys-decker-class3",
"dys-decker-class4", "dys-decker-class5", "dys-decker-class6", "defense-class1", "defense-class2", "defense-class3", "defense-class4", "defense-class5", "defense-class6",
"dys-heavy-class1", "dys-heavy-class2", "dys-heavy-class3", "dys-heavy-class4", "dys-heavy-class5", "dys-heavy-class6", "jet-combat-class1", "jet-combat-class2",
"jet-combat-class3", "jet-combat-class4", "jet-combat-class5", "jet-combat-class6", "dys-light-class1", "dys-light-class2", "dys-light-class3", "dys-light-class4",
"dys-light-class5", "dys-light-class6", "dys-medium-class1", "dys-medium-class2", "dys-medium-class3", "dys-medium-class4", "dys-medium-class5", "dys-medium-class6",
"squad-leader-class1", "squad-leader-class2", "squad-leader-class3", "squad-leader-class4", "squad-leader-class5", "squad-leader-class6", "kit-support-class1",
"kit-support-class2", "kit-support-class3", "kit-support-class4", "kit-support-class5", "kit-support-class6", "dys-support-class1", "dys-support-class2", "dys-support-class3",
"dys-support-class4", "dys-support-class5", "dys-support-class6", "tactician-class1", "tactician-class2", "tactician-class3", "tactician-class4", "tactician-class5",
"tactician-class6", "vip-class1", "vip-class2", "vip-class3", "vip-class4", "vip-class5", "vip-class6", "drill-instructor-class1", "drill-instructor-class2",
"drill-instructor-class3", "drill-instructor-class4", "drill-instructor-class5", "drill-instructor-class6", "kit-engineer-class1", "kit-engineer-class2", "kit-engineer-class3",
"kit-engineer-class4", "kit-engineer-class5", "kit-engineer-class6", "hostage-rescue-class1", "hostage-rescue-class2", "hostage-rescue-class3", "hostage-rescue-class4",
"hostage-rescue-class5", "hostage-rescue-class6", "scrim-tg-class1", "scrim-tg-class2", "scrim-tg-class3", "scrim-tg-class4", "scrim-tg-class5", "scrim-tg-class6",
"kit-medic-class1", "kit-medic-class2", "kit-medic-class3", "kit-medic-class4", "kit-medic-class5", "kit-medic-class6", "volunteer-class1", "volunteer-class2", "volunteer-class3",
"volunteer-class4", "volunteer-class5", "volunteer-class6", "pcs-proven-class1", "pcs-proven-class2", "pcs-proven-class3", "pcs-proven-class4", "pcs-proven-class5",
"pcs-proven-class6", "scrim-age-class1", "scrim-age-class2", "scrim-age-class3", "scrim-age-class4", "scrim-age-class5", "scrim-age-class6", "scrim-fcw-class1", "scrim-fcw-class2",
"scrim-fcw-class3", "scrim-fcw-class4", "scrim-fcw-class5", "scrim-fcw-class6", "scrim-gchq-class1", "scrim-gchq-class2", "scrim-gchq-class3", "scrim-gchq-class4",
"scrim-gchq-class5", "scrim-gchq-class6", "scrim-gc-class1", "scrim-gc-class2", "scrim-gc-class3", "scrim-gc-class4", "scrim-gc-class5", "scrim-gc-class6", "scrim-imo-class1",
"scrim-imo-class2", "scrim-imo-class3", "scrim-imo-class4", "scrim-imo-class5", "scrim-imo-class6", "scrim-ma-class1", "scrim-ma-class2", "scrim-ma-class3", "scrim-ma-class4",
"scrim-ma-class5", "scrim-ma-class6", "scrim-sg-class1", "scrim-sg-class2", "scrim-sg-class3", "scrim-sg-class4", "scrim-sg-class5", "scrim-sg-class6", "scrim-tpf-class1",
"scrim-tpf-class2", "scrim-tpf-class3", "scrim-tpf-class4", "scrim-tpf-class5", "scrim-tpf-class6", "scrim-taw-class1", "scrim-taw-class2", "scrim-taw-class3", "scrim-taw-class4",
"scrim-taw-class5", "scrim-taw-class6", "scrim-tog-class1", "scrim-tog-class2", "scrim-tog-class3", "scrim-tog-class4", "scrim-tog-class5", "scrim-tog-class6", "kit-sniper-class1",
"kit-sniper-class2", "kit-sniper-class3", "kit-sniper-class4", "kit-sniper-class5", "kit-sniper-class6", "kit-spec-ops-class1", "kit-spec-ops-class2", "kit-spec-ops-class3",
"kit-spec-ops-class4", "kit-spec-ops-class5", "kit-spec-ops-class6", "unit-class1", "unit-class2", "unit-class3", "unit-class4", "unit-class5", "unit-class6", "blank", "drill",
"action", "squad", "sniper", "defense", "conduct", "tagmedic", "tagcommander"];

var pretty = ["Anti-Tank Specialist Class 1", "Anti-Tank Specialist Class 2", "Anti-Tank Specialist Class 3", "Anti-Tank Specialist Class 4", "Anti-Tank Specialist Class 5",
"Anti-Tank Specialist Class 6", "Assassination Specialist Class 1", "Assassination Specialist Class 2", "Assassination Specialist Class 3", "Assassination Specialist Class 4",
"Assassination Specialist Class 5", "Assassination Specialist Class 6", "Assault Specialist Class 1", "Assault Specialist Class 2", "Assault Specialist Class 3",
"Assault Specialist Class 4", "Assault Specialist Class 5", "Assault Specialist Class 6", "Bomb Disposal Specialist Class 1", "Bomb Disposal Specialist Class 2",
"Bomb Disposal Specialist Class 3", "Bomb Disposal Specialist Class 4", "Bomb Disposal Specialist Class 5", "Bomb Disposal Specialist Class 6", "Combat Action Class 1",
"Combat Action Class 2", "Combat Action Class 3", "Combat Action Class 4", "Combat Action Class 5", "Combat Action Class 6", "Demolitions Specialist Class 1",
"Demolitions Specialist Class 2", "Demolitions Specialist Class 3", "Demolitions Specialist Class 4", "Demolitions Specialist Class 5", "Demolitions Specialist Class 6",
"Distinguished Air Cavalry Class 1", "Distinguished Air Cavalry Class 2", "Distinguished Air Cavalry Class 3", "Distinguished Air Cavalry Class 4",
"Distinguished Air Cavalry Class 5", "Distinguished Air Cavalry Class 6", "Distinguished Armored Combat Class 1", "Distinguished Armored Combat Class 2",
"Distinguished Armored Combat Class 3", "Distinguished Armored Combat Class 4", "Distinguished Armored Combat Class 5", "Distinguished Armored Combat Class 6",
"Distinguished Commander Class 1", "Distinguished Commander Class 2", "Distinguished Commander Class 3", "Distinguished Commander Class 4", "Distinguished Commander Class 5",
"Distinguished Commander Class 6", "Distinguished Conduct Class 1", "Distinguished Conduct Class 2", "Distinguished Conduct Class 3", "Distinguished Conduct Class 4",
"Distinguished Conduct Class 5", "Distinguished Conduct Class 6", "Distinguished Decker Class 1", "Distinguished Decker Class 2", "Distinguished Decker Class 3",
"Distinguished Decker Class 4", "Distinguished Decker Class 5", "Distinguished Decker Class 6", "Distinguished Defense Class 1", "Distinguished Defense Class 2",
"Distinguished Defense Class 3", "Distinguished Defense Class 4", "Distinguished Defense Class 5", "Distinguished Defense Class 6", "Distinguished Heavy Class 1",
"Distinguished Heavy Class 2", "Distinguished Heavy Class 3", "Distinguished Heavy Class 4", "Distinguished Heavy Class 5", "Distinguished Heavy Class 6",
"Distinguished Jet Combat Class 1", "Distinguished Jet Combat Class 2", "Distinguished Jet Combat Class 3", "Distinguished Jet Combat Class 4", "Distinguished Jet Combat Class 5",
"Distinguished Jet Combat Class 6", "Distinguished Light Class 1", "Distinguished Light Class 2", "Distinguished Light Class 3", "Distinguished Light Class 4",
"Distinguished Light Class 5", "Distinguished Light Class 6", "Distinguished Medium Class 1", "Distinguished Medium Class 2", "Distinguished Medium Class 3",
"Distinguished Medium Class 4", "Distinguished Medium Class 5", "Distinguished Medium Class 6", "Distinguished Squad Leader Class 1", "Distinguished Squad Leader Class 2",
"Distinguished Squad Leader Class 3", "Distinguished Squad Leader Class 4", "Distinguished Squad Leader Class 5", "Distinguished Squad Leader Class 6",
"Distinguished Support Class 1", "Distinguished Support Class 2", "Distinguished Support Class 3", "Distinguished Support Class 4", "Distinguished Support Class 5",
"Distinguished Support Class 6", "Distinguished Support (Dystopia) Class 1", "Distinguished Support (Dystopia) Class 2", "Distinguished Support (Dystopia) Class 3",
"Distinguished Support (Dystopia) Class 4", "Distinguished Support (Dystopia) Class 5", "Distinguished Support (Dystopia) Class 6", "Distinguished Tactician Class 1",
"Distinguished Tactician Class 2", "Distinguished Tactician Class 3", "Distinguished Tactician Class 4", "Distinguished Tactician Class 5", "Distinguished Tactician Class 6",
"Distinguished VIP Class 1", "Distinguished VIP Class 2", "Distinguished VIP Class 3", "Distinguished VIP Class 4", "Distinguished VIP Class 5", "Distinguished VIP Class 6",
"Drill Instructor Class 1", "Drill Instructor Class 2", "Drill Instructor Class 3", "Drill Instructor Class 4", "Drill Instructor Class 5", "Drill Instructor Class 6",
"Engineer Specialist Class 1", "Engineer Specialist Class 2", "Engineer Specialist Class 3", "Engineer Specialist Class 4", "Engineer Specialist Class 5",
"Engineer Specialist Class 6", "Hostage Rescue Specialist Class 1", "Hostage Rescue Specialist Class 2", "Hostage Rescue Specialist Class 3", "Hostage Rescue Specialist Class 4",
"Hostage Rescue Specialist Class 5", "Hostage Rescue Specialist Class 6", "Inter-TG Scrim Class 1", "Inter-TG Scrim Class 2", "Inter-TG Scrim Class 3", "Inter-TG Scrim Class 4",
"Inter-TG Scrim Class 5", "Inter-TG Scrim Class 6", "Medic Specialist Class 1", "Medic Specialist Class 2", "Medic Specialist Class 3", "Medic Specialist Class 4",
"Medic Specialist Class 5", "Medic Specialist Class 6", "Oustanding Volunteer Class 1", "Oustanding Volunteer Class 2", "Oustanding Volunteer Class 3",
"Oustanding Volunteer Class 4", "Oustanding Volunteer Class 5", "Oustanding Volunteer Class 6", "PCS Proven Class 1", "PCS Proven Class 2", "PCS Proven Class 3",
"PCS Proven Class 4", "PCS Proven Class 5", "PCS Proven Class 6", "Scrim vs. AGE Class 1", "Scrim vs. AGE Class 2", "Scrim vs. AGE Class 3", "Scrim vs. AGE Class 4",
"Scrim vs. AGE Class 5", "Scrim vs. AGE Class 6", "Scrim vs. Full Contact War Class 1", "Scrim vs. Full Contact War Class 2", "Scrim vs. Full Contact War Class 3",
"Scrim vs. Full Contact War Class 4", "Scrim vs. Full Contact War Class 5", "Scrim vs. Full Contact War Class 6", "Scrim vs. GCHQ Class 1", "Scrim vs. GCHQ Class 2",
"Scrim vs. GCHQ Class 3", "Scrim vs. GCHQ Class 4", "Scrim vs. GCHQ Class 5", "Scrim vs. GCHQ Class 6", "Scrim vs. Global Conflict Class 1", "Scrim vs. Global Conflict Class 2",
"Scrim vs. Global Conflict Class 3", "Scrim vs. Global Conflict Class 4", "Scrim vs. Global Conflict Class 5", "Scrim vs. Global Conflict Class 6",
"Scrim vs. In Memory of Others Class 1", "Scrim vs. In Memory of Others Class 2", "Scrim vs. In Memory of Others Class 3", "Scrim vs. In Memory of Others Class 4",
"Scrim vs. In Memory of Others Class 5", "Scrim vs. In Memory of Others Class 6", "Scrim vs. Mature Asskickers Class 1", "Scrim vs. Mature Asskickers Class 2",
"Scrim vs. Mature Asskickers Class 3", "Scrim vs. Mature Asskickers Class 4", "Scrim vs. Mature Asskickers Class 5", "Scrim vs. Mature Asskickers Class 6",
"Scrim vs. Sturmgrenader Class 1", "Scrim vs. Sturmgrenader Class 2", "Scrim vs. Sturmgrenader Class 3", "Scrim vs. Sturmgrenader Class 4",
"Scrim vs. Sturmgrenader Class 5", "Scrim vs. Sturmgrenader Class 6", "Scrim vs. TeamPlay First Class 1", "Scrim vs. TeamPlay First Class 2",
"Scrim vs. TeamPlay First Class 3", "Scrim vs. TeamPlay First Class 4", "Scrim vs. TeamPlay First Class 5", "Scrim vs. TeamPlay First Class 6",
"Scrim vs. The Art of Warfare Class 1", "Scrim vs. The Art of Warfare Class 2", "Scrim vs. The Art of Warfare Class 3", "Scrim vs. The Art of Warfare Class 4",
"Scrim vs. The Art of Warfare Class 5", "Scrim vs. The Art of Warfare Class 6", "Scrim vs. The Older Gamers Class 1", "Scrim vs. The Older Gamers Class 2",
"Scrim vs. The Older Gamers Class 3", "Scrim vs. The Older Gamers Class 4", "Scrim vs. The Older Gamers Class 5", "Scrim vs. The Older Gamers Class 6",
"Sniper Specialist Class 1", "Sniper Specialist Class 2", "Sniper Specialist Class 3", "Sniper Specialist Class 4", "Sniper Specialist Class 5", "Sniper Specialist Class 6",
"Spec Ops Specialist Class 1", "Spec Ops Specialist Class 2", "Spec Ops Specialist Class 3", "Spec Ops Specialist Class 4", "Spec Ops Specialist Class 5",
"Spec Ops Specialist Class 6", "Valorous Unit Class 1", "Valorous Unit Class 2", "Valorous Unit Class 3", "Valorous Unit Class 4", "Valorous Unit Class 5", "Valorous Unit Class 6",
null, "Drill Instructor", "Combat Action", "Distinguished Squad", "Distinguished Sniper", "Distinguished Defense", "Distinguished Conduct", "Distinguished Medic",
"Distinguished Commander"];

var linky = ["http://tinyurl.com/2fny8y", null, "http://tinyurl.com/yry5mq", null, "http://tinyurl.com/2dlzj9", null, "http://tinyurl.com/258c7g", "http://tinyurl.com/ytdje6",
"http://tinyurl.com/27ttsj", "http://tinyurl.com/26qe8q", null, "http://tinyurl.com/yusx3k", null, "http://tinyurl.com/274cbe", null, null, "http://tinyurl.com/28xz7f",
"http://tinyurl.com/yv29rc", null, null, null, "http://tinyurl.com/y3jtyj", "http://tinyurl.com/2x98xv", null, null, "http://tinyurl.com/3d3vam", "http://tinyurl.com/2ws947",
null, "http://tinyurl.com/34k3kx", "http://tinyurl.com/22m7y8", "http://tinyurl.com/2nmz89", null, "http://tinyurl.com/2dm3s6", "http://tinyurl.com/2kje5m", "http://tinyurl.com/33glx7",
"http://tinyurl.com/3aohj9", "http://tinyurl.com/2ndebj", "http://tinyurl.com/3dd27c", "http://tinyurl.com/39dp8o", "http://tinyurl.com/3c29tr", "http://tinyurl.com/35lpxs"];



var split = new Array();

images = document.getElementsByTagName("img")
for(x = 0; x < images.length; x++)
{
	// search for ribbon images only, clientWidth = 80 and clientHeight = 23
	if (images[x].clientWidth == "80" && images[x].clientHeight == "23")
	{
		// ex. I just need the 'kit-anti-tank-class1' string
		split = images[x].src.split("/");
		// split[4] = 'kit-anti-tank-class1.jpg'

		// we want the filename at the front
		split.reverse();

		// id = 'kit-anti-tank-class1'
		id = split[0].replace(".jpg", "");

		// search for this name inside of ribbon_name array
		// and we are looking for the index number of that element
		// if id is not in index we just want to display that name instead
		// of a 'pretty' name - for http://www.tacticalgamer.com/images/ribbons/
		index = ribbon_name.indexOf(id);
		if(index == -1)
		{
			// ex. 'outstanding-volunteer'
			purdy = id;
		}
		else
		{
			// index should be a number between 0-245
			// now find that element in pretty array that corresponds
			purdy = pretty[index];
		}

		// our 12th ribbons don't play nice
		switch(purdy)
		{
			case "Drill Instructor":
				link = "http://tinyurl.com/y3jtyj";
			break
			case "Combat Action":
				link = "http://tinyurl.com/2dlzj9";
			break
			case "Distinguished Squad":
				link = "http://www.tacticalgamer.com/tactical-gamer-awards-presentation/";
			break
			case "Distinguised Sniper":
				link = "http://tinyurl.com/39dp8o"
			break
			case "Distinguished Defense":
				link = "http://tinyurl.com/yusx3k";
			break
			case "Distinguished Conduct":
				link = "http://tinyurl.com/26qe8q";
			break
			case "Distinguished Medic":
				link = "http://tinyurl.com/3d3vam";
			break
			case "Distinguished Commander":
				link = "http://tinyurl.com/27ttsj";
			break
			// this will be diplayed for most ribbons
			default:
				z = (index / 6);
				num = Math.floor(z);
				link = linky[num];
		}

		// some ribbons don't have a forum thread associated, so just default here
		if(link == null)
		{ link = "http://www.tacticalgamer.com/tactical-gamer-awards-presentation/"; }


		// need a copy of the image tag
		clone = images[x].cloneNode(1);

		// creating the actual anchor tag with relevant link
		// ex. '<a href="http://tinyurl.com/2fny8y"></a>'
		anchor = document.createElement("a");
		anchor.setAttribute("href", link);

		// append the img tag as a child of this anchor
		anchor.appendChild(clone);

		// if image is already in an anchor tag
		if(images[x].parentNode.tagName == "A")
		{
			// get the grandparent of the img.
			// because we want to replace both the img tag AND
			// its parent anchor tag
			gparent = images[x].parentNode.parentNode;
			gparent.replaceChild(anchor, images[x].parentNode);
		}

		// ribbon image is not currently wrapped in an anchor tag
		else
		{
			images[x].parentNode.replaceChild(anchor, images[x]);
		}

		// now we want to add a title attribute to our image
		// ex. title="kit-anti-tank-class1"
		var newAttr = document.createAttribute("title");
		newAttr.nodeValue = purdy;
		images[x].setAttributeNode(newAttr);
	}
}

