﻿function rand_str(length) {
	strlist = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	r = "";
	for(i=0;i<length;i++){
		t1 = strlist.charAt(Math.floor(Math.random() * strlist.length));
		r = r + t1;
	}
	return r;
}

//by:http://como-esta-senorita.cocolog-nifty.com/como_esta_senorita/2006/01/javascripttrim_15ca.html
function trim(argValue){

    return String(argValue).replace(/^[ 　]*/gim, "").replace(/[ 　]*$/gim, "");

}

//検索開始
function find_ytv() {
	twin_id = "find_"+rand_str(8);
	find_str = document.find.findstr.value;
	find_str = find_str.replace("　"," ");
	find_str = trim(find_str);
	find_str = find_str.replace("<","&lt;");
	find_str = find_str.replace(">","&gt;");
	if (find_str == "") {
		alert("なんか入れてください");
		return 0;
	}
	var win = new Window(twin_id, {
	title: "'"+find_str+"' の検索",
	className: "dialog",
	top:50, left:80,
	width:480, height:360,
	zIndex: 100,
	resizable: true,
	draggable:true
	});
	//検索発行
	cobj = YAHOO.util.Connect.asyncRequest("post","ytsk_xml.php",{success:findback},"search="+encodeURIComponent(find_str)+"&page=1&winkey="+twin_id);
	//ウィンドウを設定
	win.ytskaj_page = 1;
	win.ytskaj_search = encodeURIComponent(find_str);
	win.getContent().innerHTML = "<B>検索中…しばらくお待ち下さい。</B>";
	win.setDestroyOnClose();
	win.show();
}

function pageback(mwinkey) {
	mwin = Windows.getWindow(mwinkey);
	if (mwin.ytskaj_page == 1) {
		alert("これ以上戻れません");
		return 1;
	}
	//検索発行
	cobj = YAHOO.util.Connect.asyncRequest("post","ytsk_xml.php",{success:pback_callback},"search="+mwin.ytskaj_search+"&page="+(mwin.ytskaj_page-1)+"&winkey="+mwinkey);
	mwin.getContent().innerHTML = "<B>検索中…しばらくお待ち下さい。</B>";
}

function pback_callback(xr) {
	rwin = Windows.getWindow(retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue);
	retxml = xr.responseXML.getElementsByTagName("video_list")[0];
	vids = retxml.getElementsByTagName("video");
	rwin.ytskaj_page--;
	if (vids.length == 0) {
		alert("なんかおかしいです。");
		rwin.destroy();
		return 0;
	}
	buff = "";
	aflag = 0;
	for(i=0;i<20;i++){
		if (vids.length == i && i != 19) { aflag = 1; break; }
		buff = buff + "<TABLE border=\"1\" width=\"100%\" class=\"ytskaj\">\n  <TBODY>\n    <TR class=\"ytskaj\">\n      <TD rowspan=\"2\" align=\"center\" width=\"140\" class=\"ytskaj\"><IMG src=\""+vids[i].getElementsByTagName("thumbnail_url")[0].firstChild.nodeValue+"\" border=\"0\" width=\"137\" height=\"97\" align=\"middle\" alt=\""+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"\"></TD>\n      <TD class=\"ytskaj\"><B>"+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"</B></TD>\n    </TR>\n    <TR class=\"ytskaj\">\n      <TD class=\"ytskaj\"><A href=\"javascript:videoview('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">見る</A> <A href=\"./ytk.php?mode=down&v="+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"\">ダウンロード</A> <A href=\"javascript:getvdetail('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">ビデオの詳細</A></TD>\n    </TR>\n  </TBODY>\n</TABLE>\n";
	}
	if (rwin.ytskaj_page == 1) {
		linkstr = "戻る ";
	}else{
		linkstr = "<A href=\"javascript:pageback('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">戻る</A> ";
	}
	if (aflag) {
		linkstr = linkstr + "次へ<BR>\n";
	}else{
		linkstr = linkstr + "<A href=\"javascript:pagenext('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">次へ</A><BR>\n";
	}
	buff = linkstr + buff + linkstr;
	rwin.getContent().innerHTML = buff;
}

