var xptotal = 0;
var learnedskills = new Array();
learnedskills[0] = 0;
function clickedFam (f,a) {
    for (var i=0;i< a.length; i++) {
	document.getElementById(a[i]).style.display = 'none';
    }
    
    document.getElementById(f).style.display = 'block';
}
function showSkill (s,force) {
    if (document.getElementById(s + "td").className == "lskill") {
	var fail = 0;
	if (!force) {
	    for (var i=1;i<derev[s].length;i++) {
		if (document.getElementById(derev[s][i] +"td").className == "lskill") {
		    window.status = "You must surrender all skills which depend on this one.";
		    return false;
		}
	    }
	}
	var xp = xpamt[s] *1;
	dropXP(xptype[s],xp);
	document.p.types.options[0].value = (document.p.types.options[0].value * 1) - xp;
	document.p.xp.value = (document.p.xp.value * 1) - xp;
	document.p.skill.value = (document.p.skill.value *1) + (pt[s] *1);
	document.getElementById(s +"td").className = 'skills';
	document.getElementById(s +"td").style.border = "1px solid white";
	var re = /Novice/;
	if (re.test(sn[s])) {
	    document.getElementById("l" +fa[s]).style.background = '\#2C415A';
	    document.getElementById("l" +fa[s]).style.border = 'none';
	}
	doAbil(a[s]);
    } else {
	var fail = 0;
	if (!force) {
	    for (var i=1;i<dep[s].length;i++) {
		if (document.getElementById(dep[s][i] +"td").className != "lskill") {
		    window.status = "You must train "+ sn[dep[s][i]] +" before you can train this";
		    fail = 1;
		}
	    }
	}
	if ((document.p.skill.value *1) - (pt[s] *1) < 0) {
	    window.status = "Not enough skill points available";
	    return false;
	}
	if (!fail) {
	    var xp = xpamt[s] *1;
	    document.p.types.options[0].value = (document.p.types.options[0].value * 1) + xp;
	    document.p.xp.value = (document.p.xp.value * 1) + xp;
	    AddToList(xptype[s],document.p.types,xp);
	    document.p.skill.value = (document.p.skill.value *1) - (pt[s] *1);
	    document.getElementById(s +"td").className = 'lskill';
	    document.getElementById(s +"td").style.border = "1px solid blue";
	    document.getElementById("l" +fa[s]).style.background = 'red';
	    document.getElementById("l" +fa[s]).style.border = '1px solid white';
	    doAbil(a[s]);
	}
    }
    return false;
}
function skillOut (s) {
    var sty = document.getElementById(s + "td").className;
    if (sty == "lskill") {
	document.getElementById(s + "td").style.background = "\#142B46";
    } else {
	document.getElementById(s + "td").style.background = "\#2C415A";
    }
}
function doAbil (abil) {
    for (var i=1;i<abil.length;i++) {
	if (document.getElementById(abil[0] +"td").className != 'lskill') {
	    document.getElementById("abil" + abil[i]).style.display = 'none';
	} else {
	    document.getElementById("abil" + abil[i]).style.display = 'block';
	}
    }
    
}
function Append2Select(o, val,text) {
    o.options[o.options.length] = new Option (text, val);
}

function AddToList(type,to,amt) {
    if (type != "") {
	if (!isMem(type,amt)){
	    Append2Select (to, amt,type);
	}
    }
}
function dropXP (type,amt) {
    if (type != "") {
	for (var j = 0; j <document.p.types.options.length; j++){
	    if (document.p.types.options[j].text == type){
		document.p.types.options[j].value = (document.p.types.options[j].value *1) - amt;
		return true;
	    }
	}
    }
    return false;
}
function isMem (val,amt) {
    for (var j = 0; j <document.p.types.options.length; j++){
	if (document.p.types.options[j].text == val){
	    document.p.types.options[j].value = (document.p.types.options[j].value *1) + amt;
	    return true;
	}
    }
    return false;
}
function storeChar (name) {
    if (name) {
	window.status = "Saving character " + name + "....";
	for (var i=1; i < sn.length; i++) {
	    if (document.getElementById(i +"td")) {
		if (document.getElementById(i +"td").className == 'lskill') {
		    learnedskills[i] = 1;
		} else {
		    learnedskills[i] = 0;
		} 
	    } else {
		learnedskills[i] = 0;
	    }
	}
	var ls = learnedskills.join();
	document.qs.skills.value = ls;
	document.qs.name.value = name;
	document.qs.submit();
    }
}
function loadChar () {
    window.status = "Loading character...";
    for (var k=1; k < sk.length; k++) {
	window.status = k;
	if (sk[k]) {
	    showSkill(k,1);
	} 
    }
    window.status = "Loading character......done.";
}

function clearAll () {
    window.status = "Clearing all...";
    for (var i=1; i < sn.length; i++) {
	if (document.getElementById(i +"td")) {
	    if (document.getElementById(i +"td").className == 'lskill') {
		window.status = "Clearing... " + sn[i];
		showSkill(i,1);
	    }
	}
    }
    window.status = "...done...";
}

function pophelp (id) {
    window.open('/db/abilitypop.html?swgability='+ id, 'ability', 'status,resizable,scrollbars,width=300,height=300'); 
    return false;
}

function Over (cid) {
    cid.style.background = "#286BBE";
}
