var retrieve_ingredients_http = false;
var retrieve_instructions_http = false;
var retrieve_greensteel_http = false;
var retrieve_effects_http = false;
var retrieve_bonus_effects_http = false;
var retrieve_bonus_effects2_http = false;
var bonus3EffectArray
var bonus2EffectArray
var effectsArray
var origBonus2 = -1;
var startTime = 0;
var tier3Count = 0;
var savedData = null;
var dataFile = "load_data";
var preTier1 = 0;
var preTier2= 0;
var preTier3= 0;
var preTier4= 0;
var preBonus1= 0;
var preBonus2= 0;
var preItem= 0;
var preAltC = 0;
var redirect = "";
var trackedTier1 = 0;
var trackedTier2= 0;
var trackedTier3= 0;
var trackedTier4= 0;
var trackedBonus1= 0;
var trackedBonus2= 0;
var trackedItem= 0;
var trackedAltC = 0;
var b1 = "";
var b2 = "";
var e1 = "";
var e2 = "";
var e3 = "";
var e4 = "";
var gs = "";

function ShowHide(which)
{
    if (which == "instructions")
    {
        $("#fullDiv").css('display', 'none');
        redirect = which;
    }
    else if (which == "ingredients")
    {
        $("#fullDiv").css('display', 'none');
        redirect = which;
    }
}
function redirectOutput()
{
    if (redirect == "instructions")
    {
        $("#cleanOutput").html($("#instructionList").html());
    }
    else if (redirect == "ingredients")
    {
        $("#cleanOutput").html($("#ingredientList").html());
    }
}