function pagenext(mwinkey) {
	mwin = Windows.getWindow(mwinkey);
	//検索発行
	cobj = YAHOO.util.Connect.asyncRequest("post","ytsk_xml.php",{success:pnext_callback},"search="+mwin.ytskaj_search+"&page="+(mwin.ytskaj_page+1)+"&winkey="+mwinkey);
	mwin.getContent().innerHTML = "<B>検索中…しばらくお待ち下さい。</B>";
}

function pnext_callback(xr) {
	rwin = Windows.getWindow(retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue);
	retxml = xr.responseXML.getElementsByTagName("video_list")[0];
	vids = retxml.getElementsByTagName("video");
	rwin.ytskaj_page++;
	if (vids.length == 0) {
		alert("これ以上ありません。");
		pageback(retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue);
		return 0;
	}
	buff = "";
	aflag = 0;
	for(i=0;i<20;i++){
		if (vids.length == i && i != 19) { aflag = 1; break; }
		buff = buff + "<TABLE border=\"1\" width=\"100%\" class=\"ytskaj\">\n  <TBODY>\n    <TR class=\"ytskaj\">\n      <TD rowspan=\"2\" align=\"center\" width=\"140\" class=\"ytskaj\"><IMG src=\""+vids[i].getElementsByTagName("thumbnail_url")[0].firstChild.nodeValue+"\" border=\"0\" width=\"137\" height=\"97\" align=\"middle\" alt=\""+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"\"></TD>\n      <TD class=\"ytskaj\"><B>"+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"</B></TD>\n    </TR>\n    <TR class=\"ytskaj\">\n      <TD class=\"ytskaj\"><A href=\"javascript:videoview('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">見る</A> <A href=\"./ytk.php?mode=down&v="+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"\">ダウンロード</A> <A href=\"javascript:getvdetail('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">ビデオの詳細</A></TD>\n    </TR>\n  </TBODY>\n</TABLE>\n";
	}
	if (rwin.ytskaj_page == 1) {
		linkstr = "戻る ";
	}else{
		linkstr = "<A href=\"javascript:pageback('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">戻る</A> ";
	}
	if (aflag) {
		linkstr = linkstr + "次へ<BR>\n";
	}else{
		linkstr = linkstr + "<A href=\"javascript:pagenext('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">次へ</A><BR>\n";
	}
	buff = linkstr + buff + linkstr;
	rwin.getContent().innerHTML = buff;
}

function findback(xr) {
	retxml = xr.responseXML.getElementsByTagName("video_list")[0];
	rwin = Windows.getWindow(retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue);
	buff = "";
	aflag = 0;
	vids = retxml.getElementsByTagName("video");
	for(i=0;i<20;i++){
		if (vids.length == i && i != 19) { aflag = 1; break; }
		buff = buff + "<TABLE border=\"1\" width=\"100%\" class=\"ytskaj\">\n  <TBODY>\n    <TR class=\"ytskaj\">\n      <TD rowspan=\"2\" align=\"center\" width=\"140\" class=\"ytskaj\"><IMG src=\""+vids[i].getElementsByTagName("thumbnail_url")[0].firstChild.nodeValue+"\" border=\"0\" width=\"137\" height=\"97\" align=\"middle\" alt=\""+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"\"></TD>\n      <TD class=\"ytskaj\"><B>"+vids[i].getElementsByTagName("title")[0].firstChild.nodeValue+"</B></TD>\n    </TR>\n    <TR class=\"ytskaj\">\n      <TD class=\"ytskaj\"><A href=\"javascript:videoview('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">見る</A> <A href=\"./ytk.php?mode=down&v="+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"\">ダウンロード</A> <A href=\"javascript:getvdetail('"+vids[i].getElementsByTagName("id")[0].firstChild.nodeValue+"')\">ビデオの詳細</A></TD>\n    </TR>\n  </TBODY>\n</TABLE>\n";
		}
	if (rwin.ytskaj_page == 1) {
		linkstr = "戻る ";
	}else{
		linkstr = "<A href=\"javascript:pageback('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">戻る</A> ";
	}
	if (aflag) {
		linkstr = linkstr + "次へ<BR>\n";
	}else{
		linkstr = linkstr + "<A href=\"javascript:pagenext('"+retxml.getElementsByTagName("winkey")[0].firstChild.nodeValue+"')\">次へ</A><BR>\n";
	}
	buff = linkstr + buff + linkstr;
	rwin.getContent().innerHTML = buff;
}

