﻿var tmpurl="";

App = function (arg){
	this.tabs          = arg.tab_ui_elem;
	this.YTpageCount=1;
	this.YTperpage=20;
	this.flickrpage =1;
	this.photozopage =1;
	this.wcpageCount=1;

};



App.prototype.YouTubeSarch =
function (tag,page,per)
{

	if(tag==''){
		$('result_youtube').innerHTML ='キーワード(タグ)が未入力です。'
		 return;
	}

	$('result_youtube').innerHTML =
		'<p><img src="image/ajax_load_gray.gif" \/> searching...</p>';
	this.tabs.set( 'activeIndex', 1 );

var tag ='?tag='+encodeURI(tag);
var page='&page='+ page;
var perpage='&per_page='+per;


var apireq='http://pipes.yahoo.com/pipes/pipe.run?_id=145cac66b8ffd9dec7a4e6f8ad97aac4&_render=json&_callback=myApp.YouTubecallback&_run=1'+"&tag="+encodeURI(tag)+"&page="+page+"&perpage="+perpage;

//	var _instance = this;


	var script  = document.createElement( 'script' );
	script.type = 'text/javascript';
	script.src  = url;
	document.body.appendChild( script );


}



App.prototype.YouTubecallback=
function ( data )

    	var ele = document.getElementById('result_youtube');
	var html = "";

	if(!data){
		res+='キーワード(タグ)に一致する動画は見つかりませんでした。'
	    	ele.innerHTML = res;
		return;
	}

	var item=data.value.items;


	html +='<p style="text-align:right"><a href="javascript:void(0)" onclick="myApp.tabs.set(\'activeIndex\',0)">キーワード変更</a></p>';
	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.YTPrevPage()">≪前へ</a>';
	html +='&nbsp;<a href="javascript:void(0)" onClick="myApp.YTNextPage()">次へ≫</a></p>';
	html +='<div id="selYT"></div>';

	html +='<p style="text-align:center">';


	for (i=0;i<item.length;i++) {
		var video = item[i];

		var url = video["media:group"]["media:player"].url;

		var title = video["media:group"]["media:title"].content;
		var image = video["media:group"]["media:thumbnail"][0].url;
		var id = url.replace('http://www.youtube.com/watch?v=','');

		html += '<img id="'+id+'" class="shadowcss" src="'+image+'" border=0 alt="'+title+'" width="100" height="75" onclick="myApp.panelinit(this)" onmouseover="myApp.imagePop(this,\''+title+'\',\'selYT\')"/>';


 	  }

	html +='</p>';

	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.YTPrevPage()">≪前へ</a>';
	html +='<a href="javascript:void(0)" onClick="myApp.YTNextPage()">次へ≫</a></p>';
	
	$("result_youtube").innerHTML = html;

	myApp.yahoo_video($('tag').value,24

}



App.prototype.YTPrevPage =
function (){

 	if(this.YTpageCount>0) {
		this.YTpageCount=this.YTpageCount-1;
	}else this.YTpageCount=1;
	
	myApp.YouTubeSarch($('tag').value,this.YTpageCount,this.YTperpage)

}

App.prototype.YTNextPage =
function (){
 	this.YTpageCount=this.YTpageCount+1;
	myApp.YouTubeSarch($('tag').value,this.YTpageCount,this.YTperpage)
}


App.prototype.panelinit= function(obj) {

	var url ='http://www.youtube.com/watch?v='+obj.id
	//getflv_yt(url);

	YAHOO.util.Event.addListener(obj.id, "click", YAHOO.youtube.container.panel.show, YAHOO.youtube.container.panel, true);
	var embed='<embed src="http://www.youtube.com/v/'+obj.id+'" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed>';
	YAHOO.youtube.container.panel.setHeader('<div class="tl"></div><span>'+obj.alt+'</span><div class="tr"></div>');

	YAHOO.youtube.container.panel.setBody(embed);
	YAHOO.youtube.container.panel.setFooter('<span id="flurl"></span><span style="margin:0 0 0 30px;text-align: right;">developed&nbsp;by&nbsp;<a href="http://blogsquare256.blog85.fc2.com/" target="_blank">遊ぶブログ</a>&nbsp;<a href="http://www.g-poket.com/simple_youtube/" target="_blank">シンプル動画</a></span>');
	YAHOO.youtube.container.panel.render(document.body);

}