function inactivateForm(type)
{
    startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));
    document.getElementById("responseTimes").innerHTML = "";

    var form = document.forms["craftForm"];

    if (type == 3) {
        form.elements["tier3_2Effect"].selectedIndex = 0;
    }
    else if (type == 1 && form.elements["tier3_2Effect"].selectedIndex > 0)
    {
        form.elements["tier3_2Effect"].selectedIndex = 0;
        form.elements["tier3BonusEffect"].selectedIndex = 0;
    }
    form.elements["greenSteel"].disabled = true;
    form.elements["tier1Effect"].disabled = true;
    form.elements["tier2Effect"].disabled = true;
    form.elements["tier3_1Effect"].disabled = true;
    form.elements["tier3_2Effect"].disabled = true;
    form.elements["tier2BonusEffect"].disabled = true;
    form.elements["tier3BonusEffect"].disabled = true;
    form.elements["Reset"].disabled = true;
    form.elements["Export1"].disabled = true;
    form.elements["Export2"].disabled = true;
    
    document.getElementById("tier3_1_div").style.backgroundColor = "";
    document.getElementById("tier3_2_div").style.backgroundColor = "";
    document.getElementById("tier3_1_dom").innerHTML = "";
    document.getElementById("tier3_2_dom").innerHTML = "";   

    updateGreensteelList();
}
function activateForm()
{
//document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til activateForm:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
    startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

    var form = document.forms["craftForm"];

    if (form.elements["tier2BonusEffect"].length == 2 && form.elements["tier3BonusEffect"].selectedIndex > 0 && form.elements["tier2BonusEffect"].selectedIndex == 0) {
        form.elements["tier2BonusEffect"].selectedIndex = 1;
        //inactivateForm();
    }
    //else {
    if (form.elements["tier3_2Effect"].selectedIndex > 0 && form.elements["tier3_1Effect"].selectedIndex > 0) {
        var tier3Value = 0;
        var tier4Value = 0;
        var tier3Effect, tier4Effect;

        tier3Effect = tier3Value = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text;
        tier4Effect = tier4Value = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text;

        if (tier4Value.indexOf("Fire/") > 0 && tier3Value.indexOf("Earth/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Fire/") > 0 && tier4Value.indexOf("Earth/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else if (tier4Value.indexOf("Earth/") > 0 && tier3Value.indexOf("Air/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Earth/") > 0 && tier4Value.indexOf("Air/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else if (tier4Value.indexOf("Air/") > 0 && tier3Value.indexOf("Water/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Air/") > 0 && tier4Value.indexOf("Water/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else if (tier4Value.indexOf("Water/") > 0 && tier3Value.indexOf("Fire/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Water/") > 0 && tier4Value.indexOf("Fire/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else if (tier4Value.indexOf("Fire/") > 0 && tier3Value.indexOf("Air/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Fire/") > 0 && tier4Value.indexOf("Air/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else if (tier4Value.indexOf("Earth/") > 0 && tier3Value.indexOf("Water/")  > 0) {
            tier4Value = 1;
            tier3Value = 0;
        }
        else if (tier3Value.indexOf("Earth/") > 0 && tier4Value.indexOf("Water/")  > 0) {
            tier4Value = 0;
            tier3Value = 1;
        }
        else {
            tier4Value = tier4Value.indexOf("Water/") > 0 ? 6 :
                 tier4Value.indexOf("Fire/") > 0 ? 5 :
                 tier4Value.indexOf("Earth/") > 0 ? 4 :
                 tier4Value.indexOf("Air/") > 0 ? 3 :
                 tier4Value.indexOf("Positive/") > 0 ? 2 : 1;

            tier3Value = tier3Value.indexOf("Water/") > 0 ? 6 :
                 tier3Value.indexOf("Fire/") > 0 ? 5 :
                 tier3Value.indexOf("Earth/") > 0 ? 4 :
                 tier3Value.indexOf("Air/") > 0 ? 3 :
                 tier3Value.indexOf("Positive/") > 0 ? 2 : 1;
        }
        
        if (tier3Value > tier4Value) {
            document.getElementById("tier3_1_div").style.backgroundColor = "#99FF99";
            document.getElementById("tier3_2_div").style.backgroundColor = "#FF9999";
            document.getElementById("tier3_1_dom").innerHTML = "You will receive this effect";
            document.getElementById("tier3_2_dom").innerHTML = "You will NOT receive this effect";
        }
        else {
            document.getElementById("tier3_2_div").style.backgroundColor = "#99FF99";
            document.getElementById("tier3_1_div").style.backgroundColor = "#FF9999";
            document.getElementById("tier3_2_dom").innerHTML = "You will receive this effect";
            document.getElementById("tier3_1_dom").innerHTML = "You will NOT receive this effect";
        }
    }
    
    form.elements["greenSteel"].disabled = false;
    form.elements["tier1Effect"].disabled = false;
    form.elements["tier2Effect"].disabled = false;
    form.elements["tier3_1Effect"].disabled = false;

    if (tier3Count > 1 && form.elements["tier3_1Effect"].selectedIndex > 0 && form.elements["tier3BonusEffect"].selectedIndex > 0)
        form.elements["tier3_2Effect"].disabled = false;
    else
        form.elements["tier3_2Effect"].disabled = true;

    form.elements["tier2BonusEffect"].disabled = false;
    form.elements["tier3BonusEffect"].disabled = false;
    form.elements["Reset"].disabled = false;
    form.elements["Export1"].disabled = false;
    form.elements["Export2"].disabled = false;
    
   // }
}
function announceValues()
{
    var form = document.forms["craftForm"];
    var base = 0;
    var tier1 = 0;
    var tier2 = 0;
    var tier3 = 0;
    var tier3 = 4;
    var bonus1 = 0;
    var bonus2 = 0;
    var url, request;

    retrieve_effects_http = false;
    retrieve_effects_http = xml_http_request_object();

    var b2I = form.elements["tier2BonusEffect"].selectedIndex;
    var b3I = form.elements["tier3BonusEffect"].selectedIndex;

    base = form.elements["greenSteel"].options[form.elements["greenSteel"].selectedIndex].value;
    tier1 = form.elements["tier1Effect"].options[form.elements["tier1Effect"].selectedIndex].value;
    tier2 = form.elements["tier2Effect"].options[form.elements["tier2Effect"].selectedIndex].value;
    tier3 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].value;
    tier4 = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].value;

    if (form.elements["tier2BonusEffect"].options.length == 2 && (tier1 != 0 || tier2 != 0))
        b2I = 1;
    if (form.elements["tier3BonusEffect"].options.length == 2 && (tier3 != 0 || tier4 != 0))
        b3I = 1;
        
    bonus1 = form.elements["tier2BonusEffect"].options[b2I].value;
    bonus2 = form.elements["tier3BonusEffect"].options[b3I].value;

    if (form.elements["tier3BonusEffect"].options.length == 1)
        bonus2 = -1;

    request = "base=" + base + "\r\n";
    request += "tier1=" + tier1 + "\r\n";
    request += "tier2=" + tier2 + "\r\n";
    request += "tier3=" + tier3 + "\r\n";
    request += "tier4=" + tier4 + "\r\n";
    request += "bonus1=" + bonus1 + "\r\n";
    request += "bonus2=" + bonus2 + "\r\n";
    
    alert(request);
    
}

function resetForm() {
    var form = document.forms["craftForm"];
    form.elements["greenSteel"].selectedIndex = 0;
    form.elements["tier2BonusEffect"].selectedIndex = 0;
    form.elements["tier3BonusEffect"].selectedIndex = 0;
    form.elements["tier1Effect"].selectedIndex = 0;
    form.elements["tier2Effect"].selectedIndex = 0;
    form.elements["tier3_1Effect"].selectedIndex = 0;
    form.elements["tier3_2Effect"].selectedIndex = 0;
     preTier1 = 0;
     preTier2= 0;
     preTier3= 0;
     preTier4= 0;
     preBonus1= 0;
     preBonus2= 0;
     preItem= 0;
     preAltC = 0;
     trackedTier1 = 0;
     trackedTier2= 0;
     trackedTier3= 0;
     trackedTier4= 0;
     trackedBonus1= 0;
     trackedBonus2= 0;
     trackedItem= 0;
     trackedAltC = 0;
    
    inactivateForm();
}

function updateMissingEffects() {
    var form = document.forms["craftForm"];
    var tier1, tier2, tier3_1, tier3_2;
    var bonus1, bonus2;
    var base, infoSpot;
    var tmpMissing = "";

    base = form.elements["greenSteel"].options[form.elements["greenSteel"].selectedIndex].text;
    tier1 = form.elements["tier1Effect"].options[form.elements["tier1Effect"].selectedIndex].text;
    tier2 = form.elements["tier2Effect"].options[form.elements["tier2Effect"].selectedIndex].text;
    tier3_1 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text;
    tier3_2 = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text;
    bonus1 = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].text;
    bonus2 = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].text;

    tmpMissing += base == "Undecided" ? "You must select a Greensteel Item, " : "";
    if (form.elements["tier2BonusEffect"].selectedIndex > 0 || form.elements["tier3BonusEffect"].selectedIndex > 0)
        tmpMissing += tier1 == "Undecided" ? "You must select a Tier 1 Effect, " : "";
    if (form.elements["tier2BonusEffect"].selectedIndex > 0 || form.elements["tier3BonusEffect"].selectedIndex > 0)
        tmpMissing += tier2 == "Undecided" ? "You must select a Tier 2 Effect, " : "";
    if (form.elements["tier3_1Effect"].options.length > 1 && form.elements["tier3BonusEffect"].selectedIndex > 0)
        tmpMissing += tier3_1 == "Undecided" ? "You must select a Tier 3 Effect, " : "";
    if (form.elements["tier3_2Effect"].options.length > 1 && form.elements["tier3BonusEffect"].selectedIndex > 0 && form.elements["tier3_1Effect"].selectedIndex > 0) {
        tmpMissing += tier3_2 == "Undecided" ? "You must select a Tier 3 Second Shard, " : "";
    }
    try {
        tmpMissing = tmpMissing.substr(0, tmpMissing.length - 2);
    }
    catch (e) { }

    if (tmpMissing != "") {
        $("#missingOptions").text(tmpMissing).css('display', 'block');
        document.getElementById("instructionList").innerHTML = "";
        document.getElementById("ingredientList").innerHTML = "";
    }
    else    
        $("#missingOptions").text("").css('display', 'none');
    
}

function doUpdate() {
    updateMissingEffects();
    processUpdateIngredients();
    displayEffect(2);
    displayEffect(3);
    retrieve_greensteel_http.abort();
    retrieve_greensteel_http = false;
    if (trackedTier1 != 0 || trackedTier2 != 0 || trackedTier3 != 0 || trackedTier4 != 0 || trackedBonus1 != 0 || trackedBonus2 != 0  || trackedItem != 0  || trackedAltC != 0)
    {
        $("#links").css('display', 'block');
        var url = window.location.href;
        url = url.substring(0, url.indexOf(".php") + 4);
        
        $("#baseLink").attr('href', url + "?base=" + trackedItem + "&tier1=" + trackedTier1 + "&tier2=" + trackedTier2 + "&tier3=" + trackedTier3 + "&tier4=" + trackedTier4  + "&bonus1=" + trackedBonus1   + "&bonus2=" + trackedBonus2  + "&altC=" + trackedAltC);
        $("#ingLink").attr('href', url + "?base=" + trackedItem + "&tier1=" + trackedTier1 + "&tier2=" + trackedTier2 + "&tier3=" + trackedTier3 + "&tier4=" + trackedTier4  + "&bonus1=" + trackedBonus1   + "&bonus2=" + trackedBonus2  + "&altC=" + trackedAltC + "&type=r");
        $("#instLink").attr('href', url + "?base=" + trackedItem + "&tier1=" + trackedTier1 + "&tier2=" + trackedTier2 + "&tier3=" + trackedTier3 + "&tier4=" + trackedTier4  + "&bonus1=" + trackedBonus1   + "&bonus2=" + trackedBonus2  + "&altC=" + trackedAltC + "&type=i");
       
    }
    else
    {
        $("#links").css('display', 'none');
    }
    if ($("#missingOptions").text() != "")
        $("#links").css('display', 'none');
    
    if (redirect != "")
        redirectOutput();
}

function processUpdateEffectLists(data) {        
//document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til processUpdateEffectLists:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

            var tmpSpan = "";
            var returnXML = savedData;
            var i = 0;
            var form = document.forms["craftForm"];
            /*
            var tier1, tier2, tier3_1, tier3_2;
            var bonus1, bonus2;
            
            tier1 = form.elements["tier1Effect"].options[form.elements["tier1Effect"].selectedIndex].text;
            tier2 = form.elements["tier2Effect"].options[form.elements["tier2Effect"].selectedIndex].text;
            tier3_1 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text;
            tier3_2 = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text;
            bonus1 = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].text;
            bonus2 = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].text;
            */
            var effects = returnXML.getElementsByTagName("effect");
            var tier1Data, tier2Data, tier3Data, tier4Data;
            tier1Data = "<select name=\"tier1Effect\" onchange=\"javascript:inactivateForm();\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            tier2Data = "<select name=\"tier2Effect\" onchange=\"javascript:inactivateForm();\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            tier3Data = "<select name=\"tier3_1Effect\" onchange=\"javascript:inactivateForm(1);\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            tier4Data = "<select name=\"tier3_2Effect\" onchange=\"javascript:inactivateForm();\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";

            for (i = 0; i < effects.length; i++)
            {
                if (effects[i].attributes.getNamedItem("selected").value == "true")
                {
                    if (effects[i].attributes.getNamedItem("tier").value == 1) {
                        tier1Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED >" + effects[i].attributes.getNamedItem("description").value + "</option>";
                        e1 = effects[i].attributes.getNamedItem("description").value;
                        e1 = e1.substring(0, e1.indexOf("&nbsp;"));
                    }
                    else if (effects[i].attributes.getNamedItem("tier").value == 2) {
                        tier2Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED >" + effects[i].attributes.getNamedItem("description").value + "</option>";
                        e2 = effects[i].attributes.getNamedItem("description").value;
                        e2 = e2.substring(0, e2.indexOf("&nbsp;"));
                    }
                    else if (effects[i].attributes.getNamedItem("tier").value == 3) {
                        tier3Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED >" + effects[i].attributes.getNamedItem("description").value + "</option>";
                        e3 = effects[i].attributes.getNamedItem("description").value;
                        e3 = e3.substring(0, e3.indexOf("&nbsp;"));
                    }
                    else if (effects[i].attributes.getNamedItem("tier").value == 4 && trackedTier4 == effects[i].attributes.getNamedItem("id").value) {
                        tier4Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED >" + effects[i].attributes.getNamedItem("description").value + "</option>";
                        e4 = effects[i].attributes.getNamedItem("description").value;
                        e4 = e4.substring(0, e4.indexOf("&nbsp;"));
                    }
                    else {
                        tier4Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("description").value + "</option>";
                    }
                }
                else
                {
                    if (effects[i].attributes.getNamedItem("tier").value == 1)
                        tier1Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("description").value + "</option>";
                    else if (effects[i].attributes.getNamedItem("tier").value == 2)
                        tier2Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("description").value + "</option>";
                    else if (effects[i].attributes.getNamedItem("tier").value == 3)
                        tier3Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("description").value + "</option>";
                    else if (effects[i].attributes.getNamedItem("tier").value == 4)
                        tier4Data += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("description").value + "</option>";
                }
                
            }   
             
            tier1Data += "</select>";
            tier2Data += "</select>";
            tier3Data += "</select>";
            tier4Data += "</select>";
                                    
            document.getElementById("effect_list1").innerHTML = tier1Data;
            document.getElementById("effect_list2").innerHTML = tier2Data;
            document.getElementById("effect_list3_1").innerHTML = tier3Data;
            document.getElementById("effect_list3_2").innerHTML = tier4Data;

        activateForm();
        doUpdate();
}

function displayEffect(which) {
    var form = document.forms["craftForm"];
    var infoSpot
    var bonus;

    if (which == 2) {
        bonus = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].value;
        infoSpot = document.getElementById("tier2BonusDesc");
        if (bonus != 0)
            infoSpot.innerHTML = bonus2EffectArray[bonus];
        else
            infoSpot.innerHTML = "";
    }
    else if (which == 3) {
        bonus = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].value;
        infoSpot = document.getElementById("tier3BonusDesc");
        if (bonus != 0)
            infoSpot.innerHTML = bonus3EffectArray[bonus];
        else
            infoSpot.innerHTML = "";
    }
}

