var SelectedProdList = new Array();
var AvailProdList = new Array();
var SuggestedProds = new Array();
var AllProdList = new Array();

function updatecals()
{
    var calEl = document.getElementById("totCal");
    var waterEl = document.getElementById("totWater");
    var shelfLife = document.getElementById("totShelfLife");
    var myStorage = document.getElementById("totStorage");
    var costEl = document.getElementById("totPrice");
    var peopleSelected = document.getElementById("NumPeople").value;
    if (peopleSelected == "" || peopleSelected == "0")
    {
        peopleSelected = 1;
        document.getElementById("NumPeople").value = "1";
    }
    var x = document.getElementById("SustainTime");
    var daysToSustain = x.options[x.selectedIndex].value;
    
    var totalCalories = 0;
    var grandTotalCalories = 0;
    //var totalWater;
    var avgShelfLife = 0.0;
    var totalStorage = 0.0;
    var totalWeight = 0.0;
    var totalCost = 0.0;
    var numProducts = 0.0;
    var allSelSelected = true;
    var allAvailSelected = true;
    
    for (var i = 0; i < SelectedProdList.length; i++)
    {
        if (SelectedProdList[i].InCart)
        {
            totalCalories += SelectedProdList[i].TotalCalories * SelectedProdList[i].Quantity;
            avgShelfLife += SelectedProdList[i].ShelfLife * SelectedProdList[i].Quantity;        
            totalStorage += SelectedProdList[i].CubicFeet * SelectedProdList[i].Quantity;
            //totalWeight += SelectedProdList[i].NetWeight * SelectedProdList[i].Quantity;
            totalCost += SelectedProdList[i].UnitPrice * SelectedProdList[i].Quantity;
            numProducts += parseInt(SelectedProdList[i].Quantity);
        }
        else
       {
            allSelSelected = false;
        }

    }
    
    for (var i = 0; i < AvailProdList.length; i++)
    {
        if (AvailProdList[i].InCart)
        {
            totalCalories += AvailProdList[i].TotalCalories * AvailProdList[i].Quantity;
            avgShelfLife += AvailProdList[i].ShelfLife * AvailProdList[i].Quantity;        
            totalStorage += AvailProdList[i].CubicFeet * AvailProdList[i].Quantity;
            //totalWeight += AvailProdList[i].NetWeight * AvailProdList[i].Quantity;
            totalCost += AvailProdList[i].UnitPrice * AvailProdList[i].Quantity;
            numProducts += parseInt(AvailProdList[i].Quantity);
        }
        else
        {
            allAvailSelected = false;
        }
    }

if (allSelSelected)
   document.getElementById("SelSelected").innerHTML = "Unselect All";
else
   document.getElementById("SelSelected").innerHTML = "Select All";
if (allAvailSelected)
   document.getElementById("AvailSelected").innerHTML = "Unselect All";
else
   document.getElementById("AvailSelected").innerHTML = "Select All";    

    calEl.innerHTML = Math.round((totalCalories / (getSelectedTime() * peopleSelected))); // + " calories per person per day";
    var years = Number(avgShelfLife/numProducts);
    shelfLife.innerHTML = (isNaN(years) ? 0 : years.toFixed(1));
    myStorage.innerHTML = Number(totalStorage).toFixed(1);
    costEl.innerHTML = "$" + Number(totalCost).toFixed(2);
}


function Product(productnum, foodtype, packaging, unitprice, totalcalories, shelflife, cubicfeet, quantity, incart)
{
    this.ProductNum = productnum;
    this.FoodType = foodtype;
    this.Packaging = packaging;
    this.UnitPrice = unitprice;
    this.TotalCalories = totalcalories;
    this.ShelfLife = shelflife;
    this.CubicFeet = cubicfeet;
    this.Quantity = quantity;
    this.InCart = false;
}

function WriteSelectedProdList()
{
    var tableEl = document.getElementById("SelProdList");
    var i = 0;
    //remove extra rows
    for (i = 2; i < tableEl.rows.length; i)
    {
        //remove all existing products
        tableEl.deleteRow(i);
    }
    
    for(i = 0; i < SelectedProdList.length; i++)
    {   
        AddProductToTable(tableEl, SelectedProdList[i], false, i);
    }
}

function WriteAvailProdList()
{
    var tableEl = document.getElementById('AvlProdList');
    var i = 0;
    //remove extra rows
    for (i = 2; i < tableEl.rows.length; i)
    {
        //remove all existing products
        tableEl.deleteRow(i);
    }
    
    for(i = 0; i < AvailProdList.length; i++)
    {
        AddProductToTable(tableEl, AvailProdList[i], true, i);   
    }
}

