// JavaScript Document


function yahooSearch() {
    // 結果の表示先に「しばらくお待ちください」と表示する
    document.getElementById("result").innerHTML = "<p>しばらくお待ちください...</p>";
    // Ajaxで通信して結果を表示する
    new Ajax.Request(
        "yahoo_search.cgi",
        {
            parameters : Form.serialize("ajax"),
            onComplete : showResult,
            method : "get"
        }
    );
}

function showResult(resp) {
    var i, xml, html;

    // 受信したXMLを得る
    xml = resp.responseXML;
    // XMLの中からResult要素をすべて取り出す
    var results = xml.getElementsByTagName("Result");
    // 結果の全体をol要素で囲む
    html = '<ol class="search">';
    // Result要素の先頭から順に繰り返す
    for (i = 0; i < results.length; i++) {
        // i番目のResult要素を得る
        var result = results[i];
        // Title／Url／Summary要素の内容（テキスト）を得る
        var title = getNodeText(result, "Title");
        var url = getNodeText(result, "Url");
        var summary = getNodeText(result, "Summary");
        // 結果をHTMLに整形する
        html += '<li>\n';
        html += '<a href="' + url + '">' + title + "</a><br />\n";
        html += '<span style="font-size : 80%;">' + summary + "</span>\n";
        html += '</li>\n';
    }
    // 結果の最後を</ol>タグで閉じる
    html += '</ol>';
    // 結果のHTMLを、IDが「result」のdiv要素に流し込む
    document.getElementById("result").innerHTML = html;
}

function getNodeText(parentNode, tagName) {
    // tagNameで指定される要素を得る
    var node = parentNode.getElementsByTagName(tagName)[0];
    // 要素に子要素があれば、その子要素の値を返す
    if (node.firstChild) {
        return node.firstChild.nodeValue;
    }
    // 子要素がなければ、空文字列を返す
    else {
        return "";
    }
}
		
		
		