function processUpdateBonusEffects(data) {
        
//document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til processUpdateBonusEffects:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

            var tmpSpan = "";
            var ingDiv = document.getElementById("bonus_effect_list2");
            var returnXML = savedData;
            var i = 0;
            var j = 0;
            var form = document.forms["craftForm"];
            //var bonus1 = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].text;
            //var bonus2 = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].text;

            var effects = returnXML.getElementsByTagName("bonusEffect");

            var tmpHeader = "<select name=\"tier2BonusEffect\" onchange=\"javascript:inactivateForm();\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            var tmpFill = "";

            bonus2EffectArray = new Array();
            bonus3EffectArray = new Array();

            for (i = 0; i < effects.length && effects[i].attributes.getNamedItem("tier").value == 2; i++) {
                if (effects[i].attributes.getNamedItem("selected").value == "true") {
                    tmpFill += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED>" + effects[i].attributes.getNamedItem("name").value + " ::: " + effects[i].attributes.getNamedItem("description").value + "</option>";
                    b1 = effects[i].attributes.getNamedItem("description").value;
                }
                else
                    tmpFill += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("name").value + " ::: " + effects[i].attributes.getNamedItem("description").value + "</option>";
                    
                bonus2EffectArray[effects[i].attributes.getNamedItem("id").value] = effects[i].attributes.getNamedItem("description").value;
            }

            if (i == 1) {
                tmpHeader = "<select name=\"tier2BonusEffect\" onchange=\"javascript:inactivateForm();\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            }

            tmpSpan = tmpHeader + tmpFill + "</select>";
            ingDiv.innerHTML = tmpSpan;

            ingDiv = document.getElementById("bonus_effect_list3");

            tmpHeader = "<select name=\"tier3BonusEffect\" onchange=\"javascript:inactivateForm(3);\" style=\"width:450px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            tmpFill = "";
            for (j = 0; i < effects.length && effects[i].attributes.getNamedItem("tier").value == 3; i++, j++) {
                if (effects[i].attributes.getNamedItem("selected").value == "true") {
                    tmpFill += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\" SELECTED>" + effects[i].attributes.getNamedItem("name").value + " ::: " + effects[i].attributes.getNamedItem("description").value + "</option>";
                    b2 = effects[i].attributes.getNamedItem("description").value;
                }
                else
                    tmpFill += "<option value=\"" + effects[i].attributes.getNamedItem("id").value + "\">" + effects[i].attributes.getNamedItem("name").value + " ::: " + effects[i].attributes.getNamedItem("description").value + "</option>";
                    
                bonus3EffectArray[effects[i].attributes.getNamedItem("id").value] = effects[i].attributes.getNamedItem("description").value;
            }

            tmpSpan = tmpHeader + tmpFill + "</select>";
            ingDiv.innerHTML = tmpSpan;
            
            tier3Count = form.elements["tier3BonusEffect"].length;

        processUpdateEffectLists(data);
}


function updateGreensteelList() {

document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til updateGreensteelList:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

savedData = null;
    var form = document.forms["craftForm"];
    var tier1, tier2, tier3, tier4;
    var bonus1, bonus2, base, altComponents;
    var url, request;

    retrieve_greensteel_http = false;
    retrieve_greensteel_http = xml_http_request_object();

    base = form.elements["greenSteel"].options[form.elements["greenSteel"].selectedIndex].value;
    tier1 = form.elements["tier1Effect"].options[form.elements["tier1Effect"].selectedIndex].value;
    tier2 = form.elements["tier2Effect"].options[form.elements["tier2Effect"].selectedIndex].value;
    tier3 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].value;
    tier4 = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].value;
    bonus1 = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].value;
    bonus2 = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].value;
    
    if (form.elements["altComponent"].checked)
        altComponents = 1;
    else
        altComponents = 0;
        
    if (preTier1 != 0)
        tier1 = preTier1;
    if (preTier2 != 0)
        tier2 = preTier2;
    if (preTier3 != 0)
        tier3 = preTier3;
    if (preTier4 != 0)
        tier4 = preTier4;
    if (preBonus1 != 0)
        bonus1 = preBonus1;
    if (preBonus2 != 0)
        bonus2 = preBonus2;
    if (preItem != 0)
        base = preItem;
    if (preAltC != 0)
        altComponents = preAltC;

    trackedTier1 = tier1;
    trackedTier2 = tier2;
    trackedTier3 = tier3;
    trackedTier4 = tier4;
    trackedBonus1 = bonus1;
    trackedBonus2 = bonus2;
    trackedItem = base;
    trackedAltC = altComponents;

    //url = "./" + dataFile + Math.floor(Math.random() * 8) + ".php";
    url = dataFile + ".aspx";
    request = "base=" + base;
    request += "&tier1=" + tier1;
    request += "&tier2=" + tier2;
    request += "&tier3=" + tier3;
    request += "&tier4=" + tier4;
    request += "&bonus1=" + bonus1;
    request += "&bonus2=" + bonus2;
    request += "&altC=" + altComponents;
    
     preTier1 = 0;
     preTier2= 0;
     preTier3= 0;
     preTier4= 0;
     preBonus1= 0;
     preBonus2= 0;
     preItem= 0;
     preAltC = 0;      
    
    $.get(url + "?" + request, processUpdateGreensteelList);

    //retrieve_greensteel_http.onreadystatechange = processUpdateGreensteelList;
    //retrieve_greensteel_http.open('POST', url, true);
    //retrieve_greensteel_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //retrieve_greensteel_http.send(request);
}

