﻿function requestAndUpdate(parameters, divID)
{
    $(divID).innerHTML = '<img src="/images/jp/parts/notes.gif" alt="" align="absmiddle" />';
    var url = "BrowseData.aspx";
    new Ajax.Updater(divID, url, { method: 'get', parameters: parameters });
}

function addLabel(labelID, displayName)
{
    var label = $(labelID);
    while (label.firstChild) Element.remove(label.firstChild);
    label.appendChild(document.createTextNode(displayName));
}

function removeChild(/* elements */)
{
    $A(arguments).each(function(ele)
    {
        while (ele.firstChild) Element.remove(ele.firstChild);
    });
}

function setBox1()
{
    removeChild($("div2"), $("div3"), $("div4"), $("divResult"));
    var parameters = "boxid=Box1"
    requestAndUpdate(parameters, "div1");
}

function box1func(genre, catID, name)
{
    removeChild($("div2"), $("div3"), $("div4"), $("divResult"));
    removeChild($("div2label"), $("div3label"), $("div4label"));
    var format = new Template("boxid=#{boxid}&genre=#{genre}&catID=#{catid}&name=#{name}");
    var params = format.evaluate({ boxid: "Box2", genre: genre, catid: catID, name: name });
    addLabel("div1label", name);
    requestAndUpdate(params, "div2");
}

function box2func(cd, genre, catID, title)
{
    removeChild($("div3"), $("div4"), $("divResult"));
    removeChild($("div3label"), $("div4label"));
    var format = new Template("boxid=#{boxid}&genre=#{genre}&cd=#{cd}&catID=#{catid}&title=#{title}");
    var params = format.evaluate({ boxid: "Box3", genre: genre, cd: cd, catid: catID, title: title });
    addLabel("div2label", title);
    requestAndUpdate(params, "div3");
}

function box3func(genre, cd, name, what, catID)
{
    removeChild($("div4"), $("divResult"));
    var format = new Template("boxid=#{boxid}&what=#{what}&cd=#{cd}&genre=#{genre}&catID=#{catid}");
    var params = format.evaluate({ boxid: "Box4", what: what, cd: cd, genre: genre, catid: catID });

    div3Name =
                (what == "LABEL") ? cd.substring(4, cd.length) :
                (what == "INSTRUMENT") ? name :
                cd;
    addLabel("div3label", div3Name);

    var div4Name =
                (what == "LABEL") ?
                    ((genre == "world") ? "国名" : "アルバム名") :
                (what == "PERIOD") ? "作曲家" :
                (what == "INSTRUMENT") ? "演奏者" :
                (what == "COUNTRY") ? "作曲家" :
                (what == "PERFORMING_GROUP") ? "演奏団体" :
                (what == "ARTIST") ? "アーティスト" :
                (what == "COMPOSER") ? "作曲家" :
                (what == "SOLOIST") ? "ソリスト" :
                (what == "CONDUCTOR") ? "指揮者" :
                (what == "ORCHESTRA") ? "オーケストラ" :
                (what == "ENSEMBLE") ? "アンサンブル" :
                (what == "CHOIR") ? "合唱団" :
                what.capitalize() + "s";
    addLabel("div4label", div4Name);

    requestAndUpdate(params, "div4");
}

function box4func(type, cd, name, genre, catID)
{
    removeChild($("divResult"));
    var format = new Template("boxid=#{boxid}&type=#{type}&cd=#{cd}&name=#{name}&genre=#{genre}&catID=#{catid}");
    var params = format.evaluate({ boxid: "BoxResult", type: type, cd: cd, name: name, genre: genre, catid: catID });
    requestAndUpdate(params, "divResult");
}

// Initialize
Event.observe(window, "load", setBox1);