// ==UserScript==
// @name           WoD-Gegnersuche-MeineKlasse
// @namespace      http://hd42.de/wod
// @description    Fügt einen Button ein, um die Klasse des Helden direkt auszuwählen
// @include        http*://*.world-of-dungeons.*/wod/spiel/tournament*duell_search*
// ==/UserScript==

var el = document.getElementsByName("su_search_class")[0];
if(el && el.getAttribute('type')!='hidden'){
	var button = document.createElement('input');
	button.setAttribute('class', 'button');
	button.setAttribute('type', 'button');
	button.setAttribute('value', 'Eigene Klasse');
	button.addEventListener('click', selectClass, true);
	var cell = el.parentNode;
	cell.appendChild(button);
}

function selectClass(){
	var heroClasses = new Array();
		heroClasses['Aben']=22;
		heroClasses['Barb']=2;
		heroClasses['Bard']=7;
		heroClasses['Gauk']=71;
		heroClasses['Gele']=3;
		heroClasses['Glad']=1;
		heroClasses['Hasa']=17;
		heroClasses['Jäge']=4;
		heroClasses['Magi']=59;
		heroClasses['Pala']=67;
		heroClasses['Prie']=69;
		heroClasses['Quac']=30;
		heroClasses['Ritt']=68;
		heroClasses['Scha']=11;
		heroClasses['Schü']=21;
		heroClasses['Zaub']=23;
	var heroClass = findHeroClass();
	var heroClassCode = heroClasses[heroClass.substring(0,4)];

	GM_log('heroClass:'+heroClass+':'+heroClassCode);

	var classSelect = document.getElementsByName("su_search_class")[0];

	classSelect.value=heroClassCode;
}

function findHeroClass(){
  var heroClassImg = findFirstElementByClassName('img', 'font_Hero_Class');
  if(heroClassImg){
    return heroClassImg.alt
  }
  var heroShort = findFirstElementByClassName('table', 'hero_short');
  if(heroShort){
		var spans = heroShort.getElementsByTagName('span');
		return spans[1].firstChild.data;
	}
}

function findFirstElementByClassName(tagName, myClassName){
	var elements = document.getElementsByTagName(tagName);
	for (var i = 0; (i < elements.length); i++) {
	    if(trim(elements[i].className)==myClassName){
				return elements[i];
		}
	}
}

function trim(string) {
  return string.replace(/^\s+/, '').replace (/\s+$/, '');
}