function getflv_yt(url) {

 	tmpurl = url.replace("watch?v","get_video?video_id");


	var apiurl = 'http://pipes.yahoo.com/pipes/pipe.run?_id=rIpvK3Fv3RGY_ksJ1ZzWFw&_render=json&_callback=flvjson&_run=1&url='+encodeURIComponent(url);

	var script  = document.createElement( 'script' );
	script.type = 'text/javascript';
	script.src  = apiurl;
 	script.charset='UTF-8';
	document.body.appendChild( script );

}


function flvjson(data){

	if(!data){
		return;
	}

	if(data.count==0){
		return;
	}


	var s=data.value.items;
	var html='';

	if (s.length!=0) {

		var flvurl = tmpurl+"&t="+s[0].content;
		var mp4url = flvurl+"&fmt=18";
//		alert(flvurl)
		html+='<a href="'+ flvurl + '">Get! FLV</a> <a href="'+ mp4url + '">MPEG4</a>';
		document.getElementById('flurl').innerHTML=html;

	}

}






/*
App.prototype.amebaSarch =
function (tag,type,rating)
{
	if(tag==''){
		$('result_ameba').innerHTML ='キーワード(タグ)が未入力です。'
		 return;
	}


	$('result_ameba').innerHTML =
		'<p><img src="image/ajax_load_gray.gif" \/> searching...</p>';
	this.tabs.set( 'activeIndex', 2 );

var tag ='?keyword='+encodeURI(tag);


var apireq='perl/search'+type+'.cgi'+tag;

if (rating!=undefined){
	apireq = apireq + '&rating='+rating;
	}


	var _instance = this;

	new Ajax.Request(
		apireq,
		{
			method: 'get',
			onComplete: function (req){
	  			$("result_ameba").innerHTML = _instance.AmebaparseJSON(req.responseText);
				myApp.yahoo_video($('tag').value,24);

			}
		}
	);

}


App.prototype.AmebaparseJSON =
function (jsData)
{

	var data = eval("("+jsData+")");

	var html = "";

    	if ( !data ) {
		html = "キーワード(タグ)に一致する動画は見つかりませんでした。";
		return html;
	}

	var list=data.item;


	html +='<p style="text-align:right"><a href="javascript:void(0)" onclick="myApp.tabs.set(\'activeIndex\',0)">キーワード変更</a>';
	html +='&nbsp;<a href="javascript:void(0)" onClick="myApp.amebaSarch($(\'tag\').value,\'p\')">視聴回数順</a>';

	html +='&nbsp;<a href="javascript:void(0)" onClick="myApp.amebaSarch($(\'tag\').value,\'c\')">コメント数順</a>';
	html +='&nbsp;<a href="javascript:void(0)" onClick="myApp.amebaSarch($(\'tag\').value,\'r\',\'good\')">Good順</a>';
	html +='&nbsp;<a href="javascript:void(0)" onClick="myApp.amebaSarch($(\'tag\').value,\'r\',\'bad\')">bad順</a><p>';





	html +='<div id="selAV"></div>';
	html +='<p style="text-align:center">';

	for(var i=0; i<list.length; i++)

	{

	var stitle = list[i].title;
	var simage = list[i].imageUrlSmall;
	var url = list[i].link;
	var vid = list[i].tagId;

	html += '<a href="' + url + '" target="_blank">';
	html += '<img id="'+ vid +'" class="shadowcss" src="' + simage + '" onmouseover="myApp.imagePop(this,\''+stitle+'\',\'selAV\')" width="100px" height="75" alt="'+stitle+'" border="0" /></a>';

 	}

	html +='</p>';
	return html;

}

*/






App.prototype.photozoSarch =
function (tag,lim,off)
{
	if(tag==''){
		$('result_photozo').innerHTML ='キーワード(タグ)が未入力です。'
		 return;
	}


	$('result_photozo').innerHTML =
		'<p><img src="image/ajax_load_gray.gif" \/> searching...</p>';
	this.tabs.set( 'activeIndex', 4 );

var tag ='?tag='+encodeURI(tag);
var limit='&limit='+ lim;
var offset='&offset='+off;


var apireq='php/photozo_json.php'+tag+limit+offset;


	var _instance = this;

	new Ajax.Request(
		apireq,
		{
			method: 'post',
			onComplete: function (req){
	  			$("result_photozo").innerHTML = _instance.photozoparseJSON(req.responseText);
				myApp.yahoo_image($('tag').value,24);

			}
		}
	);

}


