﻿
// checked globals
var ingredient = new Ingredient
var Ingxml
var XML = {};
var gIsMulti = false
var ingSelBoxNo = 0 // set in getmaster
var ingSelBox = null // set in getmaster
var ingSelBoxCur
var IE = false;
var pluralization = 0 // set in chkplural
var nTb // table for ingredient
var saveSeq // to save the current ing seq during edit
var zeroLevel // this is the base level for the current ingredient subings

// unchecked globals    
var treestate = 0
var ingline = ""


var measgmwt = 0
var savefriend

var SubSetxml
var ingnode
var editype = 0

var xnodes
var dnodes

var stepsetroot
var qpref = "//NewDataSet/IngSet"
var qstring

var list = 2 // this var governs the display of ing list or ing chooser

// vars used in buffering ingred selection
var wint
var flag = 0
var buffer
var siteurl
var ie7 = 0
var ie7eventfail = 0




function init(recsub) {


    //document.getElementById('loadingProgress').className = "show"

    //          if (window.console) {
    //              window.console.log("should open : ");
    //          }
    //           retArray = showModalDialog('cookedIngs.aspx?cookid=4050', '', 'dialogWidth:500px;dialogHeight:500px;status:no;resizable:yes');
    //            
    //document.all["ibody"].style = "cursor: wait;"


    ingredient.recno = document.getElementById("recno").value
    ingredient.recsub = document.getElementById("recsub").value

    document.getElementById("ibody").style.cursor = "wait"
    // client side cookie info
    var aCookie = document.cookie.split("; ");
    for (var i = 0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if ("siteurl" == aCrumb[0])
            siteurl = aCrumb[1]
    }

    Xurl = "LocalServices.aspx"

    // set major browser check
    if (navigator.appName.substring(0, 1) == "M") {
        IE = true;
    }
    else {
        Net = true;
    }
    // set message markee
    document.getElementById("MessageFind").innerHTML = "To start choosing ingredients, type the first few letters of your desired ingredient in the box below."

    // friname is set in the code behind as part of the express functionality
    if (document.getElementById("friname").value == "") {
        getselIngreds()
        document.getElementById("ingfilter").value = ""
        document.getElementById("ingfilter").focus()
        document.getElementById("ingfilter").select()
    }
    else { // we have passed in a search term
        document.getElementById("ingfilter").value = document.getElementById("friname").value
        getselIngreds()
        if (document.getElementById("selIngreds").length > 0) {
            document.getElementById("selIngreds").selectedIndex = 0
            getMaster(document.getElementById("selIngreds"))
            document.getElementById("MessageFind").innerHTML = "Click on a blue or green ingredient to see sub-ingredients."
        }
        else {
            document.getElementById("MessageFind").innerHTML = "No ingredient found. Try looking in a broader category (eg. fruits, vegetables)"
            document.getElementById("ingfilter").focus()
            document.getElementById("ingfilter").select()
        }


    }
    //ingredient.seq = document.getElementById("seq").value
    //saveSeq = ingredient.seq;
    SetSequence(document.getElementById("seq").value)
    // if there is an existing recipe then show the ingredients
    if (document.getElementById("seq").value > 1) {
        list = 2
        switchRecList();
    }


    MessageAnimation("MessageFind")

    //alert(ingredient.recno.length)

    if (ingredient.recno == 0) {

        document.getElementById("hasRecNum").className == "hide";
        document.getElementById("noRecNum").className == "show";


    }
    else {
        document.getElementById("hasRecNum").className == "show";
        document.getElementById("noRecNum").className == "hide";

    }

    document.getElementById('loadingProgress').className = "hide"

}

function ClearIngSelect() {

    ingredient.Clear();
    document.getElementById("recipeingred").value = "";
    document.getElementById("foodtext").value = "";
    document.getElementById("recmeas").value = "";
    document.getElementById("recamt").value = "";
    document.getElementById("cooktext").value = "";
    document.getElementById("cooktext").title = "";

    for (var p = 0; document.getElementById("measures").length; p++) {
        document.getElementById("measures").remove(0);
    }
    for (var p = 0; document.getElementById("friends").length; p++) {
        document.getElementById("friends").remove(0);
    }
    setFraction("---");
    setFrac();
    document.getElementById("tblRight").className = "vHide";
    document.getElementById("tblLeft").className = "vHide";
    document.getElementById("content").className = "hideBlock";




}

