﻿var skillSet = null;
var skTarget = null;
var skDisplay = null;
var skCurFam = 0;
var skCurCat = 0;

function initSkills() {
    var c, s;
    var titles = "";
    for (var k in skillSet) {
        $("#skFamC" + k).hide();
        $("#skFamL" + k).bind("click.sk", skShowFam);
        for (var f in skillSet[k].categories) {
            $("#skCatC" + f).hide();
            $("#skCatL" + f).bind("click.sk", skShowCat);
            c = skillSet[k].categories;
            for (var s in c[f].skills) {
                if (c[f].skills[s].on) {
                    document.getElementById("skChk" + s).checked = true;
                    titles += skillSet[k].title + ": " + c[f].skills[s].title + "<br />";
                }
            }
        }
    }

    $("#skCmdClearAll").bind("click.sk", skClearAll);
    $("#skCmdOK").bind("click.sk", skOK);
    $("#skCmdCancel").bind("click.sk", skCancel);
    $("#skLaunch").bind("click.sk", skLaunch);

    skDisplay.innerHTML = titles.substr(0, titles.length - 6);
}

function skShowFam(e) {
    var id = parseInt(e.target.id.substr(6));
    if (skCurFam != id && skCurFam > 0) { $("#skFamC" + skCurFam).hide(); $("#skFam" + skCurFam).removeClass("skactive"); }
    if (skCurCat != id && skCurCat > 0) { $("#skCatC" + skCurCat).hide(); $("#skCat" + skCurCat).removeClass("skactive"); }

    $("#skFamC" + id).show();
    $("#skFam" + id).addClass("skactive");
    skCurFam = id;

    var t = 0, c = null;
    for (c in skillSet[id].categories) {
        t++;
        if (t > 1) break;
    }
    if (c != null && t == 1) skShowCat({ "target": { "id": "skCatC" + c} });
    e.stopPropagation();
}

function skShowCat(e) {
    var id = parseInt(e.target.id.substr(6));
    if (skCurCat != id && skCurCat > 0) { $("#skCatC" + skCurCat).hide(); $("#skCat" + skCurCat).removeClass("skactive"); }
    $("#skCatC" + id).show();
    $("#skCat" + id).addClass("skactive");
    skCurCat = id;
    if (e.stopPropagation != null) e.stopPropagation();
}
function skClearAll(e) {
    for (var f in skillSet) {
        for (var c in skillSet[f].categories) {
            for (var s in skillSet[f].categories[c].skills) {
                document.getElementById("skChk" + s).checked = false;
            }
        }
    }
    if (e.stopPropagation != null) e.stopPropagation();
}
function skRefresh() {
    for (var f in skillSet) {
        for (var c in skillSet[f].categories) {
            for (var s in skillSet[f].categories[c].skills) {
                document.getElementById("skChk" + s).checked = skillSet[f].categories[c].skills[s].on;
            }
        }
    }
}
function skCancel(e) {
    $("#skillsSearch").hide();
    if (e.stopPropagation != null) e.stopPropagation();
}
function skOK(e) {
    var result = skBuild();
    skTarget.value = result.ids;
    skDisplay.innerHTML = result.titles;
    $("#skillsSearch").hide();
    if (e.stopPropagation != null) e.stopPropagation();
}
function skBuild() {
    var ids = "", titles = "";
    for (var f in skillSet) {
        for (var c in skillSet[f].categories) {
            for (var s in skillSet[f].categories[c].skills) {
                if (document.getElementById("skChk" + s).checked) {
                    skillSet[f].categories[c].skills[s].on = true;
                    ids += s + ",";
                    titles += skillSet[f].title + ": " + skillSet[f].categories[c].skills[s].title + "<br />";
                } else {
                    skillSet[f].categories[c].skills[s].on = false;
                }
            }
        }
    }
    return { "ids": ids.substr(0, ids.length -1), "titles": titles.substr(0, titles.length-6) };
}
function skLaunch(e) {
    skRefresh();
    $("#skillsSearch").show();
    if (e.stopPropagation != null) e.stopPropagation();
}