App.prototype.photozoparseJSON =
function (jsData)
{
	var data = eval("("+jsData+")");

	var html = "";

    	if ( !data ) {
		html = "キーワード(タグ)に一致する画像は見つかりませんでした。";
		return html;
	}
	
	var list=data;

	html +='<p style="text-align:right"><a href="javascript:void(0)" onclick="myApp.tabs.set(\'activeIndex\',0)">キーワード変更</a></p>';
	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.pzPrevPage()">≪前へ</a>';
	html +='<a href="javascript:void(0)" onClick="myApp.pzNextPage()">次へ≫</a></p>';
	html +='<div id="selPZ"></div>';

	html +='<p style="text-align:center">';


	for(var i=0; i<list.length; i++)

	{

	var stitle = list[i].photo_title;
	var simage = list[i].thumbnail_image_url;
	var url = list[i].image_url;
	var vid = list[i].photo_id;

	html += '<img id="'+ vid +'" class="shadowcss" src="' + simage + '" onmouseover="myApp.imagePop(this,\''+stitle+'\',\'selPZ\')" width="100px" height="75" alt="'+stitle+'" onclick="GsFlash.ObjVew.showGameBox(\''+url+'\',0)" />';

 	}

	html +='</p>';

	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.pzPrevPage()">≪前へ</a>';
	html +='<a href="javascript:void(0)" onClick="myApp.pzNextPage()">次へ≫</a></p>';

	return html;


}



App.prototype.pzPrevPage =
function (){

 	if(this.photozopage>20) {
		this.photozopage=this.photozopage-20;
	}else this.photozopage=1;
	
	myApp.photozoSarch($('tag').value,20,this.photozopage)

}

App.prototype.pzNextPage =
function (){
 	this.photozopage=this.photozopage+20;
	myApp.photozoSarch($('tag').value,20,this.photozopage)
}





App.prototype.waccaSarch =
function (key,lim,off)
{

$('result_wacca').innerHTML = '<p><img src="image/ajax_load_gray.gif" \/> searching...</p>';
this.tabs.set( 'activeIndex', 5 );

var keyword ='?keyword='+encodeURI(key);
var limit='&limit='+ lim;
var offset='&offset='+off;


var apireq='php/wmjson.php'+keyword+limit+offset;



	var _instance = this;

	new Ajax.Request(
		apireq,
		{
			method: 'post',
			onComplete: function (req){
	  			$("result_wacca").innerHTML = _instance.waccaparseJSON(req.responseText);
			}
		}
	);

}


App.prototype.waccaparseJSON =
function (jsData)
{

	var data = eval("("+jsData+")");
	var html = "";
    	if ( !data ) {
		html = "キーワード(タグ)に一致する楽曲は見つかりませんでした。";
		return html;
	}


	var list=data;


    	if ( list.result==0 ) {
		html = "キーワード(タグ)に一致する楽曲は見つかりませんでした。";
		return html;
	}







	html +='<p style="text-align:right"><a href="javascript:void(0)" onclick="myApp.tabs.set(\'activeIndex\',0)">キーワード変更</a></p>';
	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.wcPrevPage()">≪前へ</a>';
	html +='<a href="javascript:void(0)" onClick="myApp.wcNextPage()">次へ≫</a></p>';
	html +='<div id="selWC"></div>';

	html +='<p style="text-align:center">';


	for(var i=0; i<list.length; i++)

	{

	var stitle = list[i].song_title;
	var simage = list[i].img_url;
	var url = list[i].mp3_url;
	var vid = list[i].song_id;

	html += '<img id="'+vid+'" src="'+simage+'" border="0" alt="'+stitle+'"';
	html += ' onclick="myApp.wpanelinit(this,'
	html += '\''+ url + '\',';
	html += '\''+ stitle +'\')" width="100" height="75" class="shadowcss" onmouseover="myApp.imagePop(this,\''+stitle+'\',\'selWC\')"/>';


/*
	html += '<img id="'+vid+'" src="'+simage+'" border="0" alt="'+stitle+'"';
	html += ' onclick="myApp.mpplay('
	html += '\''+ url + '\',';
	html += '\''+ stitle +'\')" width="100" height="75" class="shadowcss" onmouseover="myApp.imagePop(this,\''+stitle+'\',\'selWC\')"/>';
*/


 	}

	html +='</p>';

	html +='<p style="text-align:right"><a href="javascript:void(0)" onClick="myApp.wcPrevPage()">≪前へ</a>';
	html +='<a href="javascript:void(0)" onClick="myApp.wcNextPage()">次へ≫</a></p>';

	return html;


}