function videoview(videoid) {
	rnd_id = "vview_"+rand_str(8);
	var win = new Window(rnd_id, {
	title: "ビデオ",
	className: "dialog",
	top:80, left:50,
	width:320, height:260,
	zIndex: 101,
	resizable: false,
	draggable: true,
	maximizable: false,
	url: "./ytk.php?v="+videoid+"&aj=1"
	});
	win.setDestroyOnClose();
	win.show();
}

function videochk() {
	stemp = trim(unescape(location.search));
	if (stemp != "") {
		var stemp2 = new CLocationSearch(location.search);
		cobj = YAHOO.util.Connect.asyncRequest("post","ytsk_xml2.php",{success:videoret_back},"v="+encodeURIComponent(unescape(stemp2.item("v"))));
	}
}

function videoret_back(xr) {
	vret_temp = trim(xr.responseText);
	if (vret_temp != "" && vret_temp != "ERROR") {
		videoview(vret_temp);
	}
}

function getvdetail(vid) {
	twin_id = "vdetail_"+rand_str(8);
	var win = new Window(twin_id, {
	title: "ビデオの詳細",
	className: "dialog",
	top:60, left:100,
	width:480, height:360,
	zIndex: 100,
	resizable: true,
	draggable:true
	});
	//詳細取得発行
	cobj = YAHOO.util.Connect.asyncRequest("post","ytsk_xml3.php",{success:getvdetail_back},"v="+encodeURIComponent(vid)+"&winkey="+twin_id);
	//ウィンドウを設定
	win.getContent().innerHTML = "<B>取得中…しばらくお待ち下さい。</B>";
	win.setDestroyOnClose();
	win.show();
}

function getvdetail_back(xr) {
	alert("開発中");
}

//by:http://frog.raindrop.jp/knowledge/archives/000070.html
function CLocationSearch(sSource) {
	
	/* 初期化処理 */
	var sAry = new Array();	/* アイテム配列を追加 */
	{
		var nCur = 0, nRet = 0;
		var sSearch = sSource.substr(1);
		var sName, sValue;
				
		nRet = sSearch.indexOf('=', nCur)		// 最初の'='を検索
		while(nRet >= 0) {
			// '='以前が変数名
			sName = sSearch.substring(nCur, nRet);
			nCur = nRet + 1;
			
			// 値を取り出す
			nRet = sSearch.indexOf('&', nCur);	// 変数の区切りを検索
			if (nRet == -1) nRet = sSearch.length + 1;		// なければ最後まで
			sValue = sSearch.substring(nCur, nRet);
			
			// 配列に格納
			sAry[sName] = sValue;
			
			// 次を検索
			nCur = nRet + 1;
			nRet = sSearch.indexOf('=', nCur);
		}
	}
	
	/* 値 */
	this.valueOf = function () {
		return sSource;
	}
	
	/* 値を取り出すメソッド */
	this.item = function (sVarname) {
		try {
			return sAry[sVarname];	//あれば返す
		} catch(e) {
			return '';				//なければ空文字を返す
		}
	}
	
	/* 要素数 */
	this.length   = function () {
		return sAry.length;
	}
	
	/* toString */
	this.toString = function () {
		return this.length + '';
	}
	
}

//Windows.getWindow:function (id) { return this.windows.detect(function (d) {return d.getId() == id;}); }

//Sample
/*function openWin(){
var win = new Window("win01", {
title: "Sample",
className: "dialog",
top:50, left:80,
width:320, height:240,
zIndex: 100,
resizable: true,
draggable:true
});
win.setDestroyOnClose();
win.show();
}*/