
// onload

function loadaction() {

	var f = document.getElementById( 'f' );
	var cperpage = getCookie("perpage");
	if (cperpage != "")
	f.pp.value = cperpage;

}
Event.observe(window,'load', loadaction, false);

// cookie

function getCookie(key,  tmp1, tmp2, xx1, xx2, xx3) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        }
        xx1 = xx2 + 1;
    }
    return("");
}

function setCookie(key, val, tmp) {
    tmp = key + "=" + escape(val) + "; ";
    // tmp += "path=" + location.pathname + "; ";
    tmp += "expires=Tue, 31-Dec-2030 23:59:59; ";
    document.cookie = tmp;
}
function clearCookie(key) {
    document.cookie = key + "=" + "xx; expires=Tue, 1-Jan-1980 00:00:00;";
}

// 参考サイト：
// http://itpro.nikkeibp.co.jp/article/COLUMN/20061101/252356/

// 画像検索を行う関数
function photo_search ( param, page, perpage ) {

	if (page == '') page = 1;
	if (perpage == '') perpage = 80;

	setCookie("perpage", perpage);

	// APIリクエストパラメタの設定
	param.api_key  = '5f72cca2d1a7ed7cc4b4906b83262b23';
	param.method   = 'flickr.photos.search';
	param.page = page;
	param.per_page = perpage;
	param.sort	 = 'interestingness-desc';
	param.license	 = '4,5,6';
	param.safe_search	 = '1';
	param.content_type	 = '1';
	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;

	lastpage = data.photos.pages

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

	// 各画像を表示する
	var div = document.getElementById( 'photos' );
	var ul = document.createElement( 'ul' );

	for( var i=0; i<list.length; i++ ) {
		var photo = list[i];
		var li = document.createElement( 'li' );
 
		// a 要素の生成
		var atag = document.createElement( 'a' );
		atag.href = 'http://static.flickr.com/'+photo.server+
				  '/'+photo.id+'_'+photo.secret+'.jpg';
		atag.rel = 'lightbox[]';
		atag.title = '<a href="http://www.flickr.com/photos/'+
					photo.owner+'/'+photo.id+'/" target="flickr">go to flickr site</a>';

		// 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 );
		li.appendChild( atag );
		ul.appendChild( li );
	}
	div.appendChild( ul );
}

function submitStop(e){
		if (!e) var e = window.event;
		if(e.keyCode == 13) {
			var f = document.getElementById( 'f' );
			if (f.q.value != "") {
				photo_search({ text: f.q.value }, f.page.value, f.pp.value);
				commonaction();
			}
			return false;
		}
}

function qsearch(){
	var f = document.getElementById( 'f' );
	if (f.q.value != "") {
		photo_search({ text: f.q.value }, f.page.value, f.pp.value);
		commonaction();
	}
}

function prevpage(){
	var f = document.getElementById( 'f' );
	if (f.q.value != "") {
		var ppage;
		if (parseInt(f.page.value) == 1) ppage = 1;
		else ppage = f.page.value-1;
		photo_search({ text: f.q.value }, ppage, f.pp.value);
		f.page.value = ppage;
		commonaction();
	}
}

function nextpage(){
	var f = document.getElementById( 'f' );
	if (f.q.value != "") {
		var npage = parseInt(f.page.value);
		if (npage != lastpage)
			npage += 1;
		photo_search({ text: f.q.value }, npage, f.pp.value);
		f.page.value = npage;
		commonaction();
	}
}

function resetpage(){
	document.getElementById('input-page').value = "1";
}

function commonaction(){
		document.getElementById('pagenaviwrap').style.display = "inline";
		document.getElementById('ad').style.display = "block";
}