App.prototype.wpanelinit=function (obj,mp3) {

	YAHOO.util.Event.addListener(obj.id, "click", YAHOO.wacca.container.panel.show, YAHOO.wacca.container.panel, true);
	var mp3set ='http://g-poket.com/js/FMP3.swf?mp3='+mp3+'&action=play&title='+obj.alt+'&color=EDEDED&loop=yes&lma=yes&textcolor=000066';
	var embed='<embed src="'+mp3set+'" type="application/x-shockwave-flash" wmode="transparent" width="300" height="80"></embed>';

	YAHOO.wacca.container.panel.setHeader('<div class="tl"></div><span>'+obj.alt+'</span><div class="tr"></div>');

	YAHOO.wacca.container.panel.setBody(embed);
	YAHOO.wacca.container.panel.setFooter('<span><a href="http://wacca.tv/help/api" target="_blank">wacca</a></span>&nbsp;<span>developed&nbsp;by&nbsp;<a href="http://blogsquare256.blog85.fc2.com/" target="_blank">遊ぶブログ</a></span>&nbsp;<span><a href="http://media.g-poket.com/" target="_blank">メディアサーチ</a></span>');
	YAHOO.wacca.container.panel.render(document.body);

}




App.prototype.wcPrevPage=
function (){

 	if(this.wcpageCount > 20 ) {
		this.wcpageCount=this.wcpageCount- 20;
	}else this.wcpageCount=1;
	
	myApp.waccaSarch($('tag').value,20,this.wcpageCount)

}
App.prototype.wcNextPage=
function (){

 	this.wcpageCount=this.wcpageCount+20;
	myApp.waccaSarch($('tag').value,20,this.wcpageCount)
}

App.prototype.mpplay=
function (mp3src,title){
	var mp3set ='http://g-poket.com/js/FMP3.swf?mp3='+mp3src+'&action=play&title='+title+'&color=000033&loop=yes&lma=yes&textcolor=FFFFFF';
	GsFlash.ObjVew.showGameBox(mp3set,1,300,80);
}



App.prototype.yahoo_video=
function (p,r){

var p ='?query='+encodeURI(p);
var r ='&results='+r;

var apireq='php/Yahoo_VideoJSON.php'+p+r;


	new Ajax.Request(
		apireq,
		{
			method: 'post',
			onComplete: function (req){
	  			$("result_yv").innerHTML = myApp.YVparseJSON(req.responseText);
	  			$("result_yv2").innerHTML = $("result_yv").innerHTML;

			}
		}
	);

}


App.prototype.YVparseJSON=
function (jsData){

	var html = "";

    	if ( ! jsData ) {
		html = "見つかりませんでした。";
		return html;
	}
	var data = eval("("+jsData+")");

	var list = data.result;

	for(var i=0; i<list.length; i++)

	{

	var stitle = list[i].title;
	var simage = list[i].thumbnailurl;
	var url = list[i].url;
//	var vid = list[i].id;

//	html += '<a href="'+ url +'" target="_blank">';
//	html += '<img id="id'+ i +'" class="shadowcss" src="' + simage + '" width="75px" height="56" alt="'+stitle+'" border="0"/></a>';

	html += '<img id="id'+ i +'" class="shadowcss" src="' + simage + '" width="75px" height="56" alt="'+stitle+'" border="0" onclick="myApp.Ywindowinit(this,\''+url+'\')"/>';




 	}

	return html;


}

App.prototype.Ywindowinit=function(obj,url) {

	YAHOO.util.Event.addListener(obj.id, "click", YAHOO.yahoov.container.panel.show, YAHOO.yahoov.container.panel, true);
	var embed='<embed src="'+url+'" wmode="transparent" width="425" height="350"></embed>';
	YAHOO.yahoov.container.panel.setHeader('<div class="tl"></div><span>'+obj.alt+'</span><div class="tr"></div>');

	YAHOO.yahoov.container.panel.setBody(embed);
	YAHOO.yahoov.container.panel.setFooter('<span>developed&nbsp;by&nbsp;<a href="http://blogsquare256.blog85.fc2.com/" target="_blank">遊ぶブログ</a></span>&nbsp;<span><a href="http://media.g-poket.com/" target="_blank">メディアサーチ</a></span>');
	YAHOO.yahoov.container.panel.render(document.body);

}



