//
// ranking.js
// 成分ランキング用JavaScript
// 2007.10.25 m.miki

var baseURL = "/ranking/";
var rankingCGI = baseURL + "cmp_order.pl";
var titleCGI = baseURL + "rankingTitle.pl";

// 初期出力の対象となる食品成分の配列
var nlist = new Array(16);

nlist[0] = "PROTEIN"; // タンパク質
nlist[1] = "CALCIUM"; // カルシウム
nlist[2] = "IRON"; // 鉄
nlist[3] = "ZINC"; // 亜鉛
nlist[4] = "COPPER"; // 銅
nlist[5] = "BETA_CAROTENE_EQUIVALENTS"; // β－カロテン当量
nlist[6] = "ASCORBIC_ACID"; // ビタミンC
nlist[7] = "THIAMIN"; // ビタミンB1
nlist[8] = "RIBOFLAVIN"; // ビタミンB2
nlist[9] = "VITAMIN_B6"; // ビタミンB6
nlist[10] = "VITAMIN_B12"; // ビタミンB12
nlist[11] = "VITAMIN_D"; // ビタミンD
nlist[12] = "VITAMIN_K"; // ビタミンK
nlist[13] = "CHOLESTEROL"; // コレステロール
nlist[14] = "TOTAL_DIETARYFIBER"; // 食物繊維総量
nlist[15] = "SATURATED_FATTY_ACIDS"; // 飽和脂肪酸
initNut = nlist[Math.floor(16 * Math.random())];

// 食品群の配列
var foodGroup = new Array(18);

foodGroup[0] = "穀類";
foodGroup[1] = "いも及びでん粉類";
foodGroup[2] = "砂糖及び甘味類";
foodGroup[3] = "豆類";
foodGroup[4] = "種実類";
foodGroup[5] = "野菜類";
foodGroup[6] = "果実類";
foodGroup[7] = "きのこ類";
foodGroup[8] = "藻類";
foodGroup[9] = "魚介類";
foodGroup[10] = "肉類";
foodGroup[11] = "卵類";
foodGroup[12] = "乳類";
foodGroup[13] = "油脂類";
foodGroup[14] = "菓子類";
foodGroup[15] = "し好飲料類";
foodGroup[16] = "調味料及び香辛料類";
foodGroup[17] = "調理加工食品類";

