// 画像検索を行う関数
function photo_search ( param ) {
    // APIリクエストパラメタの設定
    param.api_key  = '578b58c1e08ad7040539e3fcbdcecfd4';
    param.method   = 'flickr.photos.search';
    param.per_page = 100;
    param.sort     = 'date-posted-desc';
    param.format   = 'json';
    param.jsoncallback = 'jsonFlickrApi';

    // APIリクエストURLの生成(GETメソッド)
    var url = 'http://www.flickr.com/services/rest/?'+
               obj2query( param );

    // script 要素の発行
    var script  = document.createElement( 'script' );
    script.type = 'text/javascript';
    script.src  = url;
    document.body.appendChild( script );
};

// 現在の表示内容をクリアする
function remove_children ( id ) {
    var div = document.getElementById( id );
    while ( div.firstChild ) { 
        div.removeChild( div.lastChild );
    }
};

// オブジェクトからクエリー文字列を生成する関数
function obj2query ( obj ) {
    var list = [];
    for( var key in obj ) {
        var k = encodeURIComponent(key);
        var v = encodeURIComponent(obj[key]);
        list[list.length] = k+'='+v;
    }
    var query = list.join( '&' );
    return query;
}

// Flickr検索終了後のコールバック関数
function jsonFlickrApi ( data ) {
    // データが取得できているかチェック
    if ( ! data ) return;
    if ( ! data.photos ) return;
    var list = data.photos.photo;
    if ( ! list ) return;
    if ( ! list.length ) return;

    // 現在の表示内容（Loading...）をクリアする
    remove_children( 'flickr_area' );

    // 取得した検索結果リストをランダムに並べ替える
	var i = list.length;
	while (i) {
		var j = Math.floor(Math.random()*i);
		var t = list[--i];
		list[i] = list[j];
		list[j] = t;
	}

    // 各画像を表示する
    var div = document.getElementById( 'flickr_area' );
    //for( var i=0; i<list.length; i++ ) {
    for( var i=0; i<9; i++ ) {
        var photo = list[i];

        // flickr_badge_image 要素の生成
        var bimage = document.createElement( 'div' );
        bimage.className = 'flickr_badge_image';
        
        // a 要素の生成
        var atag = document.createElement( 'a' );
        atag.href = 'http://www.flickr.com/photos/'+
                    photo.owner+'/'+photo.id+'/';
        atag.target = '_blank'

        // img 要素の生成
        var img = document.createElement( 'img' );
        img.src = 'http://static.flickr.com/'+photo.server+
                  '/'+photo.id+'_'+photo.secret+'_s.jpg';
        //img.style.border = '0';
        
        atag.appendChild( img );
        bimage.appendChild( atag );
        div.appendChild( bimage );
    }
}
