
//クラス定義
var cls_flickr_image = function(arg){
	this.className = "cls_flickr_image";
	this.page = 0;
	this.requestFlg = true;
	this.total = 0;
	this.get_count = 0;
	this.per_page = arg;
	this.pool_data = new Array;
	this.request_per_page = 60;
	this.is_error = 0;
	this.success = false;
}

//メソッド定義
cls_flickr_image.prototype = {

	//画像検索メソッド
	search : function() {
		if(!this.requestFlg){
			return true;
		}

		this.success = false;

		flg_f = false;
		$j.ajax({
			dataType: "jsonp",
			jsonp: "jsoncallback",
			data: {
				"text":(typeof f_word == "undefined") ? word : f_word,
				"api_key":'8c7e5ffb819398ce9b62f3cf9bcd6875',
				"method":'flickr.photos.search',
				"per_page":this.request_per_page,
				"sort":'date-posted-desc',
				"format":'json',
				"page":this.page + 1
			},
			url: "http://www.flickr.com/services/rest/",
			timeout: 3000,
			success: function (data) {
				image_search.flickr_image.page++;
				image_search.flickr_image.success = true;
				image_search.flickr_image.is_error = 0;
				if(data['stat'] == 'ok'){
					image_search.flickr_image.total = data['photos']['total'];
					if(!cls_flickr_image.flickr_data) cls_flickr_image.flickr_data = new Array();

					results = data['photos']['photo'];
					//除外設定
					var iLimit = results.length;

					//指定件数に満たない場合以後リクエストは行わない
					if(iLimit < image_search.flickr_image.request_per_page){
						image_search.flickr_image.requestFlg = false;
					}

					for( var i=0; i<iLimit; i++ ) {
						tmp = results[i];
						info  = {};
						info['id'] = tmp['id'];
						info['img'] = new Array;
						info['img'][0] = 'http://static.flickr.com/' + tmp['server'] + '/' + tmp['id'] + '_' + tmp['secret'] + '.jpg';
						info['thumb'] = 'http://static.flickr.com/' + tmp['server'] + '/' + tmp['id'] + '_' + tmp['secret'] + '_s.jpg';
						info['name'] = tmp['title'];
						if(chkExclude(info['img']) == false){
							//除外判定
							var isFlickrUserExclude = false;
							for(var j=0; j<flickr_exclude.length; j++){
								if(tmp["owner"] == flickr_exclude[j]){
									isFlickrUserExclude = true;
									break;
								}
							}
							if(isFlickrUserExclude == false){
								image_search.flickr_image.pool_data.push(info);
							}
						}
					}
				}
				flg_f = true;
				org_stop();
			},
			complete: function(){
				if(image_search.flickr_image.success == false){
					 if(image_search.flickr_image.is_error >= 2){
						image_search.flickr_image.requestFlg = false;
					}else{
						image_search.flickr_image.is_error++;
					}
				}
			}
		});
	}
	//画像リスト取得メソッド
	,getImages : function(needCount) {

		image = new Array;

		var iLimit = this.pool_data.length;
		for( var i=0; i<iLimit; i++ ) {
			//規定数に達したら終了
			if(needCount <= i){
				break;
			}
			info = this.pool_data.shift();
			image.push(info);
			image_search.flickr_image.get_count ++;
		}

		return image;
	}
};