function AddProductToTable(el, prod, add, i)
{
    var newRow = el.insertRow(el.rows.length); //add the item to the bottom of the table
    
    newRow.insertCell(0).innerHTML = prod.ProductNum;
    newRow.insertCell(1).innerHTML = prod.FoodType;
    newRow.insertCell(2).innerHTML = prod.Packaging;
    newRow.insertCell(3).innerHTML = "$" + Number(prod.UnitPrice).toFixed(2);
    newRow.insertCell(4).innerHTML = (prod.CubicFeet * prod.Quantity).toFixed(2);
    newRow.insertCell(5).innerHTML = (prod.TotalCalories * prod.Quantity).toFixed(0);
    newRow.insertCell(6).innerHTML = Number(prod.ShelfLife).toFixed(0);
    if (Boolean(add))
{
        newRow.insertCell(7).innerHTML = GetAvailQuantitySelect(i, prod.Quantity);
        newRow.insertCell(8).innerHTML = "<center><input type='checkbox' name='" + prod.ProductNum + "' onclick='AddToAvailCart(" + i + ", this.checked);' /></center>";
}
    else
{
        newRow.insertCell(7).innerHTML = GetQuantitySelect(i, prod.Quantity);
        newRow.insertCell(8).innerHTML = "<center><input type='checkbox' name='" + prod.ProductNum + "' onclick='AddToCartCheck(" + i + ", this.checked);' /></center>";
}
}

function ChangeQuantity(el)
{
    var qty = el.options[el.selectedIndex].value;
    SelectedProdList[el.name].Quantity = qty;
    updatecals();
}

function ChangeAvailQuantity(el)
{
    var qty = el.options[el.selectedIndex].value;
    AvailProdList[el.name].Quantity = qty;
    updatecals();

}

function AddToCartCheck(i, state)
{
    SelectedProdList[i].InCart = Boolean(state);
    updatecals();
}

function AddToAvailCart(i, state)
{
    AvailProdList[i].InCart = Boolean(state)
    updatecals();
}

function addProd(i)
{
    SelectedProdList.push(AvailProdList[i]);
    AvailProdList.splice(i, 1);
    updatecals();
}

function removeProd(i)
{
    SelectedProdList[i].Quantity = 1;
    AvailProdList.push(SelectedProdList[i]);
    SelectedProdList.splice(i, 1);
    updatecals();
}

//basic packages
function Get30DayBasicPackage()
{
    var prods = new Array();
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('120',1));
prods.push(new ProdSetter('30117',3));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('53108',4));
prods.push(new ProdSetter('53124',4));
prods.push(new ProdSetter('53128',4));
prods.push(new ProdSetter('53132',4));
prods.push(new ProdSetter('53158',4));
prods.push(new ProdSetter('684',1));

    
    SetSelectedAvailProdsByProdSetter(prods);
}

function SetSelectedAvailProdsByProdSetter(prods)
{
    var i = 0;
    for (i = 0; i < AvailProdList.length; i++)
    {
        AvailProdList[i].InCart = false;
        var j= 0;
        for(j = 0; j < prods.length; j++)
        {
            if (AvailProdList[i].ProductNum.toString() == prods[j].ProductNumber.toString())
            {
                AvailProdList[i].Quantity = prods[j].Quantity * getTotalPeopleSelected();
                SelectedProdList.push(AvailProdList[i]);
                AvailProdList.splice(i, 1);
            }
        }
    }
}

function ProdSetter(prodnum, quantity)
{
    this.ProductNumber = prodnum;
    this.Quantity = quantity;
}

function Get90DayBasicPackage()
{
    var prods = new Array();
prods.push(new ProdSetter('1',1));
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('125',1));
prods.push(new ProdSetter('126',1));
prods.push(new ProdSetter('248',1));
prods.push(new ProdSetter('30117',5));
prods.push(new ProdSetter('30584',1));
prods.push(new ProdSetter('350',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('477',1));
prods.push(new ProdSetter('53108',5));
prods.push(new ProdSetter('53119',5));
prods.push(new ProdSetter('53127',5));
prods.push(new ProdSetter('53128',5));
prods.push(new ProdSetter('53132',5));
prods.push(new ProdSetter('53137',5));
prods.push(new ProdSetter('53158',5));
prods.push(new ProdSetter('684',1));
prods.push(new ProdSetter('685',1));

    
    SetSelectedAvailProdsByProdSetter(prods);
}

