
//クラス定義
var cls_youtube_video = function(arg){
	this.className = "cls_youtube_video";
	this.page = 0;
	this.youtube_data = null;
	this.requestFlg = true;
	this.total = 0;
	this.get_count = 0;
	this.per_page = arg;
	this.youtube_pool_data = null;
}

//メソッド定義
cls_youtube_video.prototype = {

	//画像検索メソッド
	search : function(word, page) {
		if(!this.requestFlg){
			return true;
		}

		this.page += 1;

		$j.ajax({
			dataType: "jsonp",
			data: {
				"vq": word,
				"start-index": ((this.page-1)*this.per_page)+1,
				"max-results":this.per_page,
				"alt":"json-in-script",
				"racy": 'include'
			},
			timeout: 3000,
			url: "http://gdata.youtube.com/feeds/api/videos",
			success: function(data){
				data = data['feed'];
				if(data && data['openSearch$totalResults']['$t'] != 0){
					video_search.youtube_video.total = data['openSearch$totalResults']['$t'];
					if(!cls_youtube_video.youtube_data) cls_youtube_video.youtube_data = new Array;
					cls_youtube_video.youtube_data = cls_youtube_video.youtube_data.concat(data['entry']);
				}
			}
		});
		return false;
	},

	getImages : function() {

		image = new Array;

		if(cls_youtube_video.youtube_pool_data) {
			image = cls_youtube_video.youtube_pool_data;
			cls_youtube_video.youtube_pool_data = null;
		}
		var data = cls_youtube_video.youtube_data;

		if(data == null){
			this.requestFlg = false;
			return image;
		}

		for( var i=0; i<this.per_page; i++ ) {
			tmp = data.shift();
			if(!tmp){
				//取得できるデータが無い＝結果の末尾
				this.requestFlg = false;
				return image;
			}
			this.get_count++;
			info  = {};
			info['video'] = tmp['media$group']['media$player'][0]['url'];
			info['thumb'] = tmp['media$group']['media$thumbnail'][0]['url'];
			info['name'] = tmp['title']['$t'];
			var str = tmp['id']['$t'].toString();
			var s = str.split("/");
			info['id'] = s[s.length-1];
			image.push(info);
		}

		return image;
	},
	setImages : function(data) {
		cls_youtube_video.youtube_pool_data = data;
	}
};
