function initSearchBox() {
    centerToWaitWin();

    var myGlobalHandlers = {
        onCreate: function(){
            showWait();
        },
        onComplete: function() {
            if(Ajax.activeRequestCount == 0){
                hideWait();
            }
        }
    };

    Ajax.Responders.register(myGlobalHandlers);

    if ($("Keyword")) {
        Event.observe("Keyword", "focus", Keyword_OnFocus, false);
    }

    return;
}

function Keyword_OnFocus() {
    if ($("Keyword").style.color == "#808080" || $("Keyword").style.color == "rgb(128, 128, 128)") {
        $("Keyword").style.color = "#000000";
        $("Keyword").value = "";
    }
    return;
}
function getCatList() {
    new Ajax.Request(ROOT_URL+"/biz/getCatList.php",
                       {method:"post",
                        asynchronous:true,
                        onSuccess:createCatList.bindAsEventListener(this,"CategoryName")});
    return;
}
function createCatList(resultRequest, elem) {
    clearAllComboItem($(elem));
    if (resultRequest.responseText.substr(0,1)!='{') {
        alert("データの読込みエラーが発生しました。");
        return;
    }

    var result = eval( '(' + resultRequest.responseText.unescapeHTML() + ')' );

    if (result["Result"] != "success") {
        alert(result["ResultMsg"]);
        return;
    }

    rows = result.Data;
    for (var i=0; i < rows.length; i++) {
        row = rows[i];
        addComboItem($(elem), row.CategoryName, row.CategoryName);
    }
    return;
}
function searchData(dest, cat, grp, keywd, itmid, catnm, grpnm, itmnm) {
    var frm = "frmMain";
    if (dest == undefined) dest = "resultArea";
    if (cat == undefined) cat = "";
    if (grp == undefined) grp = "";
    if (keywd == undefined) keywd = "";
    if (itmid == undefined) itmid = "";
    if (catnm == undefined) catnm = "";
    if (grpnm == undefined) grpnm = "";
    if (itmnm == undefined) itmnm = "";
    if (cat == "" && grp == "" && keywd == "" && itmid == "") {
        alert("検索条件を指定してください。");
        return false;
    }
    var obj = {
        CategoryID: cat,
        GroupID: grp,
        Keyword: keywd,
        ItemID: itmid
    }
    var param = $H(obj).toQueryString();
    var obj2 = {
        CategoryName: catnm,
        GroupName: grpnm,
        Keyword: keywd,
        ItemID: itmid
    }
    var param2 = $H(obj2).toQueryString();

    new Ajax.Request(ROOT_URL+"/biz/searchItem.php",
                       {method:"post",
                        parameters:param,
                        asynchronous:true,
                        onSuccess:showItemList.bindAsEventListener(this,dest,param2)});
    return;
}
function searchDataForm(dest) {
    var frm = "frmMain";
    if (dest == undefined) dest = "resultArea";

    if (!checkBeforeSearch()) return false;
    var param = Form.serialize(frm);
    var obj = param.parseQuery();
    if ($("Keyword").style.color == "#808080" || $("Keyword").style.color == "rgb(128, 128, 128)") {
        obj["Keyword"] = "";
    }
    if ($(dest)) {
        if (obj["GroupName"] != "") {
            for (var i=0; i < $("GroupName").length; i++) {
                var grpid = $("GroupName").options[i].value;
                if ($("grpMenu"+grpid)) {
                    if ($("GroupName").options[i].selected) {
                        $("grpMenu"+grpid).show();
                    } else {
                        $("grpMenu"+grpid).hide();
                    }
                }
            }
            $("seriesMenu").show();
        } else {
            $("seriesMenu").hide();
        }
        if (obj["CategoryName"] != "") {
            $("categoryMenu").show();
        } else {
            $("categoryMenu").hide();
        }
        var obj1 = {
            CategoryName: $("CategoryName").options[$("CategoryName").selectedIndex].text,
            GroupName: $("GroupName").options[$("GroupName").selectedIndex].text,
            Keyword: obj["Keyword"]
        }
        var param1 = $H(obj1).toQueryString();
        var obj2 = {
            CategoryID: obj["CategoryName"],
            GroupID: obj["GroupName"],
            Keyword: obj["Keyword"]
        }
        param2 = $H(obj2).toQueryString();
        new Ajax.Request(ROOT_URL+"/biz/searchItem.php",
                           {method:"post",
                            parameters:param2,
                            asynchronous:true,
                            onSuccess:showItemList.bindAsEventListener(this,dest,param1)});
    } else {
        var obj2 = {
            cat: obj["CategoryName"],
            grp: obj["GroupName"],
            keywd: obj["Keyword"]
        }
        param = $H(obj2).toQueryString();
        location.href = ROOT_URL+"/result/?"+param;
    }
}
function showItemList(resultRequest, dest, cond){
    //事前チェック
    if (resultRequest.responseText.substr(0,1)!='{') {
        $(dest).hide();
        alert("データの読込みエラーが発生しました。");
        return;
    }

    var result = eval( '(' + resultRequest.responseText.unescapeHTML() + ')' );

    if (result["Result"] != "success") {
        $(dest).hide();
        alert(result["ResultMsg"]);
        return;
    }

    //一覧の作成
    var params = cond.parseQuery();

    $(dest).update("");
    rows = result.Data;
    var html = '<h1><img src="'+ROOT_URL+'/images/result/title_result.gif" width="98" height="22" alt="検索結果" /></h1>'
             + '<p class="msg">検索項目：';
    if (params["CategoryName"] != "") {
        html += 'カテゴリー：<span>'+params["CategoryName"]+'</span>　';
    }
    if (params["GroupName"] != "") {
        html += 'シリーズ：<span>'+params["GroupName"]+'</span>　';
    }
    if (params["Keyword"] != "") {
        html += 'キーワード：<span>'+params["Keyword"]+'</span>';
    }
    html += '<br />';
    if (rows.length == 0) {
        html += '該当する商品がありません。</p>';
    } else {
        html += '該当する商品が<span>'+rows.length+'</span>件あります。</p>';
    }
    html += '<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border:0;">';
    for (var i=0; i < rows.length; i++) {
        row = rows[i];
        photo = '<img src="'+ROOT_URL+'/images/item/70/'+row.ItemID+'.gif" width="70" height="70" alt="'+row.ItemName+'" border="0"><br />';
        if (row.DescURL == "") {
            itemName = '<span>'+row.ItemName+'</span><br />';
        } else {
            itemName = '<a href="'+row.DescURL+'">'+row.ItemName+'</a><br />';
            photo = '<a href="'+row.DescURL+'">'+photo+'</a>';
        }
        html += '<tr><th scope="row">'+(i+1)+'</th><td>'+photo+'<p>'+itemName+'<br />'+row.IntroText.replace(/\n/g, '<br />')+'</p></td></tr>';
    }
    html += '</table>';
    $(dest).update(html);
    $(dest).show();
}
function checkBeforeSearch() {
    var obj;
    var charCnt;
    var num;

    obj = $("Keyword");
    charCnt = obj.value.length;
    if ((charCnt == 0 || obj.value == "商品名・キーワードを入力してください") && $("CategoryName").value == "" && $("GroupName").value == "") {
        alert("検索条件を指定してください。");
        $("CategoryName").focus();
        return false;
    }
    if (charCnt > obj.maxLength) {
        alert("キーワードに入力された文字数("+charCnt+"文字)が多すぎます。\n"+obj.maxLength+"文字以内で入力してください。");
        obj.focus();
        return false;
    }

    return true;
}