App.prototype.yahoo_image=
function (p,r){

var p ='?query='+encodeURI(p);
var r ='&results='+r;

var apireq='php/Yahoo_ImgJSON.php'+p+r;

	new Ajax.Request(
		apireq,
		{
			method: 'post',
			onComplete: function (req){
	  			$("result_yi").innerHTML = myApp.YIparseJSON(req.responseText);
	  			$("result_yi2").innerHTML = $("result_yi").innerHTML;

			}
		}
	);

}


App.prototype.YIparseJSON=
function (jsData){

	var html = "";

    	if ( ! jsData ) {
		html = "見つかりませんでした。";
		return html;
	}
	var data = eval("("+jsData+")");

	var list = data.result;

	for(var i=0; i<list.length; i++)

	{

	var stitle = list[i].title;
	var simage = list[i].thumbnailurl;
	var url = list[i].url;
//	var vid = list[i].id;

	html += '<img id="id'+ i +'" class="shadowcss" src="' + simage + '" width="75px" height="56px" alt="'+stitle+'" onclick="GsFlash.ObjVew.showGameBox(\''+url+'\',0)" />';


 	}


	return html;


}


App.prototype.yahoo_music=
function (){

var apireq='php/Yahoo_MusicJSON.php';


	new Ajax.Request(
		apireq,
		{
			method: 'post',
			onComplete: function (req){
	  			$("result_ym").innerHTML = myApp.YMparseJSON(req.responseText);
			}
		}
	);

}


App.prototype.YMparseJSON=
function (jsData){

	var html = "";



    	if ( ! jsData ) {
		html = "見つかりませんでした。";
		return html;
	}
	var data = eval("("+jsData+")");

	var list = data.result;

	for(var i=0; i<list.length; i++)

	{

	var cname = list[i].channelname;
	var pname = list[i].programname;
	var curl = list[i].channelurl;
	var purl = list[i].programurl;

	html +='<p style="text-align:left">';
//	html += '<a href="'+ curl +'" target="_blank">'+cname+'</a>';
	html += '<a href="'+ purl +'" target="_blank">'+pname+'</a></p>';


 	}


	return html;


}







App.prototype.imagePop=
function(obj,title,sel){

   var id = obj.id;

   $(sel).innerHTML='<h4>'+title+'</h4>';



   var attributes = {
      width: {to: 100},
      height: {to: 75}
   };

   var attributes2 = {
      width: {to: 130},
      height: {to: 97}
   };


    
   var anim = new YAHOO.util.Anim(id, attributes);
   anim.attributes.width = { from: 100, to: 130, unit: 'px' };
   anim.attributes.height = { from: 75, to: 97, unit: 'px' };
   anim.method = YAHOO.util.Easing.elasticOut;
   YAHOO.util.Event.on(id, "mouseover", anim.animate, anim, true);  


   var anim2 = new YAHOO.util.Anim(id, attributes2);
   anim2.attributes.width = { from: 130, to: 100, unit: 'px' };
   anim2.attributes.height = { from: 97, to: 75, unit: 'px' };
   anim2.method = YAHOO.util.Easing.elasticOut;
   YAHOO.util.Event.on(id, "mouseout", anim2.animate, anim2, true);  


}

App.prototype.setkey=
function(key){
$('tag').value = key;
}



//<![CDATA[
function run(keyword) {
  var bs = new Ranger.TopicMining();
  bs.startHandler(start);
  bs.successHandler(success);
  bs.failureHandler(failure);
  bs.endHandler(end);
  bs.miningByKeyword(keyword, 20);
}
function success(result) {

var html='';

  for (var i=0; i<result.results.length; i++) {
    var label = result.results[i];

	html += '<span class="cloud'+label.volume +'">';
	html += '<a href="javascript:void(0)" onclick="myApp.YouTubeSarch(\'';
	html += label.word;
	html += '\',1,20);myApp.setkey(\''+label.word+'\')" >'+label.word+'</a></span>';


	$('cloud').innerHTML = html;

  }
}
function failure(error) {
  $('cloud').innerHTML = error.escapeHTML();
}
function start(activeCount) {
  if (activeCount==0)
    Element.show('indicator');
}
function end(activeCount) {
  if (activeCount==0)
    Element.hide('indicator');
}
//]]>


