var flashProxy = new FlashProxy(new Date().getTime(), '/images/flash/JavaScriptFlashGateway.swf');
var names = new Array('size','cal','cff','tf','tfp','sf','sfp','trf','trfp','ch','chp','so','sop','car','carp','fi','fip','su','pr','va','vc','cm','ir');

// Only for PDF generation
var namesPdf = new Array('size','serving','cal','cff','tf','tfp','sf','sfp','trf','trfp','ch','chp','so','sop','car','carp','fi','fip','su','pr','va','vc','cm','ir','sizetext','dv');

function update(option) {
    var nt = getNutrients(option);
    flashProxy.call('toSwf', nt[0],nt[1],nt[2],nt[3],nt[4],nt[5],nt[6],nt[7],nt[8],nt[9],nt[10],nt[11],nt[12],nt[13],nt[14],nt[15],nt[16],nt[17],'',nt[18],'',nt[19],nt[20],nt[21],nt[22]);
}

function getLabelVars(select) {
    var nt = getNutrients(select);
    var labelvars = "";
    for (var i = 0; i < names.length; i++) {
        labelvars += '&' + names[i] + '=';
        labelvars += nt[i];
    }
    return labelvars;
}

// Only for PDF generation
function getLabelVarsPdf(select, servingsPerContainer, servingText, showDaily) {
    var nt = getNutrientsPdf(select, servingsPerContainer, servingText, showDaily);
    var labelvars = "";
    for (var i = 0; i < namesPdf.length; i++) {
        labelvars += '&' + namesPdf[i] + '=';
        labelvars += nt[i];
    }
    return labelvars;
}

function getNutrients(select){
    index = select.options.selectedIndex;
    option = select.options[index];
    nutrients = [];
    nutrients[0] = servingWeight('FOODSERVING_WEIGHT_' + index, option); //size - Serving size
    nutrients[1] = nv('NUTRIENT_0', option);     //cal - Calories
    nutrients[2] = nv('NUTRIENT_2', option);     //cff - Calories from Fat
    nutrients[3] = nv('NUTRIENT_14', option);    //tf - Total Fat (gramms)
    nutrients[4] = dv('DV_NUTRIENT_14', option);  //tfp - Total Fat (percent)
    nutrients[5] = nv('NUTRIENT_15', option);     //sf - Saturated Fat (gramms)
    nutrients[6] = dv('DV_NUTRIENT_15', option);  //sfp - Saturated Fat (percent)
    nutrients[7] = nv('NUTRIENT_70', option);     //trf - Total trans fats (gramms)
    nutrients[8] = dv('DV_NUTRIENT_70', option);  //trfp - Total trans fats (percent)
    nutrients[9] = nv('NUTRIENT_72', option);      //ch - Cholesterol (gramms)
    nutrients[10] = dv('DV_NUTRIENT_72', option);  //chp - Cholesterol (percent)
    nutrients[11] = nv('NUTRIENT_122', option);    //so - Sodium (gramms)
    nutrients[12] = dv('DV_NUTRIENT_122', option); //sop - Sodium (percent)
    nutrients[13] = nv('NUTRIENT_4', option);     //car - Carbohydrate (gramms)
    nutrients[14] = dv('DV_NUTRIENT_4', option);  //carp - Carbohydrate (percent)
    nutrients[15] = nv('NUTRIENT_5', option);     //fi - Dietary Fiber (gramms)
    nutrients[16] = dv('DV_NUTRIENT_5', option);  //fip - Dietary Fiber (percent)
    nutrients[17] = nv('NUTRIENT_7', option);    //su - Sugars
    nutrients[18] = nv('NUTRIENT_77', option);    //pr - Protein
    nutrients[19] = dv('DV_NUTRIENT_97', option); //va - Vitamin A
    nutrients[20] = dv('DV_NUTRIENT_100', option); //vc - Vitamin C
    nutrients[21] = dv('DV_NUTRIENT_117', option); //cm - Calcium
    nutrients[22] = dv('DV_NUTRIENT_118', option); //ir - Iron

    return nutrients;
}