function processUpdateGreensteelList(data) {
    //if (retrieve_greensteel_http.readyState == 4) {
        document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til processUpdateGreensteelList:  " + (Math.round(((new Date()).getTime() - Date.UTC(1970, 0, 1))) - startTime);
        //if (retrieve_greensteel_http.status == 200) {
        savedData = data;
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

            var tmpSpan = "";
            var ingDiv = document.getElementById("greensteel_list");
            var returnXML = savedData;
            var form = document.forms["craftForm"];
            //var base;
            var tier1,tier2,tier3;
            //base = form.elements["greenSteel"].options[form.elements["greenSteel"].selectedIndex].text;
//document.getElementById("missingOptions");
            var valid = returnXML.getElementsByTagName("validity");
            if (valid[0].attributes.getNamedItem("isValid").value != "true")
            {
                $("#errMsg").text("The link you provided generated an invalid item, reverting to base").css('display', 'block');
                 trackedTier1 = 0;
                 trackedTier2= 0;
                 trackedTier3= 0;
                 trackedTier4= 0;
                 trackedBonus1= 0;
                 trackedBonus2= 0;
                 trackedItem= 0;
                 trackedAltC = 0;  
                 preTier1 = 0;
                 preTier2= 0;
                 preTier3= 0;
                 preTier4= 0;
                 preBonus1= 0;
                 preBonus2= 0;
                 preItem= 0;
                 preAltC = 0;                               
            }
            else
                $("#errMsg").css('display', 'none');

            var greensteels = returnXML.getElementsByTagName("item")

            tmpSpan = "<select id=\"greenSteel\" name=\"greenSteel\" onchange=\"javascript:inactivateForm();\" style=\"width:350px;\" disabled=\"disabled\"><option value=\"0\">Undecided</option>";
            for (var i = 0; i < greensteels.length; i++) {
                if (greensteels[i].attributes.getNamedItem("selected").value == "true") {
                    tmpSpan += "<option value=\"" + greensteels[i].attributes.getNamedItem("id").value + "\" SELECTED>" + greensteels[i].attributes.getNamedItem("name").value + "</option>";
                    gs = greensteels[i].attributes.getNamedItem("name").value;
                }
                else
                    tmpSpan += "<option value=\"" + greensteels[i].attributes.getNamedItem("id").value + "\">" + greensteels[i].attributes.getNamedItem("name").value + "</option>";
            }

            tmpSpan += "</select>";
            ingDiv.innerHTML = tmpSpan;
/*
            for (i = 0; i < form.elements["greenSteel"].length; i++) {
                if (form.elements["greenSteel"].options[i].text == base) {
                    form.elements["greenSteel"].selectedIndex = i;
                    i = 999;
                }
            }

            tier1 = form.elements["tier1Effect"].options[form.elements["tier1Effect"].selectedIndex].value;
            tier2 = form.elements["tier2Effect"].options[form.elements["tier2Effect"].selectedIndex].value;
            tier3 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].value;
            if (form.elements["greenSteel"].selectedIndex == 0 && (tier1 != 0 || tier2 != 0 || tier3 != 0))
                form.elements["greenSteel"].selectedIndex = 1;
*/
            //updateEffectLists(1);
        //}
        //retrieve_greensteel_http = false;
        processUpdateBonusEffects(data);
    //}
}

