//  レスポンス JSONP 取得後に呼び出されるコールバック関数

function callback (res) {
    // ローディング表示をクリアする
    $('#result').empty();

    // 検索結果が0件の場合は、エラーメッセージを表示して終了
    if ( res.Count-0 == 0 ) {
        alert( '見つかりませんでした。' );
        return;
    }

    // 検索結果を格納するテーブル
    var table = document.createElement( 'table' );
    var tbody = document.createElement( 'tbody' );
    table.appendChild( tbody );
    $('#result').append( table );

    // 検索結果をループで回す
    for( var i=0; i<res.Entry.length; i++ ) {
        var entry = res.Entry[i];
        var tr = document.createElement( 'tr' );
        tbody.appendChild( tr );

        // 日時（date）のセル
        var tddate = document.createElement( 'td' );
        $(tddate).text( entry.date );
        tr.appendChild( tddate );

        // タイトル(title)＋リンク(link)のセル
        var tdlink = document.createElement( 'td' );
        var a = document.createElement( 'a' );
        $(a).text( entry.title );
        a.href = entry.link;
        a.target = '_blank';
        tdlink.appendChild( a );
        tr.appendChild( tdlink );
    }
}

//  API を呼び出して検索する関数

function taggy_search (f) {
    // フォームの内容を取得する
    var query = $(f.query).val();
    var media = $(f.media).val()

    // クエリ文字列を生成する
    var param = {
        encoding:   'UTF-8',
        callback:   'callback',
        media:      media,
        query:      query,
        limit:      20,
        offset:     0
    };
    var search = jQuery.param(param);
    var url = 'http://taggy.jp/media/new/jsonp.do?'+search;

    // いったん検索結果エリアをクリアして、ローディング表示
    $('#url').text(url);
    $('#result').empty().append( '<img src="loading.gif">' );

    // JSONP呼び出し用の<script>要素を発行する
    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    script.charset = param.encoding;
    script.src = url;
    document.body.appendChild( script );
}

//  Ajax (JSONP) せずに、TAGGY 本サイトに移動する関数

function taggy_jump (f) {
    // フォームの内容を取得する
    var query = $(f.query).val();
    var media = $(f.media).val()

    // クエリ文字列を生成する
    var param = {
        query:  query
    };
    var search = jQuery.param(param);

    // 新しいウインドウで検索結果画面を開く
    var url = 'http://www.taggy.jp/'+media+'/search.do?'+search;
    window.open( url, '_blank' );
}