function Get180DayBasicPackage()
{
    var prods = new Array();
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('1023',1));
prods.push(new ProdSetter('1030',1));
prods.push(new ProdSetter('11',2));
prods.push(new ProdSetter('120',2));
prods.push(new ProdSetter('122',1));
prods.push(new ProdSetter('125',1));
prods.push(new ProdSetter('126',1));
prods.push(new ProdSetter('131',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('248',1));
prods.push(new ProdSetter('30142',3));
prods.push(new ProdSetter('30306',3));
prods.push(new ProdSetter('30308',3));
prods.push(new ProdSetter('30322',3));
prods.push(new ProdSetter('30331',3));
prods.push(new ProdSetter('350',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('436',1));
prods.push(new ProdSetter('471',1));
prods.push(new ProdSetter('673',1));
prods.push(new ProdSetter('682',1));
prods.push(new ProdSetter('684',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

function GetYearBasicPackage()
{
    var prods = new Array();
prods.push(new ProdSetter('1',3));
prods.push(new ProdSetter('10',3));
prods.push(new ProdSetter('11',3));
prods.push(new ProdSetter('18',3));
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('1030',2));
prods.push(new ProdSetter('120',6));
prods.push(new ProdSetter('122',6));
prods.push(new ProdSetter('125',6));
prods.push(new ProdSetter('127',6));
prods.push(new ProdSetter('130',6));
prods.push(new ProdSetter('131',6));
prods.push(new ProdSetter('241',6));
prods.push(new ProdSetter('243',3));
prods.push(new ProdSetter('244',3));
prods.push(new ProdSetter('248',3));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('353',1));
prods.push(new ProdSetter('4',3));
prods.push(new ProdSetter('435',1));
prods.push(new ProdSetter('436',1));
prods.push(new ProdSetter('471',1));
prods.push(new ProdSetter('473',1));
prods.push(new ProdSetter('475',1));
prods.push(new ProdSetter('477',1));
prods.push(new ProdSetter('556',2));
prods.push(new ProdSetter('673',1));
prods.push(new ProdSetter('682',1));
prods.push(new ProdSetter('684',1));
prods.push(new ProdSetter('685',1));
prods.push(new ProdSetter('686',1));
prods.push(new ProdSetter('687',1));
prods.push(new ProdSetter('688',1));
prods.push(new ProdSetter('689',1));
prods.push(new ProdSetter('696',1));

SetSelectedAvailProdsByProdSetter(prods);

}

//MiddlePackages

function Get30DayMiddlePackage()
{
    var prods = new Array();
prods.push(new ProdSetter('1',1));
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('241',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('353',1));
prods.push(new ProdSetter('53108',4));
prods.push(new ProdSetter('53124',4));
prods.push(new ProdSetter('53128',4));
prods.push(new ProdSetter('53132',4));
prods.push(new ProdSetter('53138',4));
prods.push(new ProdSetter('53158',4));
prods.push(new ProdSetter('676',1));
prods.push(new ProdSetter('684',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

function Get90DayMiddlePackage()
{
    var prods = new Array();
    prods.push(new ProdSetter('30142',1));
    prods.push(new ProdSetter('30447',1));
    prods.push(new ProdSetter('30308',1));
    prods.push(new ProdSetter('30306',1));
    prods.push(new ProdSetter('30331',1));
    prods.push(new ProdSetter('30322',1));
    prods.push(new ProdSetter('30117',4));
    prods.push(new ProdSetter('30584',1));
    prods.push(new ProdSetter('53108',4));
    prods.push(new ProdSetter('53114',4));
    prods.push(new ProdSetter('53124',4));
    prods.push(new ProdSetter('53127',4));
    prods.push(new ProdSetter('53128',4));
    prods.push(new ProdSetter('53132',4));
    prods.push(new ProdSetter('53137',4));
    prods.push(new ProdSetter('53158',4));
    prods.push(new ProdSetter('1001',1));
    prods.push(new ProdSetter('1020',1));
    prods.push(new ProdSetter('11',1));
    prods.push(new ProdSetter('18',1));
    prods.push(new ProdSetter('120',1));
    prods.push(new ProdSetter('125',1));
    prods.push(new ProdSetter('126',1));
    prods.push(new ProdSetter('127',1));
    prods.push(new ProdSetter('248',1));
    prods.push(new ProdSetter('351',1));
    prods.push(new ProdSetter('352',1));
    prods.push(new ProdSetter('682',1));
    prods.push(new ProdSetter('684',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

function Get180DayMiddlePackage()
{
    var prods = new Array();
    
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('1030',1));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('120',2));
prods.push(new ProdSetter('122',1));
prods.push(new ProdSetter('126',2));
prods.push(new ProdSetter('131',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('242',1));
prods.push(new ProdSetter('248',1));
prods.push(new ProdSetter('30142',3));
prods.push(new ProdSetter('30227',1));
prods.push(new ProdSetter('30306',3));
prods.push(new ProdSetter('30308',3));
prods.push(new ProdSetter('30322',3));
prods.push(new ProdSetter('30331',3));
prods.push(new ProdSetter('30447',3));
prods.push(new ProdSetter('30542',3));
prods.push(new ProdSetter('30584',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('352',1));
prods.push(new ProdSetter('353',1));
prods.push(new ProdSetter('471',1));
prods.push(new ProdSetter('476',1));
prods.push(new ProdSetter('477',1));
prods.push(new ProdSetter('53158',4));
prods.push(new ProdSetter('554',1));
prods.push(new ProdSetter('6',1));
prods.push(new ProdSetter('676',1));
prods.push(new ProdSetter('682',1));
prods.push(new ProdSetter('684',1));
prods.push(new ProdSetter('696',1));
    
    SetSelectedAvailProdsByProdSetter(prods);
}

function GetYearMiddlePackage()
{
    var prods = new Array();
   
prods.push(new ProdSetter('1',1));
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('1023',1));
prods.push(new ProdSetter('1030',3));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('123',1));
prods.push(new ProdSetter('125',4));
prods.push(new ProdSetter('127',1));
prods.push(new ProdSetter('133',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('241',1));
prods.push(new ProdSetter('30105',6));
prods.push(new ProdSetter('30108',6));
prods.push(new ProdSetter('30113',6));
prods.push(new ProdSetter('30119',6));
prods.push(new ProdSetter('30121',6));
prods.push(new ProdSetter('30132',6));
prods.push(new ProdSetter('30158',6));
prods.push(new ProdSetter('30305',6));
prods.push(new ProdSetter('30306',0));
prods.push(new ProdSetter('30308',6));
prods.push(new ProdSetter('30322',6));
prods.push(new ProdSetter('30447',6));
prods.push(new ProdSetter('30541',6));
prods.push(new ProdSetter('30542',6));
prods.push(new ProdSetter('30584',6));
prods.push(new ProdSetter('350',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('352',1));
prods.push(new ProdSetter('353',1));
prods.push(new ProdSetter('471',2));
prods.push(new ProdSetter('473',1));
prods.push(new ProdSetter('475',2));
prods.push(new ProdSetter('6',1));
prods.push(new ProdSetter('671',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

//Premium Packages

function Get30DayPremiumPackage()
{
    var prods = new Array();
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('125',1));
prods.push(new ProdSetter('126',1));
prods.push(new ProdSetter('127',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('241',1));
prods.push(new ProdSetter('30542',1));
prods.push(new ProdSetter('30584',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('353',1));
prods.push(new ProdSetter('53102',1));
prods.push(new ProdSetter('53105',1));
prods.push(new ProdSetter('53108',1));
prods.push(new ProdSetter('53111',1));
prods.push(new ProdSetter('53114',1));
prods.push(new ProdSetter('53119',1));
prods.push(new ProdSetter('53123',1));
prods.push(new ProdSetter('53124',1));
prods.push(new ProdSetter('53127',1));
prods.push(new ProdSetter('53128',1));
prods.push(new ProdSetter('53131',1));
prods.push(new ProdSetter('53132',1));
prods.push(new ProdSetter('53134',1));
prods.push(new ProdSetter('53134',1));
prods.push(new ProdSetter('53135',1));
prods.push(new ProdSetter('53137',1));
prods.push(new ProdSetter('53138',1));
prods.push(new ProdSetter('53158',1));
prods.push(new ProdSetter('6',1));
prods.push(new ProdSetter('684',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

function Get90DayPremiumPackage()
{
    var prods = new Array();
    prods.push(new ProdSetter('30227',1));
    prods.push(new ProdSetter('30142',1));
    prods.push(new ProdSetter('30449',1));
    prods.push(new ProdSetter('30447',1));
    prods.push(new ProdSetter('30308',1));
    prods.push(new ProdSetter('30306',1));
    prods.push(new ProdSetter('30331',1));
    prods.push(new ProdSetter('30322',1));
    prods.push(new ProdSetter('30117',3));
    prods.push(new ProdSetter('30542',1));
    prods.push(new ProdSetter('30584',1));
    prods.push(new ProdSetter('53108',4));
    prods.push(new ProdSetter('53114',4));
    prods.push(new ProdSetter('53119',4));
    prods.push(new ProdSetter('53127',4));
    prods.push(new ProdSetter('53128',4));
    prods.push(new ProdSetter('53132',4));
    prods.push(new ProdSetter('53135',4));
    prods.push(new ProdSetter('53137',4));
    prods.push(new ProdSetter('53158',4));
    prods.push(new ProdSetter('1001',1));
    prods.push(new ProdSetter('11',1));
    prods.push(new ProdSetter('18',1));
    prods.push(new ProdSetter('120',1));
    prods.push(new ProdSetter('125',1));
    prods.push(new ProdSetter('126',1));
    prods.push(new ProdSetter('242',1));
    prods.push(new ProdSetter('248',1));
    prods.push(new ProdSetter('351',1));
    prods.push(new ProdSetter('352',1));
    prods.push(new ProdSetter('353',1));
    prods.push(new ProdSetter('682',1));
    prods.push(new ProdSetter('684',1));
    prods.push(new ProdSetter('685',1));

    SetSelectedAvailProdsByProdSetter(prods);
}

function Get180DayPremiumPackage()
{
    var prods = new Array();
    
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('120',2));
prods.push(new ProdSetter('122',1));
prods.push(new ProdSetter('126',2));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('242',1));
prods.push(new ProdSetter('30105',3));
prods.push(new ProdSetter('30108',3));
prods.push(new ProdSetter('30111',3));
prods.push(new ProdSetter('30113',3));
prods.push(new ProdSetter('30114',3));
prods.push(new ProdSetter('30119',3));
prods.push(new ProdSetter('30121',3));
prods.push(new ProdSetter('30123',3));
prods.push(new ProdSetter('30124',3));
prods.push(new ProdSetter('30127',3));
prods.push(new ProdSetter('30131',3));
prods.push(new ProdSetter('30132',3));
prods.push(new ProdSetter('30134',3));
prods.push(new ProdSetter('30135',3));
prods.push(new ProdSetter('30137',3));
prods.push(new ProdSetter('30138',3));
prods.push(new ProdSetter('30142',3));
prods.push(new ProdSetter('30143',3));
prods.push(new ProdSetter('30146',3));
prods.push(new ProdSetter('30158',3));
prods.push(new ProdSetter('30306',6));
prods.push(new ProdSetter('30308',6));
prods.push(new ProdSetter('30322',6));
prods.push(new ProdSetter('30331',6));
prods.push(new ProdSetter('30425',3));
prods.push(new ProdSetter('30447',3));
prods.push(new ProdSetter('30449',3));
prods.push(new ProdSetter('30541',3));
prods.push(new ProdSetter('30542',3));
prods.push(new ProdSetter('30584',1));
prods.push(new ProdSetter('350',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('352',1));
prods.push(new ProdSetter('353',2));
prods.push(new ProdSetter('471',1));
prods.push(new ProdSetter('473',1));
prods.push(new ProdSetter('682',1));
    
    SetSelectedAvailProdsByProdSetter(prods);
}

function GetYearPremiumPackage()
{
    var prods = new Array();
	
prods.push(new ProdSetter('1',1));
prods.push(new ProdSetter('10',1));
prods.push(new ProdSetter('1001',1));
prods.push(new ProdSetter('1016',1));
prods.push(new ProdSetter('1020',1));
prods.push(new ProdSetter('1023',1));
prods.push(new ProdSetter('1030',4));
prods.push(new ProdSetter('1032',1));
prods.push(new ProdSetter('11',1));
prods.push(new ProdSetter('120',1));
prods.push(new ProdSetter('122',1));
prods.push(new ProdSetter('123',1));
prods.push(new ProdSetter('125',4));
prods.push(new ProdSetter('126',1));
prods.push(new ProdSetter('131',1));
prods.push(new ProdSetter('134',1));
prods.push(new ProdSetter('18',1));
prods.push(new ProdSetter('241',1));
prods.push(new ProdSetter('242',1));
prods.push(new ProdSetter('30105',6));
prods.push(new ProdSetter('30108',6));
prods.push(new ProdSetter('30113',6));
prods.push(new ProdSetter('30114',6));
prods.push(new ProdSetter('30119',6));
prods.push(new ProdSetter('30121',6));
prods.push(new ProdSetter('30124',6));
prods.push(new ProdSetter('30127',6));
prods.push(new ProdSetter('30131',6));
prods.push(new ProdSetter('30132',6));
prods.push(new ProdSetter('30134',6));
prods.push(new ProdSetter('30135',6));
prods.push(new ProdSetter('30138',6));
prods.push(new ProdSetter('30142',6));
prods.push(new ProdSetter('30143',6));
prods.push(new ProdSetter('30158',6));
prods.push(new ProdSetter('30306',6));
prods.push(new ProdSetter('30308',6));
prods.push(new ProdSetter('30425',6));
prods.push(new ProdSetter('30447',6));
prods.push(new ProdSetter('30449',6));
prods.push(new ProdSetter('30541',6));
prods.push(new ProdSetter('30542',6));
prods.push(new ProdSetter('30584',6));
prods.push(new ProdSetter('350',1));
prods.push(new ProdSetter('351',1));
prods.push(new ProdSetter('352',1));
prods.push(new ProdSetter('353',2));
prods.push(new ProdSetter('4',1));
prods.push(new ProdSetter('436',1));
prods.push(new ProdSetter('471',1));
prods.push(new ProdSetter('473',1));
prods.push(new ProdSetter('475',3));
prods.push(new ProdSetter('5',1));
prods.push(new ProdSetter('554',1));
prods.push(new ProdSetter('556',3));
prods.push(new ProdSetter('6',1));
prods.push(new ProdSetter('682',2));
prods.push(new ProdSetter('8',1));
    
SetSelectedAvailProdsByProdSetter(prods);
}

function AddAvailProdsToAllProds()
{
    AvailProdList = new Array();
    for(var i = 0; i < AllProdList.length; i++)
    {
        AllProdList[i].InCart = false;
        AvailProdList.push(AllProdList[i]);
    }
}

function calcPackage()
{
    /*
    * Package ids and their meanings
    * 1 = Basic Package
    * 2 = Middle of the road
    * 3 = Premium Package
    * 4 = Custom Package
    */
    
    //AvailProdList = AllProdList;
    AddAvailProdsToAllProds();
    SelectedProdList = new Array();

document.getElementById('SugHeader').style.display = 'block';
document.getElementById('SugDiv').style.display = 'block';
    
    if (getSelectedPackage() == "1" && getSelectedTime() == "30")
        Get30DayBasicPackage();
    else if(getSelectedPackage() == "1" && getSelectedTime() == "90")
        Get90DayBasicPackage();
    else if (getSelectedPackage() == "1" && getSelectedTime() == "180")
        Get180DayBasicPackage();
    else if (getSelectedPackage() == "1" && getSelectedTime() == "365")
        GetYearBasicPackage();
    else if (getSelectedPackage() == "2" && getSelectedTime() == "30")
        Get30DayMiddlePackage();
    else if(getSelectedPackage() == "2" && getSelectedTime() == "90")
        Get90DayMiddlePackage();
    else if (getSelectedPackage() == "2" && getSelectedTime() == "180")
        Get180DayMiddlePackage();
    else if (getSelectedPackage() == "2" && getSelectedTime() == "365")
        GetYearMiddlePackage();
    else if (getSelectedPackage() == "3" && getSelectedTime() == "30")
        Get30DayPremiumPackage();
    else if(getSelectedPackage() == "3" && getSelectedTime() == "90")
        Get90DayPremiumPackage();
    else if (getSelectedPackage() == "3" && getSelectedTime() == "180")
        Get180DayPremiumPackage();
    else if (getSelectedPackage() == "3" && getSelectedTime() == "365")
        GetYearPremiumPackage();
    else
{
var prods = new Array();
SetSelectedAvailProdsByProdSetter(prods);
document.getElementById('SugHeader').style.display = 'none';
document.getElementById('SugDiv').style.display = 'none';
}
//        alert("You've chosen the custom package.");

//calc/set values that are not dependent upon quantity of product selected nor added to cart

    var waterEl = document.getElementById("totWater");

    waterEl.innerHTML = getSelectedTime() * getTotalPeopleSelected();
    document.getElementById("totBudget").innerHTML = getSelectedPackageText();
    document.getElementById("totPeople").innerHTML = getTotalPeopleSelected();
    document.getElementById("totReliance").innerHTML = getSelectedTimeText();


    WriteSelectedProdList();      
    WriteAvailProdList();  
    //updatecals();
}

function getTotalPeopleSelected()
{
    var peopleSelected = document.getElementById("NumPeople").value;
    if (peopleSelected == "" || peopleSelected == "0")
    {
        peopleSelected = 1;
        document.getElementById("NumPeople").value = "1";
    }
    return peopleSelected;
}

function setTotalPeopleSelected(val)
{
    document.getElementById("NumPeople").value = val;
}

function getFamilyName()
{
    return document.getElementById("FamilyName").value;
}

function setFamilyName(val)
{
    try
    {
    document.getElementById("FamilyName").value = val;
    }
    catch(err)
    {
    }
    
    try
    {
    document.getElementById("FamilyName2").value = val;
    }
    catch(err)
    {
    }
}

function getSelectedPackage()
{
  var x = document.getElementById("BudgetType");
  return x.options[x.selectedIndex].value;  
}

function setSelectedPackage(val)
{
    var x = document.getElementById("BudgetType");
    var index = 0;
    for(var i = 0; i < x.options.length; i++)
    {
        if (x.options[i].value == val)
            index = i;
    }
    x.selectedIndex = index;
}

function getSelectedPackageText()
{
var x = document.getElementById("BudgetType");
return x.options[x.selectedIndex].text;
}

function getSelectedTime()
{
    var x = document.getElementById("SustainTime");
    return x.options[x.selectedIndex].value;
}

function setSelectedTime(val)
{
    var x = document.getElementById("SustainTime");
    var index = 0;
    for(var i = 0; i < x.options.length; i++)
    {
        if (x.options[i].value == val)
            index = i;
    }
    x.selectedIndex = index;
}

function getSelectedTimeText()
{
var x = document.getElementById("SustainTime");
return x.options[x.selectedIndex].text;
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";path=/;expires="+exdate.toGMTString());
}

function checkCookie()
{
username=getCookie('familyname');
if (username!=null && username!="")
  {
  alert('Welcome again '+username+'!');
  }
else 
  {
  username=prompt('Please enter your name:',"");
  if (username!=null && username!="")
    {
    setCookie('username',username,365);
    }
  }
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 ;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return ""
}

function SetPackageFromCookie()
{
    setFamilyName(getCookie('familyname'));
    setSelectedTime(getCookie('sustaintime'));
    setTotalPeopleSelected(getCookie('numpeople'));
    setSelectedPackage(getCookie('budget'));
}

function CreateCookies()
{
    setCookie('familyname', document.getElementById('FamilyName').value, 365);
    setCookie('sustaintime', getSelectedTime(), 365);
    setCookie('numpeople', getTotalPeopleSelected(), 365);
    setCookie('budget', getSelectedPackage(), 365);
}

function GetQuantitySelect(i, qty)
{
    var rVal =  "<select name='" + i + "' onchange='ChangeQuantity(this);'>";
    for (var i = 1; i < 51; i++)
    {
       rVal += "<option value='" + i + "' " + (i == qty ? " selected>" : ">") + i + "</option>";
    }
    
    rVal += "</select>"
    
    return rVal;
}


function GetAvailQuantitySelect(i, qty)
{
    var rVal =  "<select name='" + i + "' onchange='ChangeAvailQuantity(this);'>";
    for (var i = 1; i < 51; i++)
    {
       rVal += "<option value='" + i + "' " + (i == qty ? " selected>" : ">") + i + "</option>";
    }
    
    rVal += "</select>"
    
    return rVal;
}


function LoadAllProductsFromXml()
{
    var xmlDoc;
    if (window.XMLHttpRequest)
    {
        xhttp=new window.XMLHttpRequest();
    }
    else // Internet Explorer 5/6
    {
        xhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttp.open("GET", "vspfiles/templates/Prepareco1/assets/Products.xml", false);
    xhttp.send("");
    xmlDoc=xhttp.responseXML;

    var x=xmlDoc.getElementsByTagName("Products");
    for(var i = 0; i < x.length; i++)
    {
        var prodName = x[i].getElementsByTagName("productname")[0].childNodes[0].nodeValue;
        var prodCode = x[i].getElementsByTagName("productcode")[0].childNodes[0].nodeValue;
        var prodPackaging = x[i].getElementsByTagName("customfield1")[0].childNodes[0] == null ? 'Unknown' : x[i].getElementsByTagName("customfield1")[0].childNodes[0].nodeValue;
        var prodPrice = parseFloat(x[i].getElementsByTagName("productprice")[0].childNodes[0].nodeValue);
        var prodCalories = x[i].getElementsByTagName("customfield4")[0].childNodes[0] == null ? 0 : parseFloat(x[i].getElementsByTagName("customfield4")[0].childNodes[0].nodeValue);
        var prodShelfLife = x[i].getElementsByTagName("customfield3")[0].childNodes[0] == null ? 0 : parseFloat(x[i].getElementsByTagName("customfield3")[0].childNodes[0].nodeValue);
        var prodCuFeet = x[i].getElementsByTagName("customfield2")[0].childNodes[0] == null ? 0 : parseFloat(x[i].getElementsByTagName("customfield2")[0].childNodes[0].nodeValue);
        //, x[i].getElementsByTagName("productname")[0].childNodes[0].nodeValue, 'unknown', x[i].getElementsByTagName("productprice")[0].childNodes[0].nodeValue, x[i].getElementsByTagName("customfield3")[0].childNodes[0] != null ? x[i].getElementsByTagName("customfield3")[0].childNodes[0].nodeValue : 0, x[i].getElementsByTagName("customfield2")[0].childNodes[0]!= null ? x[i].getElementsByTagName("customfield2")[0].childNodes[0].nodeValue : 0, x[i].getElementsByTagName("customfield1")[0].childNodes[0]!= null ? x[i].getElementsByTagName("customfield1")[0].childNodes[0].nodeValue : 0, 1));
        if (prodShelfLife > 0)
            AllProdList.push(new Product(prodCode, prodName, prodPackaging, prodPrice, prodCalories, prodShelfLife, prodCuFeet, 1));
    }
    
    //SelectedProdList = AllProdList;
    //WriteSelectedProdList();
}

function WriteReview()
{
    var i = 2;
    
    //get rid of all current rows in the reviewTable
    var el = document.getElementById("ReviewTable");
    for (i = 2; i < el.rows.length; i)
    {
        el.deleteRow(i);
    }
    
    for(i = 0; i < SelectedProdList.length; i++)
    {
        if (SelectedProdList[i].InCart == true)
        {
            AddProductToReviewTable(el, SelectedProdList[i], 'Selected', i);
        }
    }
    
    for (var i=0; i < AvailProdList.length; i++)
    {
        if (AvailProdList[i].InCart == true)
        {
            AddProductToReviewTable(el, AvailProdList[i], 'Avail', i);
        }
    }    
}

function AddProductToReviewTable(el, prod, listtype, i)
{
    var newRow = el.insertRow(el.rows.length); //add the item to the bottom of the table
    
    newRow.insertCell(0).innerHTML = prod.ProductNum;
    newRow.insertCell(1).innerHTML = prod.FoodType;
    newRow.insertCell(2).innerHTML = prod.Packaging;
    newRow.insertCell(3).innerHTML = "$" + Number(prod.UnitPrice).toFixed(2);
    newRow.insertCell(4).innerHTML = (prod.CubicFeet * prod.Quantity).toFixed(2);
    newRow.insertCell(5).innerHTML = (prod.TotalCalories * prod.Quantity).toFixed(0);
    newRow.insertCell(6).innerHTML = Number(prod.ShelfLife).toFixed(0);
    newRow.insertCell(7).innerHTML = prod.Quantity;
    newRow.insertCell(8).innerHTML = "<span onclick='RemoveReviewItem(" + i + ", \"" + listtype + "\")' style='color:#75ABD1; text-decoration: underline; cursor: pointer'>remove</a>";// + prod.ProductNum + "' onchange='AddToCartCheck(" + i + ", this.checked);' />";
        
}

function RemoveReviewItem(i, listtype)
{
    if (confirm('Are you sure you want to delete this item?'))
    {
        if (listtype== 'Avail')
        {
            AvailProdList[i].InCart = false;
        }    
        else
        {
            SelectedProdList[i].InCart = false;
        }
        
        updatecals();
        WriteReview();
    }
}

function AddToCart()
{
    var i = 0;
    var url = "https://www.prepareco.com/ShoppingCart.asp?";
    for(i = 0; i<SelectedProdList.length; i++)
    {
        if (SelectedProdList[i].InCart == true)
        {
            url += GetCartStringForItem(SelectedProdList[i]);
        }
    }
    
    for (i = 0; i<AvailProdList.length; i++)
    {
        if (AvailProdList[i].InCart == true)
        {
            url += GetCartStringForItem(AvailProdList[i]);
        }
    }
    
    window.location = url;
}

function GetCartStringForItem(prod)
{
    return "ProductCode=" + prod.ProductNum + "&Qty." + prod.ProductNum + "=" + prod.Quantity + "&";
}

function ChangeSelection(listToChange, el)
{
    var i = 0;
    var selectAll = el.innerHTML == "Select All";      

      if (listToChange == "Avail")   
      {
        for(i = 0; i < AvailProdList.length; i++) 
        {
          AvailProdList[i].InCart = selectAll;
        }
        var tableEl = document.getElementById("AvlProdList");
        var i = 0;
        
        var x;
        //remove extra rows
         for (i = 2; i < tableEl.rows.length; i++)
         {
              x = tableEl.rows[i].cells[8].getElementsByTagName("input");
              if (x.length == 1)
              {
                  x[0].checked = selectAll;
              }
          }

      }
      else 
      {             
        for(i = 0; i < SelectedProdList.length; i++) 
        {
          SelectedProdList[i].InCart = selectAll;
        }
        var tableEl = document.getElementById("SelProdList");
        var i = 0;
        
        var x;
        //remove extra rows
         for (i = 2; i < tableEl.rows.length; i++)
         {
              x = tableEl.rows[i].cells[8].getElementsByTagName("input");
              if (x.length == 1)
              {
                  x[0].checked = selectAll;
              }
          }
       
      }
      updatecals();
}

LoadAllProductsFromXml();