﻿strResult = null;

var strResult = '';
// 市区町村オプション設定
function postGram(nFoodCode, nUnitCode, nGrams , strResultID) 
{ 

	nGrams = ftoh(nGrams);

	if(!isNaN(nGrams))
	{

		if(!strResult)
		{
			strResult = strResultID;

		    	var data = ""; 
		    	data += "foodcode=" + nFoodCode; 
		    	data += "&unitcode="+nUnitCode;
		    	data += "&gram="+nGrams;

		    	data = encodeURI(data);

		    	url = "grampost.php"; 

		    	var myAjax = new Ajax.Request( 
		        url,  
		        { 
		        	method: 'get',  
		        	parameters: data,  
		        	onComplete: callBack2 
		        }); 
		}
		else
		{
			alert('現在処理中です。しばらくお待ちください。');
		}
	} else {
		alert("数値を入力してください。");
	}
} 

function callBack2(xmlhttp) 
{ 
	var result = document.getElementById(strResult);
	result.innerHTML = xmlhttp.responseText;  
	strResult = null;
}


function createGraph(strID, nValue, nMax)
{
	if(nMax == 0)
	{
		nMax = 1;
		nValue = 0;
	}

	nValue = nValue / nMax * 100;

	mycount = 0;

	var myobject = $(strID);
	if(myobject)
	{

		if(nValue <= 100)
		{

			myobject.innerHTML = "";

			myborder = document.createElement("div");
			myborder.className = "graphborder";

			myvalue = document.createElement("div");
			myvalue.className = "graphvalue";
			myvalue.style.width = nValue+"%";

			myborder.appendChild(myvalue);
			myobject.appendChild(myborder);
		} else {

			//for (var i = myobject.childNodes.length-1; i>=0; i--) {
			//	myobject.removeChild(myobject.childNodes[i]);
			//}

			if(nValue / 100 > 200)
			{
				myobject.innerHTML = "たくさん";
			} else {
				myobject.innerHTML = "";

				myitem  = document.createElement("div");
				myitem.className = "graphmax";
				
				myobject.appendChild(myitem);

				nValue -= 100;
				while(nValue > 100)
				{
					olditem = myitem;
					myitem  = document.createElement("div");
					myitem.className = "graphover";
					myitem.width = "100%";
					myobject.insertBefore(myitem, olditem);
					nValue -= 100;
				}
				olditem = myitem;
				myitem  = document.createElement("div");
				myitem.className = "graphover";


				myitem.style.width = nValue+"%";
				myobject.insertBefore(myitem, olditem);
			}
		}
	}
}

