
//クラス定義
var cls_picasa_image = function(arg){
	this.className = "cls_picasa_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_picasa_image.prototype = {

	//画像検索メソッド
	search : function() {
		if(!this.requestFlg){
			return true;
		}

		this.success = false;

		//1000件制御
		maxResults = this.request_per_page;
		startIndex = this.page * this.request_per_page+1;
		if(startIndex + maxResults > 1000){
			maxResults = 1000 - startIndex +1 ;
		}

		flg_p = false;
		$j.ajax({
			dataType: "jsonp",
			data: {
				"kind":"photo",
				"q":(typeof p_word == "undefined") ? word : p_word,
				"alt":"json-in-script",
				"max-results":maxResults,
				"start-index":startIndex,
				"safe":"off",
				"thumbsize":"144,800",
				"sort":"date"
			},
			url: "http://picasaweb.google.com/data/feed/api/all",
			timeout: 3000,
			success: function(data){
				image_search.picasa_image.page++;
				image_search.picasa_image.success = true;
				image_search.picasa_image.is_error = 0;
				data = data['feed'];
				if(data && data['openSearch$totalResults']['$t'] != 0){
					image_search.picasa_image.total = data['openSearch$totalResults']['$t'] < 1000 ? data['openSearch$totalResults']['$t'] : 1000
					if(!cls_picasa_image.picasa_data) cls_picasa_image.picasa_data = new Array;
					if(data['entry']){
						results = data['entry'];
						//除外設定
						var iLimit = results.length;

						//指定件数に満たない場合以後リクエストは行わない
						if(iLimit < image_search.picasa_image.request_per_page){
							image_search.picasa_image.requestFlg = false;
						}

						for( var i=0; i<iLimit; i++ ) {
							tmp = results[i];
							info  = {};
							info['id'] = tmp['gphoto$id']['$t'];
							info['img'] = tmp['media$group']['media$thumbnail'][1]['url'];
							info['thumb'] = tmp['media$group']['media$thumbnail'][0]['url'];
							info['name'] = tmp['summary']['$t'];
							if(chkExclude(info['img']) == false){
								image_search.picasa_image.pool_data.push(info);
							}
						}
					}else{
						image_search.picasa_image.requestFlg = false;
					}
				}
			},
			complete: function(){
				if(image_search.picasa_image.success == false){
					 if(image_search.picasa_image.is_error >= 2){
						image_search.picasa_image.requestFlg = false;
					}else{
						image_search.picasa_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.picasa_image.get_count ++;
		}

		return image;
	}
};

var gdata = function(){};
gdata.io = function(){};
gdata.io.handleScriptLoaded = function(data) {
	image_search.picasa_image.page++;
	image_search.picasa_image.success = true;
	image_search.picasa_image.is_error = 0;
	data = data['feed'];
	if(data && data['openSearch$totalResults']['$t'] != 0){
		image_search.picasa_image.total = data['openSearch$totalResults']['$t'] < 1000 ? data['openSearch$totalResults']['$t'] : 1000
		if(!cls_picasa_image.picasa_data) cls_picasa_image.picasa_data = new Array;
		if(data['entry']){
			results = data['entry'];
			//除外設定
			var iLimit = results.length;

			//指定件数に満たない場合以後リクエストは行わない
			if(iLimit < image_search.picasa_image.request_per_page){
				image_search.picasa_image.requestFlg = false;
			}

			for( var i=0; i<iLimit; i++ ) {
				tmp = results[i];
				info  = {};
				info['id'] = tmp['gphoto$id']['$t'];
				info['img'] = tmp['media$group']['media$thumbnail'][1]['url'];
				info['thumb'] = tmp['media$group']['media$thumbnail'][0]['url'];
				info['name'] = tmp['summary']['$t'];
				if(chkExclude(info['img']) == false){
					image_search.picasa_image.pool_data.push(info);
				}
			}
		}else{
			image_search.picasa_image.requestFlg = false;
		}
	}
	if(image_search.picasa_image.success == false){
		 if(image_search.picasa_image.is_error >= 2){
			image_search.picasa_image.requestFlg = false;
		}else{
			image_search.picasa_image.is_error++;
		}
	}
	flg_p = true;
	org_stop();
}
