$(document).ready (function() {
    activateMenu();
});
//-------------------------------------
// menu
//-------------------------------------
function activateMenu() {
    $('LI.tab>A:not(:first)').click (
        function () {
            resetClasses();
            $(this).parent().addClass('on');
            return false;
        }
    );
    $('LI.tab>A:not(:first)').keypress (
        function() {
            resetClasses();
            $(this).parent().addClass('on');
            return false;
        }
    );
}
function resetClasses() {
    $('LI.tab').each(function() {
        if ($(this).hasClass('on')) {
            $(this).removeClass('on');
        }
    });
}
//-------------------------------------
// identity generator
//-------------------------------------
function ltrim(s) {
	return s.replace( /^\s*/, "" );
}
function rtrim(s) {
	return s.replace( /\s*$/, "" );
}
function clearOutput() {
	var form = document.forms.f1;
	form.yourtype.value = '';
	form.yourgame.value = '';
}
function Role(type,game) {
	this.type = type;
	this.game = game;
}
function chooseRole() {
	//list roles
	var vam = new Array(16);
	vam[0] = new Role('a Fledgling Razielim','the Soul Reaver era');
	vam[1] = new Role('a Fledgling Turelim','Soul Reaver');
	vam[2] = new Role('a Fledgling Dumahim','Soul Reaver');
	vam[3] = new Role('a Fledgling Rahabim','Soul Reaver');
	vam[4] = new Role('a Fledgling Zephonim','Soul Reaver');
	vam[5] = new Role('a Fledgling Melchahim','Soul Reaver');
	vam[6] = new Role('an Adult Razielim','the Soul Reaver era');
	vam[7] = new Role('an Adult Turelim','Soul Reaver');
	vam[8] = new Role('an Adult Dumahim','Soul Reaver');
	vam[9] = new Role('an Adult Rahabim','Soul Reaver');
	vam[10] = new Role('an Adult Zephonim','Soul Reaver');
	vam[11] = new Role('an Adult Melchahim','Soul Reaver');
	vam[12] = new Role('a Vampire Wraith','Soul Reaver');
	vam[13] = new Role('a Traitor Vampire','Blood Omen 2');
	vam[14] = new Role('a Cabal Vampire','Blood Omen 2');
	vam[15] = new Role('an Ancient Winged Vampire','pre-Blood Omen');

	var hyl = new Array(6);
	hyl[0] = new Role('a Device Operator','Blood Omen 2');
	hyl[1] = new Role('a Hylden Warrior','Blood Omen 2');
	hyl[2] = new Role('a Glyphwright','Blood Omen 2');
	hyl[3] = new Role('a Human Revenant','Defiance');
	hyl[4] = new Role('a Vampire Revenant','Defiance');
	hyl[5] = new Role('a Hylden Revenant','Defiance');

	var hum = new Array(10);
	hum[0] = new Role('a Tavern Landlord','Blood Omen');
	hum[1] = new Role('a Vampire Hunter','Soul Reaver');
	hum[2] = new Role('a Vampire Worshipper','Soul Reaver');
	hum[3] = new Role('a Sarafan Guard','Blood Omen 2');
	hum[4] = new Role('a Sarafan Knight','Blood Omen 2');
	hum[5] = new Role('a Glyph Guard','Blood Omen 2');
	hum[6] = new Role('a Glyph Knight','Blood Omen 2');
	hum[7] = new Role('a Industrial Quarter Worker','Blood Omen 2');
	hum[8] = new Role('a Thug','Blood Omen 2');
	hum[9] = new Role('a Vampire Hunter','Defiance');

	var huf = new Array(8);
	huf[0] = new Role('a Wench','Blood Omen');
	huf[1] = new Role('a Vampire Worshipper','Soul Reaver');
	huf[2] = new Role('a Sarafan Sorceress','Soul Reaver 2');
	huf[3] = new Role('an Industrial Quarter Worker','Blood Omen 2');
	huf[4] = new Role('a Thief','Blood Omen 2');
	huf[5] = new Role('an Eyeless Wretch','Blood Omen 2');
	huf[6] = new Role('a Vampire Hunter','Defiance');
	huf[7] = new Role('a Vampire Hunter Sorceress','Defiance');

	var cre = new Array(11);
	cre[0] = new Role('a Sluagh','Soul Reaver/Soul Reaver 2/Defiance');
	cre[1] = new Role('a Thrall','Soul Reaver 2');
	cre[2] = new Role('a Black Fire Demon','Soul Reaver 2');
	cre[3] = new Role('a Purple Gas Demon','Soul Reaver 2');
	cre[4] = new Role('a Red Fire Demon','Soul Reaver 2/Defiance');
	cre[5] = new Role('a Lightning Demon','Soul Reaver 2/Defiance');
	cre[6] = new Role('a Shade','Soul Reaver 2/Defiance');
	cre[7] = new Role('a Lesser Demon','Blood Omen 2');
	cre[8] = new Role('a Prison Guardian','Blood Omen 2');
	cre[9] = new Role('a Reaper Archon','Defiance');
	cre[10] = new Role('a Dreadnaught Archon','Defiance');

	// get inputs
	clearOutput();
	var form = document.forms.f1;
	var fname = rtrim(ltrim(form.fname.value));
	var lname = rtrim(ltrim(form.lname.value));
	var sex = form.sex.options[form.sex.selectedIndex].value;
	var grp = form.grp.options[form.grp.selectedIndex].value;
	var roles;
	var group;
	var yourRole;

	// validate
	var error = '';
	if (fname == '' || lname == '')
		error = error + '\n  * Please input your first and last name';
	if (sex == '0')
		error = error + '\n  * Male or Female? Please input your gender';
	if (error != ''){
		alert ('If you want to find out your Legacy of Kain persona, you need to fill in all fields:  \n' + error);
		return true;
	}

	var lcfname = fname.toLowerCase();
	var lclname = lname.toLowerCase();

	// make up the name
	var fullname = fname + lname;

	if (grp == 'vampire') {
		group = "Vampire";
		roles = vam;
	}
	else if (grp == 'hylden') {
		group = "Hylden";
		roles = hyl;
	}
	else if (grp == 'human') {
		group = "Human";
		if (sex == 'male') {
			roles = hum;
		}

		else if (sex == 'female') {
			roles = huf;
		}
	}
	else if (grp == 'creature') {
		group = "Creature";
		roles = cre;
	}

	var zz = 0;
	for (var ii = 0; ii < lclname.length; ii = ii+1)
		zz = zz + lclname.charCodeAt(ii);
		var ii =  parseInt(fullname.length * zz) % roles.length;
		yourRole = roles[ii];
		showRole(fname, lname, group, yourRole);
}
function showRole(fname, lname, group, yourRole) {
	var form = document.forms.f1;
	var myType = "";
	var myGame = "";
	var myRole = yourRole;

	myType = myRole.type;
	myGame = myRole.game;

	form.yourgroup.value = group;
	form.yourtype.value = myType;
	form.yourgame.value = myGame;

	var namestring = "A " + group + ' and your role would be ' + myType + ' from ' + myGame;
	alert(fname + ' ' + lname + ', in the Legacy of Kain series you would be:\n\n' + namestring);
}