function my_calc(nArgIndex)	
{
	var nCal = 0;
	var nGram = 0;


	if($("txtGram"+nArgIndex))
	{	

		$("txtGram"+nArgIndex).value = ftoh($F("txtGram"+nArgIndex));

		if(!isNaN($F("txtGram"+nArgIndex)))
		{


			//$("txtCal"+nArgIndex).value =Math.round( $F("hdnItem"+nArgIndex+"_crm0106") * $F("txtGram"+nArgIndex)) / 100;
			nCal += $F("hdnItem"+nArgIndex+"_crm0106") * $F("txtGram"+nArgIndex);

			nGram = $F("txtGram"+nArgIndex);
			if($("chkAba"+nArgIndex))
			{

				if($F("chkAba"+nArgIndex) == "on")
				{
					nGram = nGram * ((100 - $F("hdnItem"+nArgIndex+"_crm0105")) / 100);
				}
			}

			createGraph("div"+nArgIndex+"_crm0109", nGram * $F("hdnItem"+nArgIndex+"_crm0109") / 100, $F("hdncrm0305"));
			createGraph("div"+nArgIndex+"_crm0110", nGram * $F("hdnItem"+nArgIndex+"_crm0110") / 100, $F("hdncrm0306"));
			createGraph("div"+nArgIndex+"_crm0118", nGram * $F("hdnItem"+nArgIndex+"_crm0118") / 100, $F("hdncrm0314"));
			createGraph("div"+nArgIndex+"_crm0134", nGram * $F("hdnItem"+nArgIndex+"_crm0134") / 100, $F("hdncrm0330"));
			createGraph("div"+nArgIndex+"_crm0141", nGram * $F("hdnItem"+nArgIndex+"_crm0141") / 100, $F("hdncrm0337"));
			createGraph("div"+nArgIndex+"_crm0149", nGram * $F("hdnItem"+nArgIndex+"_crm0149") / 100, $F("hdncrm0345"));
			createGraph("div"+nArgIndex+"_crm0115", nGram * $F("hdnItem"+nArgIndex+"_crm0115") / 100, $F("hdncrm0311"));
			createGraph("div"+nArgIndex+"_crm0135", nGram * $F("hdnItem"+nArgIndex+"_crm0135") / 100, $F("hdncrm0331"));
			createGraph("div"+nArgIndex+"_crm0111", nGram * $F("hdnItem"+nArgIndex+"_crm0111") / 100, $F("hdncrm0307"));
			createGraph("div"+nArgIndex+"_crm0145", nGram * $F("hdnItem"+nArgIndex+"_crm0145") / 100, $F("hdncrm0341"));
			createGraph("div"+nArgIndex+"_crm0127", nGram * $F("hdnItem"+nArgIndex+"_crm0127") / 100, $F("hdncrm0323"));
			createGraph("div"+nArgIndex+"_crm0148", nGram * $F("hdnItem"+nArgIndex+"_crm0148") / 100, $F("hdncrm0344"));

			$("txt"+nArgIndex+"_crm0109").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0109"))) / 100;
			$("txt"+nArgIndex+"_crm0110").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0110")) )/100;
			$("txt"+nArgIndex+"_crm0118").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0118")) )/100;
			$("txt"+nArgIndex+"_crm0134").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0134")) )/100;
			$("txt"+nArgIndex+"_crm0141").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0141")) )/100;
			$("txt"+nArgIndex+"_crm0149").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0149")) )/100;
			$("txt"+nArgIndex+"_crm0115").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0115")) )/100;
			$("txt"+nArgIndex+"_crm0135").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0135")) )/100;
			$("txt"+nArgIndex+"_crm0111").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0111")) )/100;
			$("txt"+nArgIndex+"_crm0145").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0145")) )/100;
			$("txt"+nArgIndex+"_crm0141").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0141")) )/100;
			$("txt"+nArgIndex+"_crm0127").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0127")) )/100;
			$("txt"+nArgIndex+"_crm0148").value = Math.round( mul(nGram , $F("hdnItem"+nArgIndex+"_crm0148")) )/100;

			$("txtCal"+nArgIndex).value  = Math.round(nGram * $F("hdnItem"+nArgIndex+"_crm0106") / 100);
		}
	}
}

function decimalOperator(t, a, b) {
    var x = "" + a;
    var p = x.indexOf(".");
    var m;
    if (p >= 0) {
        m = x.length - (p + 1);
    } else {
        m = 0;
    }

    var y = "" + b;
    var q = y.indexOf(".");
    var n;
    if (q >= 0) {
        n = y.length - (q + 1);
    } else {
        n = 0;
    }

    var k;
    var c;
    if (t == "+") { // add
        k = Math.max(m, n);
        c = (a - 0) + (b - 0);
    } else if (t == "-") { // sub
        k = Math.max(m, n);
        c = (a - 0) - (b - 0);
    } else if (t == "*") { // mul
        k = m + n;
        c = (a - 0) * (b - 0);
    } else {
        return null;
    }

    var z = "" + c;
    if (x.indexOf("e") >= 0 || y.indexOf("e") >= 0 || z.indexOf("e") >= 0) {
        return c;
    }

    var r = z.indexOf(".");
    var d;
    if (r >= 0) {
        var u = z.substring(r + 1 + k, r + 1 + k + 1);
        d = z.substring(0, r + 1 + k);
        if (u >= "5") {
            var e = "";
            var w = 1;
            for (var i = d.length - 1; i >= 0; i--) {
                var g = d.substring(i, i + 1);
                if (g >= "0" && g <= "9") {
                    var h = g - 0;
                    h += w;
                    w = 0;
                    if (h >= 10) {
                        h -= 10;
                        w++;
                    }
                    e = ("" + h) + e;
                } else if (w > 0 && (g == "+" || g == "-")) {
                    e = g + ("" + w) + e;
                } else {
                    e = g + e;
                }
            }
            d = e;
        }
    } else {
        d = z;
    }
    var f = d - 0;
    return f;
}


function add(a, b) {
    return decimalOperator("+", a, b);
}

function sub(a, b) {
    return decimalOperator("-", a, b);
}

function mul(a, b) {
    return decimalOperator("*", a, b);
}