// 食品成分選択ドロップダウンリストの切替用配列
var glist = new Array(5);
glist["GENERAL"] = '<select id="cmp" name="cmp" onChange="ajaxReq()">' +
'<option value="FOOD_ENERGY_kcal">エネルギー</option>' +
'<option value="WATER">水分</option>' +
'<option value="PROTEIN">たんぱく質</option>' +
'<option value="LIPID">脂質</option>' +
'<option value="CARBOHYDRATES_BY_DIFFERENCE">炭水化物</option>' +
'<option value="ASH">灰分</option>' +
'<option value="CHOLESTEROL">コレステロール</option>' +
'<option value="SODIUM_CHIORIDE">食塩相当量</option>' +
'<option value="WEIGHT_CHANGE_RATE">重量変化率</option>' +
'<option value="PERCENT_REFUSE">廃棄率</option>' +
'</select>';
glist["MINERAL"] = '<select id="cmp" name="cmp" onChange="ajaxReq()">' +
'<option value="SODIUM">ナトリウム</option>' +
'<option value="POTASSIUM">カリウム</option>' +
'<option value="MAGNESIUM">マグネシウム</option>' +
'<option value="PHOSPHORUS">リン</option>' +
'<option value="CALCIUM">カルシウム</option>' +
'<option value="IRON">鉄</option>' +
'<option value="ZINC">亜鉛</option>' +
'<option value="COPPER">銅</option>' +
'<option value="MANGAN">マンガン</option>' +
'</select>';
glist["VITAMIN"] = '<select id="cmp" name="cmp" onChange="ajaxReq()">' +
'<option value="RETINOL">レチノール</option>' +
'<option value="ALPHA_CAROTENE">α－カロテン</option>' +
'<option value="BETA_CAROTENE">β－カロテン</option>' +
'<option value="CRYPTOXANTHIN">クリプトキサンチン</option>' +
'<option value="BETA_CAROTENE_EQUIVALENTS">β－カロテン当量</option>' +
'<option value="RETINOL_EQUIVALENTS">レチノール当量</option>' +
'<option value="VITAMIN_D">ビタミンD</option>' +
'<option value="ALPHA_TOCOPHEROL">α－トコフェロール</option>' +
'<option value="BETA_TOCOPHEROL">β－トコフェロール</option>' +
'<option value="GAMMA_TOCOPHEROL">γ－トコフェロール</option>' +
'<option value="DELTA_TOCOPHEROL">δ－トコフェロール</option>' +
'<option value="VITAMIN_K">ビタミンK</option>' +
'<option value="THIAMIN">ビタミンB1</option>' +
'<option value="RIBOFLAVIN">ビタミンB2</option>' +
'<option value="NIACIN">ナイアシン</option>' +
'<option value="VITAMIN_B6">ビタミンB6</option>' +
'<option value="VITAMIN_B12">ビタミンB12</option>' +
'<option value="FOLACHIN">葉酸</option>' +
'<option value="PANTOTHENIC_ACID">パントテン酸</option>' +
'<option value="ASCORBIC_ACID">ビタミンC</option>' +
'</select>';
glist["FIBER"] = '<select id="cmp" name="cmp" onChange="ajaxReq()">' +
'<option value="WATER_SOLUBLE_DIETARYFIBER">水溶性食物繊維</option>' +
'<option value="WATER_INSOLUBLE_DIETARYFIBER">不溶性食物繊維</option>' +
'<option value="TOTAL_DIETARYFIBER">食物繊維総量</option>' +
'</select>';
glist["FAT"] = '<select id="cmp" name="cmp" onChange="ajaxReq()">' +
'<option value="SATURATED_FATTY_ACIDS">飽和脂肪酸</option>' +
'<option value="MONOUNSATURATED_FATTY_ACIDS">一価不飽和脂肪酸</option>' +
'<option value="POLYUNSATURATED_FATTY_ACIDS">多価不飽和脂肪酸</option>' +
'<option value="TOTAL_FATTY_ACIDS">脂肪酸総量</option>' +
'<option value="POLYUNSATURATED_FATTY_ACIDSn3">n-3系 多価不飽和脂肪酸</option>' +
'<option value="POLYUNSATURATED_FATTY_ACIDSn6">n-6系 多価不飽和脂肪酸</option>' +
'<option value="FATTY_ACID_040">4:0 酪酸</option>' +
'<option value="FATTY_ACID_060">6:0 ヘキサン酸</option>' +
'<option value="FATTY_ACID_070">7:0 ヘプタン酸</option>' +
'<option value="FATTY_ACID_080">8:0 オクタン酸</option>' +
'<option value="FATTY_ACID_100">10:0 デカン酸</option>' +
'<option value="FATTY_ACID_101">10:1 デセン酸</option>' +
'<option value="FATTY_ACID_120">12:0 ラウリン酸</option>' +
'<option value="FATTY_ACID_130">13:0 トリデカン酸</option>' +
'<option value="FATTY_ACID_140">14:0 ミリスチン酸</option>' +
'<option value="FATTY_ACID_141">14:1 ミリストレイン酸</option>' +
'<option value="FATTY_ACID_150">15:0 ペンタデカン酸</option>' +
'<option value="FATTY_ACID_150_ANT">15:0 ANT ペンタデカン酸</option>' +
'<option value="FATTY_ACID_151">15:1 ペンタデセン酸</option>' +
'<option value="FATTY_ACID_160">16:0 パルミチン酸</option>' +
'<option value="FATTY_ACID_160_ISO">16:0 ISO パルミチン酸</option>' +
'<option value="FATTY_ACID_161">16:1 パルミトレイン酸</option>' +
'<option value="FATTY_ACID_162">16:2 ヘキサジデセン酸</option>' +
'<option value="FATTY_ACID_163">16:3 ヘキサデカトリエン酸</option>' +
'<option value="FATTY_ACID_164">16:4 ヘキサデカテトラエン酸</option>' +
'<option value="FATTY_ACID_170">17:0 ヘプタデカン酸</option>' +
'<option value="FATTY_ACID_170_ANT">17:0 ANT ヘプタデカン酸</option>' +
'<option value="FATTY_ACID_171">17:1 ヘプタデセン酸</option>' +
'<option value="FATTY_ACID_180">18:0 ステアリン酸</option>' +
'<option value="FATTY_ACID_181">18:1 オレイン酸</option>' +
'<option value="FATTY_ACID_182n6">18:2 n-6 リノール酸</option>' +
'<option value="FATTY_ACID_183n3">18:3 n-3 α－リノレン酸</option>' +
'<option value="FATTY_ACID_183n6">18:3 n-6 γ－リノレン酸</option>' +
'<option value="FATTY_ACID_184n3">18:4 n-3 オクタデカテトラエン酸</option>' +
'<option value="FATTY_ACID_200">20:0 アラキジン酸</option>' +
'<option value="FATTY_ACID_201">20:1 イコセン酸</option>' +
'<option value="FATTY_ACID_202n6">20:2 n-6 イコサジエン酸</option>' +
'<option value="FATTY_ACID_203n6">20:3 n-6 イコサトリエン酸</option>' +
'<option value="FATTY_ACID_204n3">20:4 n-3 イコサテトラエン酸</option>' +
'<option value="FATTY_ACID_204n6">20:4 n-6 アラキドン酸</option>' +
'<option value="FATTY_ACID_205n3">20:5 n-3 イコサペンタエン酸</option>' +
'<option value="FATTY_ACID_215n3">21:5 n-3 ヘンイコサペンタデエン酸</option>' +
'<option value="FATTY_ACID_220">22:0 ベヘン酸</option>' +
'<option value="FATTY_ACID_221">22:1 ドコセン酸</option>' +
'<option value="FATTY_ACID_222">22:2 ドコサジエン酸</option>' +
'<option value="FATTY_ACID_224n6">22:4 n-6 ドコサテトラエン酸</option>' +
'<option value="FATTY_ACID_225n3">22:5 n-3 ドコサペンタエン酸</option>' +
'<option value="FATTY_ACID_225n6">22:5 n-6 ドコサペンタエン酸</option>' +
'<option value="FATTY_ACID_226n3">22:6 n-3 ドコサヘキサエン酸</option>' +
'<option value="FATTY_ACID_240">24:0 リグノセリン酸</option>' +
'<option value="FATTY_ACID_241">24:1 テトラコセン酸</option>' +
'<option value="UNIDENTIFIED">未同定</option>' +
'</select>';