// Only for PDF generation
function getNutrientsPdf(select, servingsPerContainer, servingText, showDaily) {
    index = select.options.selectedIndex;
    option = select.options[index];
    nutrients = [];
    nutrients[0] = servingWeightPdf('FOODSERVING_WEIGHT_' + index, option); //size - Serving size
    nutrients[1] = servingsPerContainer;
    nutrients[2] = nv('NUTRIENT_0', option);     //cal - Calories
    nutrients[3] = nv('NUTRIENT_2', option);     //cff - Calories from Fat
    nutrients[4] = nv('NUTRIENT_14', option);    //tf - Total Fat (gramms)
    nutrients[5] = dv('DV_NUTRIENT_14', option);  //tfp - Total Fat (percent)
    nutrients[6] = nv('NUTRIENT_15', option);     //sf - Saturated Fat (gramms)
    nutrients[7] = dv('DV_NUTRIENT_15', option);  //sfp - Saturated Fat (percent)
    nutrients[8] = nv('NUTRIENT_70', option);     //trf - Total trans fats (gramms)
    nutrients[9] = dv('DV_NUTRIENT_70', option);  //trfp - Total trans fats (percent)
    nutrients[10] = nv('NUTRIENT_72', option);      //ch - Cholesterol (gramms)
    nutrients[11] = dv('DV_NUTRIENT_72', option);  //chp - Cholesterol (percent)
    nutrients[12] = nv('NUTRIENT_122', option);    //so - Sodium (gramms)
    nutrients[13] = dv('DV_NUTRIENT_122', option); //sop - Sodium (percent)
    nutrients[14] = nv('NUTRIENT_4', option);     //car - Carbohydrate (gramms)
    nutrients[15] = dv('DV_NUTRIENT_4', option);  //carp - Carbohydrate (percent)
    nutrients[16] = nv('NUTRIENT_5', option);     //fi - Dietary Fiber (gramms)
    nutrients[17] = dv('DV_NUTRIENT_5', option);  //fip - Dietary Fiber (percent)
    nutrients[18] = nv('NUTRIENT_7', option);    //su - Sugars
    nutrients[19] = nv('NUTRIENT_77', option);    //pr - Protein
    nutrients[20] = dv('DV_NUTRIENT_97', option); //va - Vitamin A
    nutrients[21] = dv('DV_NUTRIENT_100', option); //vc - Vitamin C
    nutrients[22] = dv('DV_NUTRIENT_117', option); //cm - Calcium
    nutrients[23] = dv('DV_NUTRIENT_118', option); //ir - Iron
    nutrients[24] = servingText;
    nutrients[25] = showDaily;

    return nutrients;
}

function nv(id, option) {
    if(id.indexOf('NUTRIENT_') == 0){
        multiplier = option.value / 100;
        nutrientValue = eval('foodNutrients.' + id);
        if(typeof(nutrientValue) != 'undefined') {
            if(nutrientValue == '~') {
                return '';
            } else {
                return Math.round(parseFloat(scrubTilde(nutrientValue)) * multiplier);
            }
        }
    }
}

function dv(id, option) {
    if(id.indexOf('DV_NUTRIENT_') == 0){
        return wrapCalculateDailyValue(id, option.value);
//        dailyValue = scrubTilde(eval('foodNutrients.' + id));
//        baseNutrientValue = scrubTilde(eval('foodNutrients.' + id.substr(3)));
//        nutrientValue = parseFloat(baseNutrientValue) * option.value / 100;
//        if(!isNaN(nutrientValue) && typeof(dailyValue) != 'undefined'){
//            num = Math.round(100 * nutrientValue / dailyValue);
//            return num;
//        }else{
//            return 0;
//    	}
    }
}

function servingWeight(id, option) {
    if(id.indexOf('FOODSERVING_WEIGHT_') == 0){
        foodServingWeight = eval('foodNutrients.' + id);
        if(typeof(foodServingWeight) != 'undefined') {
            return scrubTilde(foodServingWeight);
        } else {
            return '';
        }
    }
}

function servingWeightPdf(id, option) {
    if(id.indexOf('FOODSERVING_WEIGHT_') == 0){
        foodServingWeight = eval('foodNutrients.' + id);
        if(typeof(foodServingWeight) != 'undefined') {
            return '(' + scrubTilde(foodServingWeight) + ')';
        } else {
            return '';
        }
    }
}


