Pardus Hack Helper

By rhindon Last update Feb 11, 2010 — Installed 431 times.

There are 4 previous versions of this script.

// ==UserScript==
// @name           Pardus Hack Helper
// @namespace      pardus.at
// @description    Allows pilot names to be saved and later retrieved on the Hack screen
// @include        http://*.pardus.at/hack.php*
// @version        1.3
// @author         Rhindon

// ==/UserScript==

// ////////////////////////////////////////////////////////////////////////
// User Defined Variables:
// ////////////////////////////////////////////////////////////////////////

var cookieName = "HackHelperNames";

// ////////////////////////////////////////////////////////////////////////
// Imported -- Rhindon's Standard Cookie Code 
//          -- Stores GreaseMonkey Values instead of actual Cookies
// ////////////////////////////////////////////////////////////////////////

function createCookie(name,value,days) {

	subdomain = window.location.host.substr(0, window.location.host.indexOf('.'));

	GM_setValue(subdomain + '-' + name,value);

}

function readCookie(name) {

	subdomain = window.location.host.substr(0, window.location.host.indexOf('.'));

	try {
		var temp = GM_getValue(subdomain + '-' + name);
		if(temp != '~~~DELETED~~~') return temp;
		return null;
       	} catch(err) {
       		return null;
	}
}

function eraseCookie(name) {
	createCookie(name,"~~~DELETED~~~");
}

function getUniverse() {
	return window.location.host.substr(0, window.location.host.indexOf('.'));
}

// ////////////////////////////////////////////////////////////////////////
// End imported code
// ////////////////////////////////////////////////////////////////////////



// ////////////////////////////////////////////////////////////////////////
// Beginning of Code
// ////////////////////////////////////////////////////////////////////////

function hackHelperInit() {


    var child = document.createElement("div")
    child.setAttribute("id", "hackHelperNameListDiv");

	btns = document.getElementsByTagName('button');

	var table;
	
	for(var i = 0; i < btns.length; i++) {
		if(btns[i].innerHTML == "Hack") {
			table = btns[i].parentNode.parentNode.parentNode;
		}
	}
	
	var row = table.insertRow(-1);

	var cell = row.insertCell(-1);
	cell.colSpan = 2;
	cell.align = "center";
	cell.appendChild(child);
	
	writeNameList();
}


function writeNameList() {

	var nameList = '<a id="saveName">Save Name in Textbox</a>';

	var namesHtml = getNamesHtml();

	nameList += "" + namesHtml;
	

	document.getElementById("hackHelperNameListDiv").innerHTML = nameList;

	
    document.getElementById("saveName").addEventListener('click', addName, true);

	createDeleteActions();

}




function addName() {

	var name = document.getElementsByName("lookup_name")[0].value;

	var nameStr = readCookie(cookieName);
	
	if(nameStr == null) {
		nameStr = name;
	} else {
		nameStr += "~" + name;
	}
	
	nameStr = cleanNameStr(nameStr);
	
	createCookie(cookieName, nameStr);
	
	writeNameList();
	
}

function deleteName(e) {
	
	var deleteName = '~' + e.target.id + '~';
	var nameStr = '~' + readCookie(cookieName) + '~';
	
	var newNameStr = nameStr.substr(0, nameStr.indexOf(deleteName)) + '~'
	newNameStr += nameStr.substr(nameStr.indexOf(deleteName) + deleteName.length);
	
	newNameStr = cleanNameStr(newNameStr);
	
//	alert(deleteName + '\n' + nameStr + '\n' + newNameStr);
	
	createCookie(cookieName, newNameStr);
	
	writeNameList();
}

function getNamesHtml() {

	var nameStr = readCookie(cookieName);
	
	nameStr = cleanNameStr(nameStr);
	
	if(nameStr == null || nameStr == "") return "";
	
	names = nameStr.split('~');
	
	
	var html = "";
	for(var i = 0; i < names.length; i++) {
	
		if(names[i] == "") return;
	
		if(i % 5 == 0) html += '<br>';
	
		html += "<a href=\"javascript:document.name_lookup.lookup_name.value = '" + names[i] + "'; document.name_lookup.method.value = document.hacking.method.value; document.name_lookup.submit();\">" + names[i] + "</a> <a name=\"deleteName\" id=\"" + names[i] + "\">X</a>";
		if(i < names.length - 1) html += " | ";
	}
	
	return html;
}

function createDeleteActions() {
	as = document.getElementsByName("deleteName");
	
	for(var i = 0; i < as.length; i++) {
		as[i].addEventListener('click', deleteName, true);
	}
}

function cleanNameStr(newNameStr) {

	if(newNameStr == null) return "";
	
	if(newNameStr.indexOf('~~') >= 0) {
		newNameStr = newNameStr.replace(/~~/g, '~');
	}

	if(newNameStr.indexOf('~') == 0) {
		newNameStr = newNameStr.substr(1);
	}

	if(newNameStr.lastIndexOf('~') == newNameStr.length - 1) {
		newNameStr = newNameStr.substr(0, newNameStr.length - 1);
	}
	
	return newNameStr;

}

hackHelperInit();