function processUpdateInstructions(data) {        
//document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til processUpdateInstructions:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

            var components = new Array();
            var ingredients = new Array();
            var tmpSpan = "";
            var ingCounter = 0;
            var comCounter = 0;
            var curComponent = "";
            var lastComponent = "";
            var curItem = "";
            var lastItem = "";
            var curTier = "";
            var lastTier = "-1";
            var doubleShard = false;
            var tier3Value = 0;
            var tier4Value = 0;
            var bonus = "";
            var doubleImbuedEffect;
            var form = document.forms["craftForm"];
            var tier3Effect, tier4Effect;
            var tier3SubEffect, tier4SubEffect;
            var tier2BonusEffect = "";
            var tier3BonusEffect = "";
            
            tier3Effect = tier3Value = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text;
            tier4Effect = tier4Value = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text;
            bonus = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].text;
            tier2BonusEffect = form.elements["tier2BonusEffect"].options[form.elements["tier2BonusEffect"].selectedIndex].text;
            tier3BonusEffect = form.elements["tier3BonusEffect"].options[form.elements["tier3BonusEffect"].selectedIndex].text;

            
            if (tier4Value.indexOf("Fire/") > 0 && tier3Value.indexOf("Earth/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Fire/") > 0 && tier4Value.indexOf("Earth/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else if (tier4Value.indexOf("Earth/") > 0 && tier3Value.indexOf("Air/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Earth/") > 0 && tier4Value.indexOf("Air/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else if (tier4Value.indexOf("Air/") > 0 && tier3Value.indexOf("Water/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Air/") > 0 && tier4Value.indexOf("Water/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else if (tier4Value.indexOf("Water/") > 0 && tier3Value.indexOf("Fire/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Water/") > 0 && tier4Value.indexOf("Fire/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else if (tier4Value.indexOf("Fire/") > 0 && tier3Value.indexOf("Air/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Fire/") > 0 && tier4Value.indexOf("Air/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else if (tier4Value.indexOf("Earth/") > 0 && tier3Value.indexOf("Water/")  > 0) {
                tier4Value = 1;
                tier3Value = 0;
            }
            else if (tier3Value.indexOf("Earth/") > 0 && tier4Value.indexOf("Water/")  > 0) {
                tier4Value = 0;
                tier3Value = 1;
            }
            else {
                tier4Value = tier4Value.indexOf("Water/") > 0 ? 6 :
                 tier4Value.indexOf("Fire/") > 0 ? 5 :
                 tier4Value.indexOf("Earth/") > 0 ? 4 :
                 tier4Value.indexOf("Air/") > 0 ? 3 :
                 tier4Value.indexOf("Positive/") > 0 ? 2 : 1;

                tier3Value = tier3Value.indexOf("Water/") > 0 ? 6 :
                 tier3Value.indexOf("Fire/") > 0 ? 5 :
                 tier3Value.indexOf("Earth/") > 0 ? 4 :
                 tier3Value.indexOf("Air/") > 0 ? 3 :
                 tier3Value.indexOf("Positive/") > 0 ? 2 : 1;
            }


            doubleImbuedEffect = " " + bonus.substr(0, bonus.indexOf("-"));
            
            var tier3RealEffect = ""
            if (tier3Value > tier4Value) {
                tier3RealEffect = e3;
                doubleImbuedEffect += "/ " + form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text.substr(0, form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].text.indexOf("-") - 2);
            }
            else {
                tier3RealEffect = e4;
                doubleImbuedEffect += "/ " + form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text.substr(0, form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].text.indexOf("-") - 2);
            }
            tier4SubEffect = tier4Effect.substr(tier4Effect.indexOf("-") + 3, tier4Effect.length - (tier4Effect.indexOf("-") + 3));
            tier3SubEffect = tier3Effect.substr(tier3Effect.indexOf("-") + 3, tier3Effect.length - (tier3Effect.indexOf("-") + 3));

            var form = document.forms["craftForm"];
            var base = form.elements["greenSteel"].options[form.elements["greenSteel"].selectedIndex].text;

            var ingDiv = document.getElementById("instructionList");
            var returnXML = savedData;

            var instructions = returnXML.getElementsByTagName("instruction");

            //tmpSpan = "<div><div style='font-weight:bold;padding-bottom:8px;'>Here's what you do: </div>";
            tmpSpan = "<div>";


            if (tier2BonusEffect.indexOf(":::") > 0)
                tier2BonusEffect = tier2BonusEffect.substring(tier2BonusEffect.indexOf(":::") + 3);
            else
                tier2BonusEffect = "";

            if (tier3BonusEffect.indexOf(":::") > 0)
                tier3BonusEffect = tier3BonusEffect.substring(tier3BonusEffect.indexOf(":::") + 3);
            else
                tier3BonusEffect = "";

            var specials = "";
            height = 35;
            if (e1.length > 0) {
                specials += ", " + e1;
            }
            if (e2.length > 0) {
                specials += ", " + e2;
            }
            if (tier3RealEffect.length > 0) {
                specials += ", " + tier3RealEffect;
            }
            if (tier2BonusEffect.length > 0) {
                height += 40;
                specials += "<br />" + tier2BonusEffect;
            }
            if (tier3BonusEffect.length > 0) {
                height += 40;
                specials += "<br />" + tier3BonusEffect;
            }
                
            tmpSpan += "<div style=\"font-weight:bold;padding-top:12px;clear:both;height:" + height + "px;font-size:14pt;\"><span style='float:left;clear:left;width:150px;'>To Make Your:</span><span style='float:left;clear:right;'>" + gs + specials + "</span></div><div style='clear:both;'>";

            for (var i = 0; i < instructions.length; i++) {
                curComponent = instructions[i].attributes.getNamedItem("component").value;
                curItem = instructions[i].attributes.getNamedItem("item").value;

                if (curComponent != lastComponent) {
                    if (lastComponent != "") {
                        if (ingCounter > 2) {
                            tmpSpan += "<div style='padding-bottom:8px;'>";
                            if (lastTier == "-1") {
                                if (curTier == 0)
                                    tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>At the Altar of Fecundity in Meridia</div>";
                                else if (curTier == 1)
                                    tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>At the Altar of Invasion in Phase 1 of the Shroud</div>";
                                else if (curTier == 2)
                                    tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>At the Altar of Subjugation in Phase 3 of the Shroud</div>";
                                else if (curTier == 3)
                                    tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>At the Altar of Devastation in Phase 5 of the Shroud</div>";

                                lastTier = curTier;
                            }
                            var imgList = "<td valign=\"bottom\">";
                            
                            tmpSpan += "<div style='padding-left:12px;'><table><tr><td valign=\"center\" width=\"370\">Make 1 <span style='color:Blue;font-weight:bold;'>" + lastComponent + "</span> by combining</td></tr></table></div>";
                            tmpSpan += "<div style='font-weight:bold;padding-left:24px;'>";
                            for (var j = 0; j < ingredients.length; j++) {
                                var img = "";
                                if (ingredients[j].indexOf(" Bone") > 0)
                                    img = "images/Bone.jpg";
                                else if (ingredients[j].indexOf(" Arrowhead") > 0)
                                    img = "images/Arrowhead.jpg";
                                else if (ingredients[j].indexOf(" Scales") > 0)
                                    img = "images/Scales.jpg";
                                else if (ingredients[j].indexOf(" Shrapnel") > 0)
                                    img = "images/Shrapnel.jpg";
                                else if (ingredients[j].indexOf(" Cell") > 0)
                                    img = "images/Cell.jpg";
                                else if (ingredients[j].indexOf(" Sulfurous ") > 0)
                                    img = "images/Stone.jpg";
                                else if (ingredients[j].indexOf(" Horn") > 0)
                                    img = "images/Horn.jpg";
                                else if (ingredients[j].indexOf(" Chain") > 0)
                                    img = "images/Chain.jpg";

                                if (img != "") {
                                    imgList += "<img src=\"" + img + "\" />";
                                }
                                
                                if (j == 0)
                                    tmpSpan += ingredients[j];
                                else if ((j + 1) == ingredients.length)
                                    tmpSpan += ", and " + ingredients[j];
                                else if ((j) < ingredients.length)
                                    tmpSpan += ", " + ingredients[j];
                            }
                            
                            imgList += "</td>";
                            tmpSpan = tmpSpan.replace("by combining</td></tr></table></div>", "by combining</td>" +imgList + "</tr></table></div>");
                            
                            tmpSpan += "</div>";
                            tmpSpan += "</div>";
                            tmpSpan += "</div>";
                            tmpSpan += "</div>";
                        }

                        ingredients = new Array();
                        ingCounter = 0;
                        components[comCounter++] = lastComponent;
                    }

                    lastComponent = curComponent;
                }

                if (curItem != lastItem) {
                    if (lastItem != "") {
                                                
                        tmpSpan += "<div style='padding-bottom:8px;background-color:LightGreen;'>";
                        tmpSpan += "<div style='padding-left:12px;'>Make 1 <span style='color:Blue;font-weight:bold;'>" + lastItem + "</span> by combining<div>";
                        tmpSpan += "<div style='font-weight:bold;padding-left:24px;'>";
                        for (var j = 0; j < components.length; j++) {
                            if (components[j].indexOf(" Horn") >= 0)
                            {
                                if (components[j].indexOf("Medium") >= 0)
                                    components[j] = "<font style=\"color:red;\">" + components[j] + "</font>";
                                else if (components[j].indexOf("Large") >= 0)
                                    components[j] = "<font style=\"color:#ff0066;\">" + components[j] + "</font>";
                            }
                            if (j == 0)
                                tmpSpan += components[j];
                            else if ((j) < components.length)
                                tmpSpan += ", " + components[j];
                        }
                        tmpSpan += "</div>";
                        tmpSpan += "</div>";
                        tmpSpan += "</div>";
                        tmpSpan += "</div>";

                        if (curTier > 0) {
                            if (curTier != 3 || instructions[i].attributes.getNamedItem("tier").value != "3") {
                                if (curTier == 3 && doubleShard) {
                                    tmpSpan += "<div style='padding-bottom:8px;background-color:#FFCCFF;'>";
                                    tmpSpan += "<div style='padding-left:12px;'>Make 1 Double Imbued Shard of Supreme Power <span style='color:Blue;font-weight:bold;'>(" + doubleImbuedEffect + ")</span> by combining<div>";
                                    tmpSpan += "<div style='font-weight:bold;padding-left:24px;'>";
                                    tmpSpan += "Shavarath High Energy Cell, 1 " + tier3SubEffect + " Imbued Shard of Supreme Power, and 1 " + tier4SubEffect + " Imbued Shard of Supreme Power ";
                                    tmpSpan += "</div>";
                                    tmpSpan += "</div>";
                                    tmpSpan += "</div>";
                                    tmpSpan += "</div>";
                                }

                                tmpSpan += "<div style='padding-bottom:8px;background-color:LightBlue;'>";
                                tmpSpan += "<div style='padding-left:12px;'>Upgrade your <span style='color:Blue;font-weight:bold;'>" + base + "</span> by combining<div>";
                                tmpSpan += "<div style='font-weight:bold;padding-left:24px;'>";

                                if (curTier == 1) {
                                    tmpSpan += base;
                                    tmpSpan += ", Shavarath Low Energy Cell, and Imbued Shard of Power ";
                                }
                                if (curTier == 2) {
                                    tmpSpan += "Tier 1 upgraded " + base;
                                    tmpSpan += ", Shavarath Medium Energy Cell, and Imbued Shard of Great Power ";
                                }
                                if (curTier == 3 && !doubleShard) {
                                    tmpSpan += "Tier 2 upgraded " + base;
                                    tmpSpan += ", Shavarath High Energy Cell, and Imbued Shard of Supreme Power ";
                                }
                                if (curTier == 3 && doubleShard) {
                                    tmpSpan += "Tier 2 upgraded " + base;
                                    tmpSpan += ", Shavarath High Energy Cell, and Double Imbued Shard of Supreme Power (" + doubleImbuedEffect + ")";
                                }
                                tmpSpan += "</div>";
                                tmpSpan += "</div>";
                                tmpSpan += "</div>";
                                tmpSpan += "</div>";
                            }
                            else {
                                doubleShard = true;
                            }
                        }
                        components = new Array();
                        comCounter = 0;
                    }

                    lastTier = "-1";
                    lastItem = curItem;
                }

                curTier = instructions[i].attributes.getNamedItem("tier").value;
                ingredients[ingCounter++] = instructions[i].attributes.getNamedItem("ingredient").value;
            }
            tmpSpan += "</div></div>";
            ingDiv.innerHTML = tmpSpan;
        updateMissingEffects();
}

function exportIngredients() {
    var form = document.forms["exporter"];
    var ingDiv = document.getElementById("ingredientList");
    form.action = "./exporter.php";
    form.target = "_blank";
    form.elements["data"].value = ingDiv.innerHTML;
    form.submit();
}

function exportInstructions() {
    var form = document.forms["exporter"];
    var ingDiv = document.getElementById("instructionList");
    form.action = "./exporter.php";
    form.target = "_blank";
    form.elements["data"].value = ingDiv.innerHTML;
    form.submit();
}

function processUpdateIngredients(data) {
        
//document.getElementById("responseTimes").innerHTML += "<br />Elapsed time til processUpdateIngredients:  " + (Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))) - startTime);
startTime = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1)));

            var tmpSpan = "";
            var ingDiv = document.getElementById("ingredientList");
            var returnXML = savedData;
            var curTier = 0;
            var lastTier = -1;
            var tier3, tier4;
            var form = document.forms["craftForm"];


            tier3 = form.elements["tier3_1Effect"].options[form.elements["tier3_1Effect"].selectedIndex].value;
            tier4 = form.elements["tier3_2Effect"].options[form.elements["tier3_2Effect"].selectedIndex].value;


            var ingredients = returnXML.getElementsByTagName("ingredient")

            //tmpSpan = "<div style='font-weight:bold;padding-bottom:8px;'>You'll need: </div>";
            tmpSpan = "<div>";
            for (var i = 0; i < ingredients.length; i++) {
                curTier = ingredients[i].attributes.getNamedItem("tier").value
                if (lastTier != curTier)
                    lastTier = -1;
                if (lastTier == -1) {
                    if (curTier == 0)
                        tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>From the Vale Explorer Area and Vale Quests Collect </div>";
                    else if (curTier == 1)
                        tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>From Phase 1 of the Shroud Collect</div>";
                    else if (curTier == 2)
                        tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>From Phase 2 and 3 of the Shroud Collect</div>";
                    else if (curTier == 3)
                        tmpSpan += "<div style='padding-left:0px;background-color:#FFFF99;font-weight:bold;padding-bottom:8px;padding-top:8px;'>From Phase 4 and 5 of the Shroud Collect</div>";

                    lastTier = curTier;
                }

                if (ingredients[i].attributes.getNamedItem("name").value == "Shavarath Low Energy Cell" ||
                    ingredients[i].attributes.getNamedItem("name").value == "Shavarath Medium Energy Cell") {
                    tmpSpan += "<div style='padding-left:12px;'>" + (parseInt(ingredients[i].attributes.getNamedItem("count").value) + 1) + "&nbsp;&nbsp;&nbsp;&nbsp;" + ingredients[i].attributes.getNamedItem("name").value + "</div>";
                }
                else if (ingredients[i].attributes.getNamedItem("name").value == "Shavarath High Energy Cell") {
                    if (tier3 > 0 && tier4 > 0) {
                        tmpSpan += "<div style='padding-left:12px;'>" + (parseInt(ingredients[i].attributes.getNamedItem("count").value) + 2) + "&nbsp;&nbsp;&nbsp;&nbsp;" + ingredients[i].attributes.getNamedItem("name").value + "</div>";
                    }
                    else {
                        tmpSpan += "<div style='padding-left:12px;'>" + (parseInt(ingredients[i].attributes.getNamedItem("count").value) + 1) + "&nbsp;&nbsp;&nbsp;&nbsp;" + ingredients[i].attributes.getNamedItem("name").value + "</div>";
                    }
                }
                else {
                    tmpSpan += "<div style='padding-left:12px;'>" + ingredients[i].attributes.getNamedItem("count").value + "&nbsp;&nbsp;&nbsp;&nbsp;" + ingredients[i].attributes.getNamedItem("name").value + "</div>";
                }
            }

            tmpSpan += "</div>";
            ingDiv.innerHTML = tmpSpan;
        processUpdateInstructions(data);
}

function xml_http_request_object() {
    var req = false;

    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (E) {
                req = false;
            }
        }
    }
    return req;
}