// This is the function for the ingredient select from the center box or the sub ingredients
// web service return to populate ingredient dropdown
function getselIngreds() {

    // clear the ingredient info
    //            if (editype == 1) {
    //                test = window.confirm("Clear this ingredient?");
    //                if (test) {
    //                    editype=0;
    //                    ClearIngSelect();
    //                }
    //            }
    //            else {
    //                ClearIngSelect();
    //            }


    //ClearFields2()



    for (var p = 0; document.getElementById("selIngreds").length; p++) {
        document.getElementById("selIngreds").remove(0);
    }

    if (document.getElementById("ingfilter").value.length == 0) {
        document.getElementById("MessageFind").innerHTML = "To start choosing ingredients, type the first few letters of your desired ingredient in the box below."
    }
    else {
        document.getElementById("MessageFind").innerHTML = "Now click on an ingredient.  Click on a blue ingredient to see sub-ingredients."
    }



    document.getElementById("ibody").style.cursor = "default"

    var subsel = document.getElementById("ingfilter").value;
    if (subsel.length == 0) {
        subsel = "a"
    }
    uppersel = subsel.toUpperCase()
    lowersel = subsel.toLowerCase()

    lowersel = lowersel.replace('"', "'")


    // for util
    var allElements, thisElement;
    // process the input

    if (document.getElementById("xIngs") != null) {
        xmldoc = document.getElementById("xIngs")

    }


    xpex = '//IngBase[starts-with(lvch_friendlyname,"' + lowersel + '")]'

    theselect = document.getElementById("selIngreds")

    if (IE) {

        //xpex = '//IngBase[starts-with(lvch_friendlyname,"' + lowersel + '")]'

        Ingxml = new ActiveXObject("Microsoft.XMLDOM");
        Ingxml.setProperty("SelectionLanguage", "XPath")
        //btest = xmlData.loadXML(xmldoc.innerHTML);
        btest = Ingxml.loadXML(xmldoc.innerHTML);

        wnodes = Ingxml.selectNodes(xpex);
        theselect.options.length = 0;

        if (wnodes.length > 0) {

            drop = true;
            for (i = 0; i < wnodes.length; i++) {

                try {
                    theselect.options[i] = new Option(wnodes(i).childNodes[1].text, wnodes(i).childNodes[0].text);
                    if (wnodes(i).childNodes(3).text != "0" || wnodes(i).childNodes(4).text != "0" || wnodes(i).childNodes(5).text != "0") {
                        theselect.options[i].className = "multiIng"
                    }
                }
                catch (exception) {
                    result = reportRuntimeError(exception);
                    alert("fill select box error : " + result);
                }
            }
        }

    }
    else { // mozilla

        //xpex = "//IngBase[starts-with(lvch_friendlyname,'" + lowersel + "')]"


        //xpex = '//lvch_friendlyname[starts-with(., "' + lowersel + '")]';
        xpex = '//newdataset/ingbase[starts-with(lvch_friendlyname,"' + lowersel + '")]'

        var allElements = document.evaluate(xpex, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

        var allElements = document.evaluate(xpex, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
        thisElement = allElements.snapshotItem(0);
        theselect.options.length = 0;

        if (allElements.snapshotLength > 0) {
            drop = true;
            for (i = 0; i < allElements.snapshotLength; i++) {

                sNode = allElements.snapshotItem(i)
                theselect.options[i] = new Option(sNode.childNodes[1].textContent, sNode.childNodes[0].textContent);

                if (sNode.childNodes[3].firstChild.nodeValue != 0 || sNode.childNodes[4].firstChild.nodeValue != 0 || sNode.childNodes[5].firstChild.nodeValue != 0) {
                    theselect.options[i].className = "multiIng"
                }


            }
        }
    }
    ClearBoxes();
}

function getMaster(obin) {


    document.getElementById("welcomeSplash").className = "hide";

    // this gets called by the click event main select box or sub ingredients
    // clears all necessary vars and boxes  populates all the other fields

    // this clears the upper area
    if (editype == 1) {
        test = window.confirm("Clear existing ingredient?");
        if (test) {
            editype = 0;
            ClearIngSelect();
        }
    }
    else {
        // this clears the right side sub selects
        //ClearIngSelect();
    }

    document.getElementById("MessageFind").innerHTML = "Now click on an measure to describe how much of this ingredient to use."

    ie7eventfail = 1

    if (obin.selectedIndex == -1) {
        return
    }
    // it passes  the foodid and populates the measure list
    document.getElementById("ibody").style.cursor = "wait"

    // get the friendlyid
    //alert(obin.id)
    // check to see where the click came from and set the select box to receive the next cascade of ings
    ingSelBoxCur = obin
    if (obin.id == "selIngreds") {
        ingSelBoxNo = 0

        ingSelBox = document.getElementById("subIngs1")
    }
    else if (obin.id == "subIngs1") {
        //alert("found box")
        ingSelBoxNo = 1
        ingSelBox = document.getElementById("subIngs2")

    }
    else if (obin.id == "subIngs2") {
        ingSelBoxNo = 2
        ingSelBox = document.getElementById("subIngs3")

    }
    else if (obin.id == "subIngs3") {
        ingSelBoxNo = 3

    }



    // now populate the main ingredient selection areas
    if (obin[obin.selectedIndex].value != 0) { // if it is not just a heading

        ingredient.fnid = obin[obin.selectedIndex].value
        document.getElementById("ingtext").value = obin[obin.selectedIndex].text

    }
    else { // clear the ingredient fields
        ingredient.fnid = "";
        document.getElementById("ingtext").value = "";

    }

    SetSequence();

    // if it is the main select box go get the foomas_fk
    if (ingSelBoxNo == 0) {
        ClearBoxes()

        var foodid
        if (IE) {

            xpathQ = '//NewDataSet/IngBase[i_ingfrinam_id="' + obin[obin.selectedIndex].value + '"]'

            wnodes = Ingxml.documentElement.selectNodes(xpathQ);
            //document.getElementById("foodid").value = wnodes(0).childNodes(2).text
            ingredient.foodid = wnodes[0].childNodes[2].text
        }
        else {

            xpathQ = '//newdataset/ingbase[i_ingfrinam_id="' + obin[obin.selectedIndex].value + '"]'

            allElements = document.evaluate(xpathQ, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
            wnodes = allElements.snapshotItem(0);
            ingredient.foodid = wnodes.childNodes[2].firstChild.nodeValue;
        }

        zeroLevel = -1

        // if the class indicates it has children and a default then go get them (main level only)
        if (obin[obin.selectedIndex].className == "multiIng") {

            if (ingSelBoxNo == 0) {
                //alert(document.getElementById("fnid"].value)

                //                        pars = "&ilevel=0";

                //                        pars += "&ingid=" + ingredient.fnid;
                //                        //pars += "&ingid=" + document.getElementById("fnid").value
                //                        callService(getSubIngs, "GetIngSubsSelect", pars);
                //slevel, string singid

                var body = '{"slevel":0,"singid":';
                body = body + ingredient.fnid + '}';

                CallAjaxJsonService(getSubIngs, "GetIngSubsSelect", body)




            }
        }
        else { // if this ingred does not have children

            if (obin[obin.selectedIndex].className != "IngClass") {
                // took this out to stop second and third select cascades from clearing on click

            }

            if (obin[obin.selectedIndex].value != 0) { // if it is not just a heading
                if (ingredient.foodid != 0) {

                    var body = '{"recno":';
                    body = body + ingredient.foodid + '}';

                    CallAjaxJsonService(getTheSet, "GetMasterIngredInfo", body)

                    // pars = "&recno=" + ingredient.foodid
                    // callService(getTheSet, "GetMasterIngredInfo", pars);
                }
            }
            else { // clear the ingredient fields 
                //clearBoxes()
                //clearFields2()
            }

        }

    }

    // if it is a sub box find the level for that box
    if (ingSelBoxNo > 0) {



        ingredient.foodid = obin[obin.selectedIndex].getAttribute("foodid");

        if (obin[obin.selectedIndex].getAttribute("i_foolev_id") > 0) {

            var test = 0

            test = (Math.round(zeroLevel) + Math.round(ingSelBoxNo));
            //pars = "&ilevel=" + test

            //pars += "&ingid=" + obin[obin.selectedIndex].getAttribute("i_foolev_id");

            ingredient.saveFnid = obin[obin.selectedIndex].value
            ingredient.saveFriendText = obin[obin.selectedIndex].text
            //callService(getSubIngs, "GetIngSubsSelect", pars);


            var body = '{"slevel":' + test + ',"singid":';
            body = body + obin[obin.selectedIndex].getAttribute("i_foolev_id") + '}';

            CallAjaxJsonService(getSubIngs, "GetIngSubsSelect", body)




        }
        else {

            var body = '{"recno":';
            body = body + ingredient.foodid + '}';

            CallAjaxJsonService(getTheSet, "GetMasterIngredInfo", body)

            //                    pars = "&recno=" + ingredient.foodid
            //                    callService(getTheSet, "GetMasterIngredInfo", pars);

        }


        ingredient.recfnid = ingredient.fnid;

    }


    // need to put this back in
    //	    if (editype == 1) {  // it is an existing ingred edit
    //	        list = 1
    //	        switchRecList()
    //	        clearFields()
    //	        document.getElementById("seq").value = getMaxSeq()
    //	    }
    //	    else { //plug the new sequence #
    //	        document.getElementById("seq").value = getMaxSeq()
    //	    }

    document.getElementById("ingfilter").focus()

    ie7eventfail = 0

    document.getElementById("subIngs1i").src = "images/buttons/off/widen.jpg"
    document.getElementById("subIngs1").style.width = "275px"
    document.getElementById("subIngs2i").src = "images/buttons/off/widen.jpg"
    document.getElementById("subIngs2").style.width = "275px"
    document.getElementById("subIngs3i").src = "images/buttons/off/widen.jpg"
    document.getElementById("subIngs3").style.width = "275px"



    document.getElementById("inglistTd").className = "hide"
    list = 1;
    document.getElementById("content").className = "show"
    document.getElementById("showings").src = 'images/buttons/off/ShowIngredientsselected.jpg'


}



function SaveLine() {


    if (ingredient.recno == 0) {

        // check to see if they are logged in
        if (document.getElementById("huserno").value != 0) {
            // if they are then do an express recipe
            var recname = window.prompt("What is the name of this recipe.", "")

            if (recname == null) {

                alert("please enter a recipe name")
                return

            }
            window.parent.location = "expressRecipe.aspx?var1=" + document.getElementById("huserno").value + "&var2=" + ingredient.foodid + "&var3=" + recname;


        }
        else {
            alert("Please log-in or register.")
            getElementByIdEx("pnlNewUser", "div").className = "memberTable"
            go = 1
            return
        }
    }


    ingredient.seq = document.getElementById("seq").value
    ingredient.recsub = document.getElementById("recsub").value


    document.getElementById("stuff").value = document.getElementById("stuff").value + "sav"

    // validation here 
    if (document.getElementById("seq").value == "") {
        return
    }
    // check the measure and ing id
    if (ingredient.recmeasid == 0) {
        if (ie7eventfail = 0) {
            alert("Please choose a measure for this ingredient")
        }
        else {
            alert("Please choose a measure for this ingredient")
        }
        return
    }
    //alert("at save : " + document.all["recfnid"].value)
    if (document.getElementById("recipeingred").value.length == 0) {
        alert("Please choose an ingredient")
        return
    }

    if (document.getElementById("recamt").value == "" || document.getElementById("recamt").value == " ") {
        ingredient.recamt = ""
    }
    else {
        ingredient.recamt = document.getElementById("recamt").value
    }
    ingredient.recmeas = document.getElementById("recmeas").value

    if (ingredient.gmwgt == 0) {
        alert("Please choose an amount and measure")
        document.getElementById("ibody").style.cursor = "default"
        return
    }

    // if there is no measure amount
    if (document.getElementById("recamt").value == "" || document.getElementById("recamt").value == " ") {
        frac = document.getElementById("fraction")
        if (frac[frac.selectedIndex].text == "---") {
            document.getElementById("ibody").style.cursor = "default"
            alert("please enter an amount")
            return
        }

    }
    else {// validate the recamt


        splprep = document.getElementById("recamt").value.split("-")
        //alert(splprep.length)

        if (splprep.length == 2) { // it is a range
            if (isNaN(splprep[0]) == true) {
                alert("amount cannot be recognized - please adjust to a non-fraction number")
                document.getElementById("ibody").style.cursor = "default"
                return
            }
            if (isNaN(splprep[1]) == true) {
                alert("amount cannot be recognized - please adjust to a non-fraction number")
                document.getElementById("ibody").style.cursor = "default"
                return
            }
            document.getElementById("recamt").value = Math.round((Math.round(splprep[0]) + Math.round(splprep[1])) / 2)

        }
        if (splprep.length > 2) { // it is bad
            alert("amount cannot be recognized - please adjust to a non-fraction number")
            document.getElementById("ibody").style.cursor = "default"
            return
        }
        if (isNaN(document.getElementById("recamt").value) == true) {
            alert("amount cannot be recognized - please adjust to a non-fraction number")
            document.getElementById("ibody").style.cursor = "default"
            return
        }

    }


    //alert(document.all["recipeingred"].value.length)
    if (document.getElementById("recipeingred").value.length == 0) {
        document.getElementById("ibody").style.cursor = "default"
        alert("please choose an ingredient name")
        return
    }



    //alert(measgmwt == undefined)
    document.getElementById("ibody").style.cursor = "wait"

    if (editype == 0) {  // this is a new ingredient



        setFrac()
        saveFriendly()

        ingredient.totgms = ingredient.gmwgt * ingredient.calcamt;

        var body = '{"recno":"' + ingredient.recno + '",';
        body += '"recsub":"' + ingredient.recsub + '",';
        body += '"foodid":"' + ingredient.foodid + '",';
        body += '"recamt":"' + ingredient.recamt + '",';
        body += '"calcamt":"' + ingredient.calcamt + '",';
        body += '"fracdisp":"' + ingredient.fracdisp + '",';
        body += '"recmeas":"' + ingredient.recmeas.replace(/"/g, "\\\"") + '",';
        body += '"recmeasid":"' + ingredient.recmeasid + '",';
        body += '"friend":"' + ingredient.saveFriendText.replace(/"/g, "\\\"") + '",';
        body += '"fnid":"' + ingredient.saveFnid + '",';
        body += '"totgms":"' + ingredient.totgms + '",';
        body += '"seq":"' + ingredient.seq + '"';

        CallAjaxJsonService(ingInsert, "insertIngredLine", body)


        if (document.getElementById('subIngs1').style.width = "700px") {
            widen('subIngs1')
        }
        if (document.getElementById('subIngs2').style.width = "700px") {
            widen('subIngs2')
        }
        if (document.getElementById('subIngs3').style.width = "700px") {
            widen('subIngs3')
        }
        document.getElementById("ibody").style.cursor = "default"

    }
    if (editype == 1) { // this is an edit of an existing row



        // persist to database
        setFrac()
        saveFriendly()
        // we can't calc measgmwt on a change so the sp now does this
        //measgmwt = ingnode(0).childNodes(6).text	
        //totgms = measgmwt * calcamt
        ingredient.totgms = 0

        //alert("   foodid : " + document.all["foodid"].value + "   recamt : " + recamtout + "   calcamt : " + calcamt + "   fracdisp : " +  fracdisp + "   recmeas : " + document.all["recmeas"].value + "   recmeasid : " + document.all["recmeasid"].value + "   saveFriendText : " + saveFriendText + "   saveFnid : " + saveFnid + "   totgms : " + totgms + "  seq : " + document.all["seq"].value + "   recid : " + recid)
        // int foodid, string recamt, float calcamt, string fracdisp, string recmeas, int recmeasid, string friend, 
        // int fnid, float totgms, int seq, int recid



        var body = '{"foodid":"' + ingredient.foodid + '",';
        body += '"recamt":"' + ingredient.recamt + '",';
        body += '"calcamt":"' + ingredient.calcamt + '",';
        body += '"fracdisp":"' + ingredient.fracdisp + '",';
        body += '"recmeas":"' + ingredient.recmeas.replace(/"/g, "\\\"") + '",';
        body += '"recmeasid":"' + ingredient.recmeasid + '",';
        body += '"friend":"' + ingredient.saveFriendText.replace(/"/g, "\\\"") + '",';
        body += '"fnid":"' + ingredient.saveFnid + '",';
        body += '"totgms":"' + ingredient.totgms + '",';
        body += '"seq":"' + ingredient.seq + '",';
        body += '"recid":"' + ingredient.curRec + '",';
        body += '"cookid":"' + ingredient.cookid + '"';

        CallAjaxJsonService(editIng, "updateIngredLine", body)




        editype = 0
    }
    document.getElementById("ibody").style.cursor = "default"

    //            //finally turn off the upper ingredient area
    //            document.getElementById("content").className = "hideBlock";

    //            // now show the ingredients already selected
    //            pars = "&recsub=" + document.getElementById("recsub").value
    //            callService(getIntitalIngSet, "GetRecSubIngs", pars);



    document.getElementById("MessageFind").innerHTML = "To start choosing ingredients, type the first few letters of your desired ingredient in the box below."


    if (list == 1) { // if currently showing ingredient chooser
        document.getElementById("ingfilter").focus()
    }



}

function delIng(result) {

    if (result.retVal == "-1") {
        //var xfaultstring = result.errorDetail.string;
        alert("error deleting ingredient");
        return
    }
    else { // clear

        ClearFields2();
        ClearBoxes();
        SetSequence(result.retVal)
        editype = 0;

    }
}


function editIng(result) { // this is the return from an edit ingredient




    if (result == "-1") { // this will return an error code on failure
        //var xfaultstring = result.errorDetail.string;
        alert("error updating ingredient");
        return
    }
    else {
        // now check for cooked versions of this ingredient

        SetSequence(result.retVal);
        chk4CookedId = ingredient.foodid;
        //pars = "&ingId=" + ingredient.foodid;
        //callService(checkCooked, "checkCooked", pars);

        var body = '{"ingId":';
        body = body + ingredient.foodid + '}';


        CallAjaxJsonService(checkCooked, "checkCooked", body)

    }
}


function ingInsert(result) { // return from insert the new ingredient
    if (result == "0") {
        //var xfaultstring = result.errorDetail.string;
        alert("error inserting ingredient");
        return
    }
    else {

        //resAR = result.split("|")
        // set the seq
        SetSequence(result[0].cntseq);
        ingredient.curRec = result[2].newIngId;

        // if there are cooked ings
        if (result[1].cookedIngs > 0) {
            chk4CookedId = ingredient.foodid;
            retArray = showModalDialog('cookedIngs.aspx?cookid=' + chk4CookedId, '', 'dialogWidth:500px;dialogHeight:500px;status:no;resizable:yes');

            if (retArray != 0) {

                //pars = "&currec=" + ingredient.curRec;
                //pars += "&cookid=" + retArray;
                //callService(setCooked, "setCooked", pars);

                var body = '{"curRec":' + ingredient.curRec + ',"cookid":';
                body = body + retArray + '}';

                CallAjaxJsonService(setCooked, "setCooked", body)

                document.getElementById("ibody").style.cursor = "default"
            }

        }
        //                chk4CookedId = ingredient.foodid;
        //                pars = "&ingId=" + ingredient.foodid;
        //                callService(checkCooked, "checkCooked", pars);
        ClearFields2()
        document.getElementById("MessageFind").innerHTML = "To start choosing ingredients, type the first few letters of your desired ingredient in the box below."

        list = 2
        switchRecList();


    }
}

function checkCooked(result) {

    intResult = 0
    intResult = Math.round(result.retVal)

    if (result == "-1") {
        //var xfaultstring = result.errorDetail.string;
        alert("error getting cooked ingredient");
        return
    }
    else {
        if (intResult > 0) {
            retArray = showModalDialog('cookedIngs.aspx?cookid=' + chk4CookedId, '', 'dialogWidth:500px;dialogHeight:500px;status:no;resizable:yes');

            if (retArray != 0) {

                //pars = "&currec=" + ingredient.curRec;
                //pars += "&cookid=" + retArray;
                //callService(setCooked, "setCooked", pars);

                var body = '{"curRec":' + ingredient.curRec + ',"cookid":';
                body = body + retArray + '}';

                CallAjaxJsonService(setCooked, "setCooked", body)

            }
            else {
                ClearFields2();
                ClearBoxes();
                list = 2
                switchRecList();
            }

        }
        else {
            ClearFields2();
            ClearBoxes();
            list = 2
            switchRecList();
        }
    }
}

// this function gets the existing ingredients
function getIntitalIngSet(dataBack) {
    if (dataBack == "0") {
        //var xfaultstring = result.errorDetail.string;
        alert("error getting ingredients");
        return
    }
    else {

        // this function deletes the old Ing Rows and inserts a fresh copy

        nTb = document.getElementById("inglist")

        var totrows = document.getElementById("inglist").rows.length
        for (var d = 2; d < totrows - 1; d++) {

            document.getElementById("inglist").deleteRow(2)
        }

        slot = 0
        var inslot = 0
        var loopchk = 0
        slot = 0
        var inslot = 0
        var oldslot = 0

        for (var x = 0; x < dataBack.length; x++) {

            var curow = nTb.insertRow(x + 2);


            //      0           1           2           3           4           5           6           7           8           9               10              11          12          13                  14          15      16              17
            //old  i_recing_id i_rec_fk    i_recsub_fk i_foomas_fk i_recamt    f_calcamt    f_totgms  i_mea_fk  i_ingfrinam_fk i_ingSequence  vch_fracdisp   vch_recmeas  vch_ingname i_foomascooked_fk vch_cookedDesc vch_plural, vch_singular, Gm_Wgt

            //columns - 9 - 5 - 11 - 12

            // new : f_calcamt f_totgms



            newCell = curow.insertCell(0);
            //newCell.setAttribute('isDrag', '0');

            newCell.setAttribute('class', 'locListTd');

            if (IE) { // IE

                aElement = document.createElement('<input type="button" onclick="chkLine(this)" />');
            }
            else { // FF
                aElement = document.createElement('input');
                aElement.setAttribute('type', 'button');
                aElement.setAttribute('onclick', 'chkLine(this)');
            }


            aElement.setAttribute('id', 'ing-' + dataBack[x].i_recing_id);
            aElement.setAttribute('fracdisp', dataBack[x].vch_fracdisp);
            aElement.setAttribute('recmeas', dataBack[x].vch_recmeas);
            aElement.setAttribute('recmeasPlural', dataBack[x].vch_plural);
            aElement.setAttribute('recmeasSingular', dataBack[x].vch_singular);
            aElement.setAttribute('recmeasid', dataBack[x].i_mea_fk);
            aElement.setAttribute('saveFriendText', dataBack[x].vch_ingname);
            aElement.setAttribute('recfnid', dataBack[x].i_ingfrinam_fk);
            aElement.setAttribute('foodid', dataBack[x].i_foomas_fk);
            aElement.setAttribute('cooktext', dataBack[x].vch_cookedDesc);
            aElement.setAttribute('cookid', dataBack[x].i_foomascooked_fk);
            if (dataBack[x].i_recamt != "0") {
                aElement.setAttribute('recamt', dataBack[x].i_recamt);
            }
            else {
                aElement.setAttribute('recamt', "");
            }
            aElement.setAttribute('calcamt', dataBack[x].f_calcamt);
            aElement.setAttribute('totgms', dataBack[x].f_totgms);
            aElement.setAttribute('gmwgt', dataBack[x].Gm_Wgt);


            aElement.setAttribute('class', 'locListButton');
            ingredient.gmwgt

            aElement.value = dataBack[x].i_ingSequence;

            newCell.setAttribute('align', 'center');
            newCell.appendChild(aElement)
            newCell = curow.insertCell(1);
            newCell.setAttribute('align', 'center');
            if (dataBack[x].i_recamt != "0") {
                newCell.innerHTML = dataBack[x].i_recamt + " " + dataBack[x].vch_fracdisp;
            }
            else {
                newCell.innerHTML = dataBack[x].vch_fracdisp;

            }
            newCell1 = curow.insertCell(2);
            //newCell1.setAttribute('align', 'center');
            //newCell1.setAttribute('colspan', '2');
            newCell1.innerHTML = dataBack[x].vch_recmeas;

            newCell2 = curow.insertCell(3);
            newCell2.innerHTML = dataBack[x].vch_ingname;

        }

        SetSequence(document.getElementById("inglist").rows.length - 3)



        document.getElementById("inglistDiv").scrollTop = document.getElementById("inglistDiv").scrollHeight

        noings = 0
        //list = 1;
        //switchRecList();
        //document.getElementById("inglistTd").className = "inglist"
        //document.getElementById("content").className = "hide"

        document.body.style.cursor = "default"
    }

}

function chkLine(obin) {  // respond to the existing ingredient edit click


    switchRecList();
    document.getElementById("content").className = "show"

    ingredient.Clear();

    document.getElementById("stuff").value = document.getElementById("stuff").value + "ck1"

    var idar = obin.id.split("-")

    // if it is coming from the ingredient list
    if (idar.length == 2) {
        editype = 1

        ingredient.curRec = idar[1]

        // think this is related to auto recipe
        document.getElementById("stuff").value = document.getElementById("stuff").value + "x1"

        // load the screen fields

        saveSeq = document.getElementById("seq").value
        document.getElementById("seq").value = obin.value;
        ingredient.seq = obin.value;

        //ingredient.recamt = obin.recamt;
        ingredient.recamt = obin.getAttribute("recamt");

        // display
        if (ingredient.recamt != 0) { // display 0 as " "
            document.getElementById("recamt").value = ingredient.recamt
        }
        else {
            document.getElementById("recamt").value = " "
        }

        ingredient.fracdisp = obin.getAttribute("fracdisp")

        setFraction(ingredient.fracdisp);  // set the fraction display
        setFrac(); // sets the ingredient object values

        // display
        ingredient.recmeas = obin.getAttribute("recmeas")
        ingredient.recmeasPlural = obin.getAttribute("recmeasPlural")
        ingredient.recmeasSingular = obin.getAttribute("recmeasSingular")
        document.getElementById("recmeas").value = ingredient.recmeas


        ingredient.recmeasid = obin.getAttribute("recmeasid")

        // ingredient friendly name display
        ingredient.saveFriendText = obin.getAttribute("saveFriendText");
        document.getElementById("recipeingred").value = ingredient.saveFriendText


        ingredient.foodid = obin.getAttribute("foodid");
        ingredient.recfnid = obin.getAttribute("recfnid");


        // clear the actual ingredient data
        document.getElementById("foodtext").value = ""

        // then get the values based on id
        // this does not seem to be hooked up
        //document.getElementById("fnid").click()
        ingredient.totgms = obin.getAttribute("totgms")
        ingredient.gmwgt = obin.getAttribute("gmwgt")


        ingredient.cooktext = obin.getAttribute("cooktext")
        ingredient.cookid = obin.getAttribute("cookid")



        document.getElementById("cooktext").value = ingredient.cooktext
        document.getElementById("cooktext").title = ingredient.cooktext
        //document.all["cookid"].value = ingnode(0).childNodes(13).text

        // only used once to get cooked
        //curRec = ingnode(0).childNodes(0).text
        // now populate the measures and friendlies


        var body = '{"recno":';
        body = body + ingredient.foodid + '}';

        CallAjaxJsonService(getTheSet, "GetMasterIngredInfo", body)


        //pars = "&recno=" + ingredient.foodid
        //callService(getTheSet, "GetMasterIngredInfo", pars);

        // now set the display back to the standard 
        //switchRecList()

    }

    document.getElementById("stuff").value = document.getElementById("stuff").value + "ck2"

    return false

}


function setFraction(valin) {
    frac = document.getElementById("fraction")
    for (r = 0; r < frac.length; r++) {
        if (frac[r].text == valin) {

            frac[r].selected = true
        }
    }
}

// this function get the ingredients from a fnid that has children and puts them in a select box
function getSubIngs(dataBack) {
    if (dataBack == "0") {

        alert("get sub ingred info failure ");
    }
    else {
        // ingSelBoxNo tells us where the click came from - 0 = main select box
        // we have persisted the current clicked select box to ingSelBoxCur

        document.getElementById("tblRight").className = "vShow";

        // clear the measures box  - ingSelBox global scope ?
        for (var p = 0; ingSelBox.length; p++) {
            ingSelBox.remove(0);
        }
        // new
        // cnt descrip foomas i_foolev_id i_ingfrinam_id ilevel

        //old
        //ilevel foid  descrip  i_ingfrinam_id  i_foolev_id  cnt



        for (var x = 0; x < dataBack.length; x++) {
            //document.getElementById("friends").options[x] = new Option(dataBack[x].vch_friendlyName, dataBack[x].i_ingfrinam_id);

            // set the base level for the subings
            // this is the global scope base level for the current ingredient subings
            if (zeroLevel == -1) {
                zeroLevel = dataBack[x].ilevel

            }

            ingSelBox.options[x] = new Option(dataBack[x].descrip, dataBack[x].foomas);
            ingSelBox.options[x].setAttribute("i_foolev_id", dataBack[x].i_foolev_id);
            ingSelBox.options[x].setAttribute("foodid", dataBack[x].foomas);




            //                    ingSelBox.options[x] = new Option(stepAr[2], stepAr[1]);
            //                    ingSelBox.options[x].setAttribute("i_foolev_id", stepAr[4]);
            //                    ingSelBox.options[x].setAttribute("foodid", stepAr[1]);

            // set the class to indicate sub ings or default
            if (dataBack[x].foomas == "0" && dataBack[x].cnt != "0") {
                // it has children but no default ingred
                ingSelBox.options[x].className = "IngClass"
            }
            if (dataBack[x].foomas != "0" && dataBack[x].cnt != "0") {
                // it has children and a default
                ingSelBox.options[x].className = "multiIng"
            }



        }


    }
    document.getElementById("ibody").style.cursor = "default"

    // now chain to the info on this ingred
    if (ingredient.foodid != 0) {

        var body = '{"recno":';
        body = body + ingredient.foodid + '}';

        CallAjaxJsonService(getTheSet, "GetMasterIngredInfo", body)


        //pars = "&recno=" + ingredient.foodid
        //callService(getTheSet, "GetMasterIngredInfo", pars);
    }



}





//this is the ingredient and measure info
function getTheSet(dataBack) {

    if (dataBack == "0") {

        alert("get ingred info for ingred failure ");
    }
    else {

        //finally turn on the upper ingredient area
        //switchRecList();


        document.getElementById("tblLeft").className = "vShow";


        //columns new: Amount Gm_Wgt i_fooMas_id i_mea_fk vch_Description vch_plurall vch_singular


        document.getElementById("foodtext").value = dataBack[0].vch_Description;
        document.getElementById("foodtext").title = dataBack[0].vch_Description;
        ingredient.foodid = dataBack[0].i_fooMas_id;
        // clear the measures box
        for (var p = 0; document.getElementById("measures").length; p++) {
            document.getElementById("measures").remove(0);
        }

        for (var x = 0; x < dataBack.length; x++) {

            document.getElementById("measures").options[x] = new Option(dataBack[x].vch_singular, dataBack[x].i_mea_fk);
            document.getElementById("measures").options[x].setAttribute("plural", dataBack[x].vch_plurall);
            document.getElementById("measures").options[x].setAttribute("gmwgt", dataBack[x].Gm_Wgt);


        }


        // if there is only one measure
        if (document.getElementById("measures").length == 1) {
            document.getElementById("measures").selectedIndex = 0
            setMeasure(document.getElementById("measures"));

        }
        else { // make sure the mesures area is clean
            if (editype != 1) // if in ingredient edit leave this area alone
            {
                document.getElementById("recmeas").value = ""
                ingredient.recmeas = ""
                ingredient.recmeasSingular = ""
                ingredient.recmeasid = 0
                ingredient.recmeasPlural = ""
                ingredient.gmwgt = 0
            }
        }


        if (ingredient.foodid != 0) {


            var body = '{"foodid":';
            body = body + ingredient.foodid + '}';

            CallAjaxJsonService(getOtherFriendlys, "getFriendlyCousins", body)

        }
    }
}

function getOtherFriendlys(dataBack) {
    // remove the existing friends
    for (var p = 0; document.getElementById("friends").length; p++) {
        document.getElementById("friends").remove(0);
    }
    if (dataBack.length == 0) {
        // took out this check 06/10 json conv
        //alert("get ingred info for ingred failure ");
    }
    else {


        //i_ingfrinam_id   i_foomas_fk   vch_friendlyName    i_genFrom   i_show      d_create  i_used   vch_url  
        for (var x = 0; x < dataBack.length; x++) {
            document.getElementById("friends").options[x] = new Option(dataBack[x].vch_friendlyName, dataBack[x].i_ingfrinam_id);
        }

        // if it is not coming from an existing recipe ingred lookup then clear the ing name field
        if (editype != 1) {
            document.getElementById("recipeingred").value = ""
        }

        //if (xnodes.length==1){ //if there is just one
        if (dataBack.length > 0) { //changed this 08/03 to auto put in the first friendly which is the most used (i_used)

            if (document.getElementById("recipeingred").value.length == 0) { // first check to see if their is already a description
                document.getElementById("recipeingred").value = dataBack[0].vch_friendlyName
                ingredient.saveFnid = dataBack[0].i_ingfrinam_id
                //document.getElementById("recfnid").value = stepAr[0]
                ingredient.recfnid = dataBack[0].i_ingfrinam_id
                ingredient.fnid = dataBack[0].i_ingfrinam_id
            }
        }

        if (dataBack.length == 0) { // there are no freindlys

            if (document.getElementById("recipeingred").value.length < 2) { // first check to see if their is already a description
                document.getElementById("recipeingred").value = document.getElementById("foodtext").value
                ingredient.saveFriendText = document.getElementById("foodtext").value
            }
        }



    }
    document.getElementById("ibody").style.cursor = "default"
}




function setCooked(dataBack) {

    if (dataBack == "0") {
        alert("get cooked info failure ");

    }
    else {

        ingredient.cooktext = dataBack[0].vch_description
        document.getElementById("cooktext").value = ingredient.cooktext
        document.getElementById("cooktext").title = ingredient.cooktext
        document.getElementById("ibody").style.cursor = "default"
        ClearFields2();
        ClearBoxes();
        list = 2
        switchRecList();

    }
}

function setFriend(obin) {
    if (obin.selectedIndex == -1) {
        return
    }

    // set the ingredient description
    document.getElementById("recipeingred").value = obin[obin.selectedIndex].text
    // set the save friend to be able to tell if the description is changed by the user
    ingredient.saveFriendText = obin[obin.selectedIndex].text
    document.getElementById("recamt").focus()
    // set the friendly name id
    ingredient.fnid = obin[obin.selectedIndex].value
    ingredient.saveFnid = obin[obin.selectedIndex].value

}

function setMeasure(obin) {

    // TODO find out what stuff is for
    document.getElementById("stuff").value = document.getElementById("stuff").value + "m1"
    if (obin.selectedIndex == -1) {
        document.getElementById("stuff").value = document.getElementById("stuff").value + "ma"

        return
    }
    else

        document.getElementById("recmeas").value = obin[obin.selectedIndex].text
    ingredient.recmeas = obin[obin.selectedIndex].text
    ingredient.recmeasSingular = obin[obin.selectedIndex].text
    ingredient.recmeasid = obin[obin.selectedIndex].value
    ingredient.recmeasPlural = obin[obin.selectedIndex].getAttribute("plural");
    ingredient.gmwgt = obin[obin.selectedIndex].getAttribute("gmwgt");


    if (document.getElementById("recamt").value != "" && document.getElementById("recamt").value != " ") {

        ChkPlural(document.getElementById("recamt"), 1)
    }
    else {
        if (document.getElementById("fraction").value != "") {
            ChkPlural(document.getElementById("fraction"), 2)
        }
    }
    document.getElementById("stuff").value = document.getElementById("stuff").value + "mb"
    if (document.getElementById("recmeas").value.length > 0) {
        document.getElementById("recamt").focus()
    }

    document.getElementById("MessageFind").innerHTML = " Next enter an amount for the measure."

    return false;



}

function ChkPlural(obin, ifield) {

    if (ifield == 1) { // change coming from recamt
        if (obin.value > 0) {

            // recmeas is the display field
            if (document.getElementById("recmeas").value == "") { //no measure selected yet
                return
            }

            if (obin.value == 1) {
                if (document.getElementById("fraction").selectedIndex == 0) {
                    document.getElementById("recmeas").value = ingredient.recmeasSingular;
                }
            }
            else {
                document.getElementById("recmeas").value = ingredient.recmeasPlural

            }

            ingredient.recamt = document.getElementById("recamt").value;
            ingredient.calcamt = document.getElementById("recamt").value;
        }
        else {
            document.getElementById("recmeas").value = ingredient.recmeasSingular;
        }
    }
    if (ifield == 2) {// change coming from fraction
        if (obin[obin.selectedIndex].text == "---") { //no measure selected yet

            document.getElementById("recmeas").value = ingredient.recmeasSingular;
        }

        if (obin[obin.selectedIndex].text != "---") {
            if (ingredient.recamt != "" && ingredient.recamt != 0) { // there is a integer amount

                document.getElementById("recmeas").value = ingredient.recmeasPlural
                setFrac();

            }
            else {
                document.getElementById("recmeas").value = ingredient.recmeasSingular;
                setFrac();

            }
        }
        else { // there is no fraction selected
            document.getElementById("recmeas").value = ingredient.recmeasSingular;
            setFrac();
        }
    }

    document.getElementById("MessageFind").innerHTML = "You can now save this ingredient. To modify the description, click on another description from below or type a new one."




}


function cltest(obin) {

    if (flag == 0) {
        flag = 1
        wint = window.setInterval(showvalue, 400)
        buffer = obin.value
    }


}

function showvalue() {


    window.clearInterval(wint)
    if (document.getElementById("ingfilter").value != buffer) { // if still inputing set another interval and then check again
        buffer = document.getElementById("ingfilter").value
        wint = window.setInterval(showvalue, 400)
        return false;
    }
    flag = 0
    getselIngreds()
}

// get a subset for the select list based on the keyin in the box above the select list
function getIngsSubset(sub) {
    if (flag == 0) {
        flag = 1
        wint = window.setInterval(showvalue, 800)
        buffer = sub.value
    }


}

function switchRecList() {

    //document.getElementById("stuff").value = document.getElementById("stuff").value + "sw1"
    document.getElementById("welcomeSplash").className = "hide"


    if (list == 1) { //all ings
        //alert("CHOOSER")
        list = 2
        document.getElementById("inglistTd").className = "hide"
        //document.all["ingfilter"].className="hide"

        if (document.getElementById("recipeingred").value.length > 0) {

        }
        else {
            document.getElementById("content").className = "hideBlock"
        }

        //document.getElementById("content").className = "show"
        document.getElementById("showings").src = 'images/buttons/off/ShowIngredientsselected.jpg'
        document.getElementById("ingfilter").focus();
        document.getElementById("ingfilter").select();
        return false

    }
    if (list == 2) { //rec ings
        //alert("LIST")
        list = 1
        document.getElementById("showings").src = src = 'images/buttons/off/ShowIngredientchooser.jpg'
        document.getElementById("inglistTd").className = "inglist"
        document.getElementById("content").className = "hide"
        document.body.style.cursor = "wait"



        //pars = "&recsub=" + document.getElementById("recsub").value
        //callService(getIntitalIngSet, "GetRecSubIngs", pars);

        var body = '{"recsub":';
        body = body + document.getElementById("recsub").value + '}';

        CallAjaxJsonService(getIntitalIngSet, "GetRecSubIngs", body)

        document.body.style.cursor = "default"
        return false


    }
}


function ClearFields2() {
    ingredient.Clear();
    //document.getElementById("foodid").value = ""
    //document.getElementById("fnid").value = ""
    document.getElementById("ingtext").value = ""
    document.getElementById("cooktext").value = ""
    document.getElementById("recipeingred").value = ""
    //document.getElementById("recfnid").value = ""
    document.getElementById("recmeas").value = ""

    document.getElementById("foodtext").value = ""
    document.getElementById("foodtext").title = ""
    document.getElementById("recamt").value = ""
    frac = document.getElementById("fraction")
    frac.selectedIndex = 0
    frac[0].text == "---"
    frac[0].value == 0

    for (var p = 0; document.getElementById("measures").length; p++) {
        document.getElementById("measures").remove(0);
    }
    for (var p = 0; document.getElementById("friends").length; p++) {
        document.getElementById("friends").remove(0);
    }
    document.getElementById("ingfilter").value = "";
    document.getElementById("ingfilter").focus()
    cltest(document.getElementById("ingfilter"));
    document.getElementById("tblRight").className = "vHide";
    document.getElementById("tblLeft").className = "vHide";

}


function ClearBoxes() {

    if (ingSelBoxNo != 1) {
        for (var p = 0; document.getElementById("subIngs1").length; p++) {
            document.getElementById("subIngs1").remove(0);
        }
    }
    for (var p = 0; document.getElementById("subIngs2").length; p++) {
        document.getElementById("subIngs2").remove(0);
    }
    for (var p = 0; document.getElementById("subIngs3").length; p++) {
        document.getElementById("subIngs3").remove(0);
    }

}

function ClearBoxesSel() { // this is to clear select lists selectively based on which box the click came from

    if (ingSelBoxNo == 0) {
        for (var p = 0; document.getElementById("subIngs1").length; p++) {
            document.getElementById("subIngs1").remove(0);
        }
        for (var p = 0; document.getElementById("subIngs2").length; p++) {
            document.getElementById("subIngs2").remove(0);
        }
        for (var p = 0; document.getElementById("subIngs3").length; p++) {
            document.getElementById("subIngs3").remove(0);
        }
    }


    if (ingSelBoxNo == 1) {
        for (var p = 0; document.getElementById("subIngs2").length; p++) {
            document.getElementById("subIngs2").remove(0);
        }
        for (var p = 0; document.getElementById("subIngs3").length; p++) {
            document.getElementById("subIngs3").remove(0);
        }
    }

    if (ingSelBoxNo == 2) {
        for (var p = 0; document.getElementById("subIngs3").length; p++) {
            document.getElementById("subIngs3").remove(0);
        }
    }


}

function widen(obin) {
    imgnm = obin + "i"
    if (document.getElementById(obin).style.width == "275px" || document.getElementById(obin).style.width == "") {
        document.getElementById(imgnm).src = "images/buttons/off/back.jpg"
        document.getElementById(obin).style.width = "700px"
    }
    else {
        document.getElementById(imgnm).src = "images/buttons/off/widen.jpg"
        document.getElementById(obin).style.width = "275px"
    }
}

function ShowIngLine() { // called from the view button


    if (document.getElementById("seq").value == "") {
        return
    }

    setFrac()

    //alert(ingredient.calcamt)
    if (ingredient.calcamt == 0) {
        alert("Please choose an amount and measure")
        return;
    }



    var ingshow = new Array()
    ingshow[0] = "try again"
    ingshow[1] = "second"
    ingshow[2] = "third"


    //alert(measgmwt + " : " + calcamt)

    ingredient.totgms = ingredient.gmwgt * ingredient.calcamt

    formline()

    ingline = ingline + "$" + ingredient.totgms

    if (ingredient.cooktext.length > 0) {
        ingline = ingline + "*" + ingredient.cooktext
    }

    // ingline is array
    // first element is raw ing
    // first element is an array separated with $ with name as first element and totgms as second 
    // second element is cooked

    var sfeatures = "dialogWidth:600px;dialogHeight:150px;toolbar:no;center:yes;directories:no;status:no;scrollbars:yes;resize:yes;menubar:no"
    var retArray = showModalDialog("./htm/showIngredient.htm", ingline, sfeatures);

}

function formline() {

    setFrac()
    //ingline = document.getElementById("recamt").value + fracdisp + " " + ingredient.recmeas document.getElementById("recmeas").value + " " + document.getElementById("recipeingred").value
    ingline = document.getElementById("recamt").value + ingredient.fracdisp + " " + ingredient.recmeas + " " + document.getElementById("recipeingred").value

}

function deleteIng() {

    if (document.getElementById("seq").value == "") {
        return
    }


    if (ingredient.curRec == 0) {
        alert("This ingredient has not yet been saved - click 'New' to clear the screen.")
        return
    }

    if (window.confirm("Are you sure you want to delete : " + document.getElementById("recipeingred").value)) {
        //pars = "&recid=" + ingredient.curRec

        //callService(delIng, "deleteIngred", pars);

        var body = '{"srecid":';
        body = body + ingredient.curRec + '}';

        CallAjaxJsonService(delIng, "deleteIngred", body)



    }

}

function showNutrition() {

    if (ingredient.recfnid == "undefined") {

        alert("Please select an ingredient")
        return

    }

    if (ingredient.recfnid.length == 0) {

        alert("Please select an ingredient")
        return

    }

    if (ingredient.recfnid == 0) {

        alert("Please select an ingredient")
        return

    }

    //alert("foodid : " + ingredient.foodid + " recfnid : " + ingredient.recfnid);
    if (ingredient.recfnid == ingredient.foodid) {
        win = window.open('IngredientNutrition.aspx?foomasid=' + ingredient.foodid + '&meaid=' + ingredient.recmeasid, "DisplayWindow", "toolbar=no,width=500,height=600,top=100,left=275,directories=no,status=no,scrollbars=no,resize=no,menubar=no");
    }
    else {
        win = window.open('IngredientNutrition.aspx?ingfriId=' + ingredient.recfnid + '&meaid=' + ingredient.recmeasid, "DisplayWindow", "toolbar=no,width=500,height=600,top=100,left=275,directories=no,status=no,scrollbars=no,resize=no,menubar=no");
    }
}

function SetSequence(obin) {

    if (obin == "undefined") {
        obin = 0
    }


    if (editype != 1) {
        if (obin != null) {
            saveSeq = Math.round(obin) + 1
            document.getElementById("seq").value = saveSeq

        }
        else {
            document.getElementById("seq").value = saveSeq
        }

    }
    ingredient.seq = document.getElementById("seq").value

}


function setFrac() {
    frac = document.getElementById("fraction")

    if (frac[frac.selectedIndex].text == "---") {
        fracdisp = ""
        ingredient.calcamt = document.getElementById("recamt").value
        ingredient.fracdisp = frac[frac.selectedIndex].text
        ingredient.fracamt = frac[frac.selectedIndex].value
    }
    else {
        ingredient.fracdisp = frac[frac.selectedIndex].text
        ingredient.calcamt = document.getElementById("recamt").value + frac[frac.selectedIndex].value
        ingredient.fracamt = frac[frac.selectedIndex].value

    }
}

function saveFriendly() {
    //alert(document.all["recipeingred"].value + " : " + savefriend)
    if (document.getElementById("recipeingred").value == ingredient.saveFriendText) {
        ingredient.saveFnid = ingredient.recfnid;
    }
    else {
        ingredient.saveFriendText = document.getElementById("recipeingred").value
        ingredient.saveFnid = -1
    }
}

function NewIngredient() {
    editype = 0;
    ClearFields2();
    ClearBoxes();
    SetSequence();
}

function MessageOff() {

    if (document.getElementById("MarqueeBtn").value == "Off") {
        StopMarquee()
        document.getElementById("MessageFind").innerHTML = "Click the button on the right to turn step by step instructions on.";
        document.getElementById("MessageFind").className = "MarqueeOff"
        document.getElementById("MarqueeBtn").value = "On";
        document.getElementById("MarqueeBtn").title = "Turn step by step instructions on. ";
    }
    else {
        document.getElementById("MessageFind").innerHTML = "To start choosing ingredients, type the first few letters of your desired ingredient in the box below."

        MessageAnimation("MessageFind")
        document.getElementById("MessageFind").className = "midPanel"
        document.getElementById("MarqueeBtn").value = "Off";
        document.getElementById("MarqueeBtn").title = "Turn step by step instructions off. ";
        document.getElementById("ingfilter").focus();
    }
}

function ShowHelp() {

    win = window.open('htm/IngredientHelp.htm', "DisplayWindow", "toolbar=no,width=800,height=800,top=100,left=175,directories=no,status=no,scrollbars=yes,resize=no,menubar=no");

}

function Finished() {

    if (document.getElementById("ft").value == "1") {
        window.location = "step.aspx?recno=" + ingredient.recno + "&recsub=" + ingredient.recsub + "&ft=1";
    }
    else {
        window.location = "RWMain.aspx?recno=" + document.getElementById("recno").value;
    }

}
    
        