// トップページの初期ランキング出力
function topInitLoad(){
    getResoult("result", initNut, 5, "", "ON");
}

// ランキングページの初期ランキング出力
function initLoad(){
    Element.toggle("buttons_input");   // 食品成分グループ選択ドロップダウンリストを表示
    Element.toggle("buttons_ancher");  // 食品成分グループ選択ドロップダウンリストを表示
    Element.toggle("cmpgroup");  // 食品成分グループ選択ドロップダウンリストを表示
    $("cmpspan").innerHTML = glist[$F('cmpgroup')];
    getResoult("result", initNut, 5, "", "");
    getTitle("title", initNut, 5, "");
    Element.toggle("buttons");  // ボタンを隠す
}

// ランキングをリクエストする
// 
// ajaxReq(cmp, limit, group)
//    cmp     食品成分
//    limit   ランキング数
//    group   食品群
function ajaxReq(){
    var cmp = $F('cmp');
    var limit = $F('limit');
    var group = $F('group');
    
    getResoult("result", cmp, limit, group, "");
    getTitle("title", cmp, limit, group);
}

// ランキングを読み込む
// 
// getResoult(target, cmp, limit, group)
//    target  ランキングを表示するタグのid
//    cmp     食品成分
//    limit   ランキング数
//    group   食品群
//    caption "ON"なら、ランキングのテーブルにキャプションを付ける
function getResoult(target, cmp, limit, group, caption){
    param = "out=ajax&cmp=" + cmp + "&limit=" + limit;
    if (group) {
        param = param + "&group=" + group;
    }
    if (caption) {
        param = param + "&caption=" + caption;
    }
    $(target).innerHTML = "読み込み中…";
    new Ajax.Updater({
        success: target
    }, rankingCGI, {
        method: "get",
        parameters: param,
        onFailure: function(httpObj){
            $(target).innerHTML = "エラーで読み込めませんでした";
        }
    });
}

// ランキングのタイトルを設定する
// 
// getTitle(target, cmp, limit, group)
//    target  タイトルを表示するタグのid
//    cmp     食品成分
//    limit   ランキング数
//    group   食品群
function getTitle(target, cmp, limit, group){
    param = "out=ajax&cmp=" + cmp + "&limit=" + limit;
    if (group) {
        param = param + "&group=" + group;
    }
    new Ajax.Updater({
        success: target
    }, titleCGI, {
        method: "get",
        parameters: param,
        onFailure: function(httpObj){
            $(target).innerHTML = "エラーで読み込めませんでした";
        }
    });
}

