var excludeCount = 0;
var flg_g = false;
var flg_p = false;
var flg_f = false;
var cls_image_search = function(){
	this.flickr_image = new cls_flickr_image(20);
	this.picasa_image = new cls_picasa_image(20);
	this.google_image = new cls_google_image(8);
};

//メソッド定義
cls_image_search.prototype = {
	//画像検索メソッド
	search : function() {

		//google画像検索
		googleRet = this.google_image.search();

		//ピカサ画像検索
		picasaRet = this.picasa_image.search();

		//フリッカー画像検索
		flickrRet = this.flickr_image.search();

	},
	//次のページを検索
	nextpage: function(){
		this.search();
	},
	//画像リスト取得メソッド
	get : function(){

		//結果データ取得
		flickrData = this.flickr_image.getImages(this.flickr_image.per_page);
		picasaData = this.picasa_image.getImages(this.picasa_image.per_page);
		googleData = this.google_image.getImages(this.google_image.per_page);

		var list = new Array();
		list = list.concat(googleData);
		list = list.concat(picasaData);
		list = list.concat(flickrData);

		//プール分より補填
		for(i=0;i<10;i++){
			if(this.is_poolData() == false){
				break;
			}
			if(list.length < per_page){
				moreList = this.getMorePoolData(per_page - list.length);
				list = list.concat(moreList);
			}else{
				break;
			}
		}
		return list;
	},

	//プール件数の一番多いAPIから返す
	getMorePoolData : function(needCount){
		var moreApi = null;
		var moreList = new Array();

		var fp = this.flickr_image.pool_data ? this.flickr_image.pool_data.length : 0;
		var pp = this.picasa_image.pool_data ? this.picasa_image.pool_data.length : 0;
		var gp = this.google_image.pool_data ? this.google_image.pool_data.length : 0;

		if(pp <= fp && gp <= fp){
			moreList =  this.flickr_image.getImages(needCount);
		}else if(gp <= pp){
			moreList =  this.picasa_image.getImages(needCount);
		}else if(gp > 0){
			moreList =  this.google_image.getImages(needCount);
		}

		return moreList;
	},

	//結果件数の一番多いAPIで検索を行う
	getMoreResult : function(){
		var fp = cls_flickr_image.pool_data ? cls_flickr_image.pool_data.length : 0;
		var pp = cls_picasa_image.pool_data ? cls_picasa_image.pool_data.length : 0;
		var gp = cls_google_image.pool_data ? cls_google_image.pool_data.length : 0;

		var cntF = this.flickr_image.total - this.flickr_image.get_count + fp;
		var cntP = this.picasa_image.total - this.picasa_image.get_count + pp;
		var cntG = this.google_image.total - this.google_image.get_count + gp;
		if(cntF + cntP + cntG == 0){
			return false;
		}

		if(cntF >= cntP && cntF >= cntG){
			this.flickr_image.search();

		}else if(cntP >= cntF && cntP >= cntG){
			this.picasa_image.search();

		}else{
			this.google_image.search();
		}

		return true;
	},
	//結果件数の一番多いAPIから取得を行う
	getMoreGet : function(needCount){
		var fp = cls_flickr_image.pool_data ? cls_flickr_image.pool_data.length : 0;
		var pp = cls_picasa_image.pool_data ? cls_picasa_image.pool_data.length : 0;
		var gp = cls_google_image.pool_data ? cls_google_image.pool_data.length : 0;

		var cntF = this.flickr_image.total - this.flickr_image.get_count + fp;
		var cntP = this.picasa_image.total - this.picasa_image.get_count + pp;
		var cntG = this.google_image.total - this.google_image.get_count + gp;
		if(cntF + cntP + cntG == 0){
			return new Array;
		}

		if(cntF >= cntP && cntF >= cntG){
			return this.flickr_image.getImages(needCount);

		}else if(cntP >= cntF && cntP >= cntG){
			return this.picasa_image.getImages(needCount);

		}else{
			return this.google_image.getImages(needCount);
		}
	},

	//検索総画像数を取得
	getResultCount : function(){
		var cntF = parseInt(this.flickr_image.total);
		var cntP = parseInt(this.picasa_image.total);
		var cntG = parseInt(this.google_image.total);

		return cntF + cntP + cntG;
	},
	//検索可否メソッド
	is_request : function() {
			return this.google_image.requestFlg  || this.flickr_image.requestFlg || this.picasa_image.requestFlg;
	},
	//プール存在チェック
	is_poolData : function() {
		var gp = this.google_image.pool_data ? this.google_image.pool_data.length : 0;
		var pp = this.picasa_image.pool_data ? this.picasa_image.pool_data.length : 0;
		var fp = this.flickr_image.pool_data ? this.flickr_image.pool_data.length : 0;

		if(gp > 0 || pp > 0 || fp > 0){
			return true;
		}

		return false;
	}
};

//除外判定
function chkExclude(image){
	for(var j=0; j<excludeList.length; j++){
		if(excludeList[j].indexOf('http://static.flickr.com/\*') > 0){
			return true;
		}
		var re = new RegExp('(.*)\*$', "i");
		if(excludeList[j].search(re) != -1){
			//除外リストURLが「*」で終わる場合
			if(image.indexOf(excludeList[j].replace("*", "")) != -1 && image.indexOf(excludeList[j].replace("*", "")) !== false){
				return true;
			}
		}else{
			//URL完全一致
			if(image == excludeList[j]){
				return true;
			}
		}
	}
	return false;
}

//配列関数の拡張 配列内の検索
Array.prototype.indexOf = function(s){
	for(var i = 0; i < this.length; i++){
		if(this[i] == s){
			return i;
		}
	}
	return false;
};

//
function org_stop(){
	//取得結果を表示
	if(flg_g == true && flg_p == true && flg_f == true){
		loadOk = true;
		if(first) {
			$j("#image_list p.more a").click();
		}
	}
}