function my_calc3(nArgIndex)
{
	my_calc(nArgIndex);

	var total = 
		{
			crm0106: 0,
			crm0109: 0,
			crm0110: 0,
			crm0118: 0,
			crm0134: 0,
			crm0141: 0,
			crm0149: 0,
			crm0115: 0,
			crm0135: 0,
			crm0111: 0,
			crm0145: 0,
			crm0127: 0,
			crm0148: 0
		};


	for(i=0; i< $F("hdnCount"); i++)
	{
		var nGram = 0;

		nGram = $F("txtGram"+i);

		nGram = Math.round(nGram * 100);
		nGram = nGram / 100;

		if(!isNaN(nGram))
		{

			if($("chkAba"+i))
			{
				if($("chkAba"+i).checked)
				{
					nGram = mul(nGram , (100 - $F("hdnItem"+i+"_crm0105")) / 100);
				}
			}


			total['crm0106'] = add(mul($F("hdnItem"+i+"_crm0106") , nGram), total['crm0106'] );
			total['crm0109'] = add(mul($F("hdnItem"+i+"_crm0109") , nGram), total['crm0109'] );
			total['crm0110'] = add(mul($F("hdnItem"+i+"_crm0110") , nGram), total['crm0110'] );
			total['crm0118'] = add(mul($F("hdnItem"+i+"_crm0118") , nGram), total['crm0118'] );
			total['crm0134'] = add(mul($F("hdnItem"+i+"_crm0134") , nGram), total['crm0134'] );
			total['crm0141'] = add(mul($F("hdnItem"+i+"_crm0141") , nGram), total['crm0141'] );
			total['crm0149'] = add(mul($F("hdnItem"+i+"_crm0149") , nGram), total['crm0149'] );
			total['crm0115'] = add(mul($F("hdnItem"+i+"_crm0115") , nGram), total['crm0115'] );
			total['crm0135'] = add(mul($F("hdnItem"+i+"_crm0135") , nGram), total['crm0135'] );
			total['crm0111'] = add(mul($F("hdnItem"+i+"_crm0111") , nGram), total['crm0111'] );
			total['crm0145'] = add(mul($F("hdnItem"+i+"_crm0145") , nGram), total['crm0145'] );
			total['crm0127'] = add(mul($F("hdnItem"+i+"_crm0127") , nGram), total['crm0127'] );
			total['crm0148'] = add(mul($F("hdnItem"+i+"_crm0148") , nGram), total['crm0148'] );

		}
	}

	$("txtCalTotal").value = Math.round(total['crm0106'] / 100);

	$("txtcrm0109total").value = Math.round(total['crm0109']) / 100;
	$("txtcrm0110total").value = Math.round(total['crm0110']) / 100 ;
	$("txtcrm0118total").value = Math.round(total['crm0118'])  / 100;
	$("txtcrm0134total").value = Math.round(total['crm0134'])  / 100;
	$("txtcrm0141total").value = Math.round(total['crm0141'])  / 100;
	$("txtcrm0149total").value = Math.round(total['crm0149'])  / 100;
	$("txtcrm0115total").value = Math.round(total['crm0115'])  / 100;
	$("txtcrm0135total").value = Math.round(total['crm0135'])  / 100;
	$("txtcrm0111total").value = Math.round(total['crm0111'])  / 100;
	$("txtcrm0145total").value = Math.round(total['crm0145']) / 100;
	$("txtcrm0127total").value = Math.round(total['crm0127']) / 100;
	$("txtcrm0148total").value = Math.round(total['crm0148']) / 100;

	createGraph("divtotalcrm0109", $("txtcrm0109total").value, $F("hdncrm0305"));
	createGraph("divtotalcrm0110", $("txtcrm0110total").value, $F("hdncrm0306"));
	createGraph("divtotalcrm0118", $("txtcrm0118total").value, $F("hdncrm0314"));
	createGraph("divtotalcrm0134", $("txtcrm0134total").value, $F("hdncrm0330"));
	createGraph("divtotalcrm0141", $("txtcrm0141total").value, $F("hdncrm0337"));
	createGraph("divtotalcrm0115", $("txtcrm0115total").value, $F("hdncrm0311"));
	createGraph("divtotalcrm0135", $("txtcrm0135total").value, $F("hdncrm0331"));
	createGraph("divtotalcrm0111", $("txtcrm0111total").value, $F("hdncrm0307"));
	createGraph("divtotalcrm0145", $("txtcrm0145total").value, $F("hdncrm0341"));
	createGraph("divtotalcrm0127", $("txtcrm0127total").value, $F("hdncrm0323"));

	createGraph("divtotalcrm0148", $("txtcrm0148total").value, $F("hdncrm0344"));

}


function ftoh(strValue){
	var char1 = new Array("１","２","３","４","５","６","７","８","９","０");
	var char2 = new Array(1,2,3,4,5,6,7,8,9,0);

	var count;
	while(strValue.match(/[０-９]/)){     	//入力データに全角数字がある場合
		for(count = 0; count < char1.length; count++){
				//入力データを全角数字から半角数字に置換する
			strValue = strValue.replace(char1[count], char2[count]);
		}
	}
	return strValue;
}