function preload(){
	PCIMG = new Array();
	for(i=1;i<=11;i++){
	PCIMG[i] = new Image().src = "img/vpc"+i+".png";
	}
}

function ystop(){
	ytplayer = $("myytplayer");
	ytplayer.pauseVideo();
}
function pressPlay(){
	$('videoarea').innerHTML = '<div class="size14 strong tscroll"><table><tr><td><img src="img/coin.png" /></td><td><div id="yttitle">おススメプレイリスト</div></td></tr></table></div><div class="part22 size12" id="ytp3"><div align="center" id="topvid" valign="top"><div id="getregionarea"><div id="ytapiplayer"></div></div><div class="ktitle" id="ytp2"><table width="500" height="27"><tr><td width="30" align="center"><a class="ajax" onclick="loadback()" title="前のビデオへ戻る"><img id="vpc1" src="img/vpc1.png" /></a></td><td width="30" align="center"><a class="ajax" onclick="stopyt()" title="再生 / 一時停止"><img id="vpc2" src="img/vpc2.png" /></a></td><td width="30" align="center"><a class="ajax" onclick="loadnew()" title="次のビデオへ進む"><img id="vpc3" src="img/vpc3.png" /></a></td><td width="30" align="center"><a class="ajax" onclick="addtoMyList(1)" title="再生中ビデオをお気に入りへ追加"><img id="vpc5" src="img/vpc5.png" /></a></td><td width="30" align="center"><a class="ajax" onmouseout="hideVolumeBar()" onmouseover="showVolumeBar()" onclick="muteyt()" title="ミュート / ミュート解除"><img id="vpc4" src="img/vpc4.png" /></a></td><td width="30" align="center"><a class="ajax" onclick="setInfoBoxes(event)" title="下部情報ボックス表示・非表示設定"><img id="vpc10" src="img/vpc10.png" /></a></td><td width="30" align="center"><a class="ajax" onclick="setGenre(event)" title="自動再生ビデオジャンル設定"><img id="vpc11" src="img/vpc11.png" /></a></td><td align="center" width="30"><div id="subonoff"><a class="ajax" onclick="overrapSubs()" title="画面内にスクリプトを表示"><img id="vpc9" src="img/vpc9.png" /></a></div></td><td align="center" width="30"><div id="subonoff2"></div></td><td></td><td width="20"><a class="ajax" onclick="pinup(\'v\')"><img id="vstopimg" src="img/bpin'+videopin+'.png"></a></td><td width="100"><div class="size12" align="right"><span id="ytc">0:00</span> / <span id="ytd">0:00</span>　</div></td></tr></table></div><div class="tbar2 ajax" id="timebar2" onclick="gototime(this,event)" align="left"><table><tr><td><div class="tbar3" id="timebar3" ></div></td><td><div class="tbar4" id="timebar4" ><div class="tbar" id="timebar" ></div></div></td></tr></table></div></div></div>';
	yhslider = YAHOO.widget.Slider.getVertSlider("sliderbg", "sliderthumb", 0, 100);
	yhslider.subscribe("slideEnd", setVolume);
	var stv = 100 - vvolume;
	yhslider.setValue(stv);
	if(subon == 1){
		overrapSubs();
	}
	vini = 1;
	embedPlayer();
}
function setGenre(e){
	var cgenre = [0,44649250,7318736,39469164,44649265,44649266,7318639,7318731,7318725,7318636,7318641,7318732,40123865,7318863,7318643,7318644,39468776,7318733,7318646,7318647,39468771,7318723,7318648,7318637,7318650,39468787,39468968,39468566,39469132,7318652,7318640];
	var cgenre2 = ['All','1980s Hip-Hop','Adult Alternative','Alternative Rock','Big Hits Of The \'80s','Big Hits Of The \'90s','Blues','Classic Rock','Contemporary Christian','Electronic/Dance','Folk','Hard Rock','Hip-Hop','Indie Rock','Jazz','Latin','Love Songs','Metal','New Age','Pop','Pop Latino','Quiet Storm','R&B','Reggae','Rock','The Big Jams','The Coffeehouse','Today\'s Big Hits','Today\'s country','World','Country'];
	var op = "";
	for(var i= 0;i<cgenre.length;i++){
		if(agenre == cgenre[i]){
			op += '<option value"'+cgenre[i]+'" selected>'+cgenre2[i]+'</option>';
		}else{
			op += '<option value="'+cgenre[i]+'">'+cgenre2[i]+'</option>';
		}
	}
	if(atarget == 'video'){
		var vsel = "selected";
		var ssel = "";
	}else{
		var vsel= '';
		var ssel = 'selected';
	}
	op = '<select id="vautogenre" name="vautogenre" onchange="vchangeGenre()">'+op+'</select>';
	var setg = '<div class="size11 padboth" align="center"><span class="red strong">チャート対象</span> <select id="vautotarget" name="vautotarget" onchange="vchangeGenre2()"><option value="video" '+vsel+'>ビデオ</option><option value="track" '+ssel+'>ソング</option></select>　　　<span class="red strong">ジャンル</span> '+op+'</div>';	
	YAHOO.popup.container.panel6.cfg.setProperty("xy", [YAHOO.util.Dom.getX('yui-main')+350,YAHOO.util.Event.getPageY(e)]);
	YAHOO.popup.container.panel6.setBody('<table width="400"><tr><td>'+setg+'</td></tr></table>');
	YAHOO.popup.container.panel6.show();
	saveCookies();
}
function setInfoBoxes(e){
	var disflag2 = {vinfo : 'ビデオ情報',vscript : '歌詞',ucomment : 'YouTubeコメント',cplaylist : '現在再生中のプレイリスト'/*,iknow : 'Smart.fm 学習リスト',setting : '設定',help : '使い方ヘルプ',user : 'Smart.fm ユーザー'*/};
	var setg = "";
	for(i in disflag){
		if(disflag[i] == 1){
			setg += '<input type="checkbox" id="dis-'+i+'" checked onchange="setInfoBoxes2(\''+i+'\')"> '+ disflag2[i] +'<br />';
		}else{
			setg += '<input type="checkbox" id="dis-'+i+'" onchange="setInfoBoxes2(\''+i+'\')"> '+ disflag2[i] +'<br />';
		}
	}
	YAHOO.popup.container.panel7.cfg.setProperty("xy", [YAHOO.util.Dom.getX('yui-main')+350,YAHOO.util.Event.getPageY(e)]);
	YAHOO.popup.container.panel7.setBody('<table width="200"><tr><td>'+setg+'</td></tr></table>');
	YAHOO.popup.container.panel7.show();
}
function setInfoBoxes2(targ,from){
	if(from == undefined && $('dis-'+targ).checked == true){
		disflag[targ] = 1;
		for(var i=0;i<border2.length;i++){
			border2[i]++;
		}
		for(var i=0;i<border3.length;i++){
			border3[i]++;
		}
		border2.unshift(0);
		border3.unshift(0);
		border.unshift(targ+'area');
		for(var i2 = 0;i2<border.length;i2++){
			$(border[i2].replace(/area/,'')+'down').innerHTML = '<a class="ajax" onclick="downb(1,'+i2+')"><img src="img/1downarrow.png" /></a>';
			$(border[i2].replace(/area/,'')+'up').innerHTML = '<a class="ajax" onclick="downb(0,'+i2+')"><img src="img/2uparrow.png" /></a>';
		}
		z++
		downb(2);
		YAHOO.util.Dom.setStyle(targ+'area', "visibility", "visible");
	}else{
		disflag[targ] = 0;
		YAHOO.util.Dom.setStyle(targ+'area', "visibility", "hidden");
		var off2 = border.length;
		for(var i=0;i<border.length;i++){
			if(targ+'area' == border[i]){
				off2 = i;
			}
			if(i > off2){
				var i2 = i - 1;
				var bor = border[i].replace(/area/,"");
				$(bor+'down').innerHTML = '<a class="ajax" onclick="downb(1,'+i2+')"><img src="img/1downarrow.png" /></a>';
				$(bor+'up').innerHTML = '<a class="ajax" onclick="downb(0,'+i2+')"><img src="img/2uparrow.png" /></a>';
			}
		}
		var takeoff = border2[off2];
		var magic = border3[takeoff];
		var vdeta2 = border3.slice(0,takeoff);
		var vdeta3 = border3.slice(takeoff+1);
		border3 = vdeta2.concat(vdeta3);
		for(var i=0;i<border3.length;i++){
			if(border3[i] > magic){
				border3[i]--;
			}
		}
		var vvdeta2 = border2.slice(0,off2);
		var vvdeta3 = border2.slice(off2+1);
		border2 = vvdeta2.concat(vvdeta3);
		for(var i=0;i<border2.length;i++){
			if(border2[i] > takeoff){
				border2[i]--;
			}
		}
		var deta2 = border.slice(0,off2);
		var deta3 = border.slice(off2+1);
		border = deta2.concat(deta3);
		z--;
		if($('dis-'+targ)){
			$('dis-'+targ).checked = false;
		}
	}
	downb(2);
}
function cutTimeout(){
	clearTimeout(cuttimeout);
}
function hideVolumeBar(){
	cuttimeout = setTimeout("hideVolumeBar2()",1000);
}
function hideVolumeBar2(){
	YAHOO.util.Dom.setStyle('vol', "visibility", "hidden");
}
function setVolume(){
	vvolume = 100 - yhslider.getValue();
	ytplayer.setVolume(vvolume);
	saveCookies();
}
function showVolumeBar(){
	clearTimeout(cuttimeout);	
	var vregion = YAHOO.util.Dom.getRegion('vpc4');
	YAHOO.util.Dom.setX('vol', vregion['left']+2);
	YAHOO.util.Dom.setY('vol', vregion['top'] - 130);
	YAHOO.util.Dom.setStyle('vol', "visibility", "visible");
}
function toHex(NUM){
	return (NUM[0]*1).toString(16)+''+(NUM[1]*1).toString(16)+''+	(NUM[2]*1).toString(16);
}
function overrapSubs(){
	var parameter = $H({precom : precom}).toQueryString();
	new Ajax.Updater(
		'oversub',
		'php/overrapSubs.php',
		{
			method : 'post',
			parameters : parameter,
			onFailure : function(roj){
				alert(roj.responseText);
			},
			onComplete : function(roj){
				var vregion = YAHOO.util.Dom.getRegion('getregionarea');
				YAHOO.util.Dom.setStyle('oversub', "width", "500px");
				YAHOO.util.Dom.setStyle('oversub', "height", "375px");
				YAHOO.util.Dom.setStyle('oversub', "visibility", "visible");
				YAHOO.util.Dom.setX('oversub', vregion['left']);
				YAHOO.util.Dom.setY('oversub', vregion['top']);
				$('subonoff').innerHTML = '<a class="ajax" onclick="overrapSubs2()" title="画面内のスクリプトを非表示に"><img id="vpc9" src="img/vpc8.png" /></a>';
				$('subonoff2').innerHTML = '<a class="ajax" onclick="setSubColor(event)" title="画面内スクリプトの色を変更"><div class="c-container2" id="c-container2">　</div></a>';
				YAHOO.util.Dom.setStyle('c-container2', "backgroundColor", "#"+toHex(scolor));
				YAHOO.util.Dom.setStyle('oversub', "color", "#"+toHex(scolor));
				subon = 1;
				saveCookies();
			}
		}
	);
	
}
function setSubColor(e){
	YAHOO.popup.container.panel4.cfg.setProperty("xy", [YAHOO.util.Dom.getX('yui-main')+350,YAHOO.util.Event.getPageY(e)]);
	YAHOO.popup.container.panel4.show();
	if(!picker){
		picker = new YAHOO.widget.ColorPicker("c-container", {
			showhsvcontrols: true,
			showhexcontrols: true,
			images: {
				PICKER_THUMB: "img/picker_thumb.png",
				HUE_THUMB: "img/hue_thumb.png"
			}
		});
		var vregion = YAHOO.util.Dom.getRegion('cconbody');
		YAHOO.util.Dom.setX('c-container', vregion['left']+10);
		YAHOO.util.Dom.setY('c-container', vregion['top']+10);
		picker.setValue(scolor);
		var onRgbChange = function(o) {
			scolor = o.newValue;
			YAHOO.util.Dom.setStyle('c-container2', "backgroundColor", "#"+toHex(o.newValue));
			YAHOO.util.Dom.setStyle('oversub', "color", "#"+toHex(o.newValue));
			saveCookies();
		}
		picker.on("rgbChange", onRgbChange);
	}
}
function overrapSubs2(){
	subon = 0;
	$('subonoff').innerHTML = '<a class="ajax" onclick="overrapSubs()" title="画面内にスクリプトを表示"><img id="vpc9" src="img/vpc9.png" /></a>';
	$('subonoff2').innerHTML = '';
	YAHOO.util.Dom.setStyle('oversub', "visibility", "hidden");
	YAHOO.popup.container.panel4.hide();
	saveCookies();
}
function embedPlayer() {
	URL2 = "http://gdata.youtube.com/apiplayer?key=AI39si4cZ43N4ROq09tPjcHbvHhJv6XF8rKCSqRGBSnKumQHRRg6H2FdzwJQpTdXdpcg_MFZ_cbZF1ilv6bP-6yR6UwZiHkNtw&enablejsapi=1&playerapiid=ytplayer";
    var params = { allowScriptAccess: "always", wmode : "transparent" };
    var atts = { id: "myytplayer" };
    swfobject.embedSWF(URL2,"ytapiplayer", "500", "375", "8", null, null, params, atts);
}

function onYouTubePlayerReady(playerId) {
	ytplayer = $("myytplayer");
	ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
	ytplayer.addEventListener("onError", "onplayErerror");
	if(mst == 1){
		ytplayer.unMute();
		$('vpc4').src = PCIMG[4];
	}else{
		ytplayer.mute();
		$('vpc4').src = PCIMG[7];
	}
	ytplayer.setVolume(vvolume);
	nplaying--;
	loadnew();
}

function loadnew(){
	vstate = 1;
	if(playing.length <= nplaying + 1 || playing.length == 0){
		var parameter = $H({vplays : vplays,genre : agenre,target : atarget}).toQueryString();
		new Ajax.Request(
			'php/nextplay.php',
			{
				method : 'post',
				parameters : parameter,
				onFailure : function(roj){
					alert(roj.responseText);
				},
				onComplete : function(roj){
					not = roj.responseText.split("==");
					if(roj.responseText == "error"){
						alert('ビデオの取得に失敗しました。自動再生動画のジャンル設定を変更してみてください。');
					}else if(not[0] == ""){
						loadnew();
					}else{
						var parameter = $H({id : not[0],artist : not[2],song : not[3]}).toQueryString();
						new Ajax.Updater(
							'vinfoarea2',
							'php/playVideo.php',
							{
								method : 'post',
								parameters : parameter,
								onFailure : function(roj){
									alert(roj.responseText);
								},
								onComplete : function(roj){
									NPLAY = not[0];
									$('yttitle').innerHTML = not[1];
									$('tubetitle').innerHTML = '';
									$('rvid').value = not[0];
									if(ocflag['vinfo'] == 0){
										occont['vinfo'] = $('vinfoarea2').innerHTML;
										$('vinfoarea2').innerHTML = "";
									}
									NPLAY = not[0];
									miniplay(not[0],not[1],not[2],not[3]);
									pst = 1;
								}
							}
						);
					}
				}
			}
		);
	}else{
		nplaying++;
		ytplayer.loadVideoById(playing[nplaying],0);
		$('yttitle').innerHTML = ptitles[nplaying];
		$('vpc2').src = PCIMG[2];
		if(nplaying != 0){
			reloadInfo(playing[nplaying],playart[nplaying],playsong[nplaying],ptitles[nplaying]);
		}
		pst = 1;
		updatePlaylist();
		getVideoInfo2();
	}
}

function onplayErerror(perror) {
	if(perror == 100){
		if(oload == 1){
			oload = 0;
			vstate = 0;
			playing.pop();
			ptitles.pop();
			playart.pop()
			playsong.pop();
			playlistid.pop();
			nplaying--;
			loadnew();
		}else if(pload == 1){
			showDialog('このビデオは何らかの理由で削除されたため再生できません。');
			vstate = 0;
			pload = 0;
			playing.pop();
			ptitles.pop();
			playart.pop();
			playsong.pop();
			playlistid.pop();
			if(gotonext == 1){
				nplaying--;
			}else{
				nplaying = nplaying - 2;
			}
			loadnew();
		}else if(pload == 2){
			showDialog('このビデオは何らかの理由で削除されたため再生できません。');
			vstate = 0;
			pload = 0;
			var playing2 = playing.slice(0,nplaying);
			var playing3 = playing.slice(nplaying + 1,playing.length + 1);
			playing = playing2.concat(playing3);
			var ptitles2 = ptitles.slice(0,nplaying);
			var ptitles3 = ptitles.slice(nplaying + 1,ptitles.length + 1);
			ptitles = ptitles2.concat(ptitles3);
			var playart2 = playart.slice(0,nplaying);
			var playart3 = playart.slice(nplaying + 1,playart.length + 1);
			playart = playart2.concat(playart3);
			var playsong2 = playsong.slice(0,nplaying);
			var playsong3 = playsong.slice(nplaying + 1,playsong.length + 1);
			playsong = playsong2.concat(playsong3);
			var playlistid2 = playlistid.slice(0,nplaying);
			var playlistid3 = playlistid.slice(nplaying + 1,playlistid.length + 1);
			playlistid = playlistid2.concat(playlistid3);
			if(gotonext == 1){
				nplaying--;
			}else{
				nplaying = nplaying - 2;
			}
			loadnew();
		}else{
			vstate = 0;
			playing.pop();
			ptitles.pop();
			playart.pop()
			playsong.pop();
			playlistid.pop();
			nplaying--;
			loadnew();
		}
		
	}if(perror == 101 || perror == 150){
		showDialog('このビデオはYouTubeでのみ再生可能なビデオなため、ここでは再生できません。');
		vstate = 0;
		pload = 0;
		playing.pop();
		ptitles.pop();
		playart.pop();
		playsong.pop();
		playlistid.pop();
		if(gotonext == 1){
			nplaying--;
		}else{
			nplaying = nplaying - 2;
		}
		loadnew();
	}
}
function onytplayerStateChange(newState) {
	if(newState == 0 && vstate== 0 && pload == 0){
		if(videopin == 0){
			loadnew();
			clearInterval(YTTIME);
		}
	}else if(newState == 1){
		gotonext = 1;
		if(vstate == 1){
			vstate = 0;
			YTTIME = setInterval("yttime()",1000);
		}
		var YTD = Math.ceil(ytplayer.getDuration());
		var YTD2 = Math.floor(YTD/60);
		var YTD3 = Math.round(YTD%60);
		if(YTD3 < 10){
			YTD3 = "0" + YTD3;
		}
		$('ytd').innerHTML = YTD2+":"+YTD3;
		
		if(pload != 0){
			
			pload = 0;
		}
		normal = 1;
	}else if(newState == 2){
		$('vpc2').src = PCIMG[6];
		pst = 0;
		vstate = 0;
	}
}

function yttime(){
	var vvstate = ytplayer.getPlayerState();
	if(vvstate != 3){
		var YTDU = Math.ceil(ytplayer.getDuration());
		var YTDU2 = Math.floor(YTDU/60);
		var YTDU3 = Math.round(YTDU%60);
		if(YTDU3 < 10){
			YTDU3 = "0" + YTDU3;
		}
		$('ytd').innerHTML = YTDU2+":"+YTDU3;
		var YTD = Math.ceil(ytplayer.getCurrentTime());
		var YTD2 = Math.floor(YTD/60);
		var YTD3 = Math.round(YTD%60);
		if(YTD3 < 10){
			YTD3 = "0" + YTD3;
		}
		$('ytc').innerHTML = YTD2+":"+YTD3;
		var TWID = YTD / YTDU * 500;
		var gvl = ytplayer.getVideoBytesLoaded();
		var gvs = ytplayer.getVideoStartBytes();
		var gvt = ytplayer.getVideoBytesTotal();
		var bar3wit = (gvs / gvt) * 500;
		var bar4wit = (gvl / gvt) * 500;
		$('timebar3').style.width = bar3wit + "px";
		$('timebar4').style.width = bar4wit + "px";
		$('timebar').style.width = (TWID - bar3wit) + "px";
	}
}

function gototime(obj,event){
	var YTDU = ytplayer.getDuration();
	var yts = ((YAHOO.util.Event.getPageX(event) - YAHOO.util.Dom.getX('timebar2')) / barlength) * YTDU;
	ytplayer.seekTo(yts,true);
	var vvstate = ytplayer.getPlayerState();
	if(vvstate == 3){
		$('vpc2').src = PCIMG[2];
		pst = 1;
	}
}


function loadback(){
	vstate = 1;
	if(nplaying > 0){
		nplaying--;
		ytplayer.loadVideoById(playing[nplaying],0);
		$('yttitle').innerHTML = ptitles[nplaying];
		$('vpc2').src = PCIMG[2];
		reloadInfo(playing[nplaying],playart[nplaying],playsong[nplaying],ptitles[nplaying]);
		pst = 1;
		updatePlaylist();
		getVideoInfo2();
	}else{
		showDialog('これより前のビデオはありません。');
	}
}

function jumponList(num){
	vstate = 1;
	nplaying = num;
	ytplayer.loadVideoById(playing[nplaying],0);
	$('yttitle').innerHTML = ptitles[nplaying];
	$('vpc2').src = PCIMG[2];
	reloadInfo(playing[nplaying],playart[nplaying],playsong[nplaying],ptitles[nplaying]);
	pst = 1;
	updatePlaylist();
	getVideoInfo2();
}

function stopyt(){
	if(pst == 0){
		ytplayer.playVideo();
		$('vpc2').src = PCIMG[2];
		pst = 1;
	}else if(pst == 1){
		ytplayer.pauseVideo();
		$('vpc2').src = PCIMG[6];
		pst = 0;
	}
		
}

function muteyt(){
	if(mst == 0){
		ytplayer.unMute();
		$('vpc4').src = PCIMG[4];
		mst = 1;
	}else if(mst == 1){
		ytplayer.mute();
		$('vpc4').src = PCIMG[7];
		mst = 0;
	}
	var time = new Date();
	var cookiey = time.getFullYear() + 10;
	var cookied = new Date(cookiey,10,10,10,10,10);
	document.cookie = "mst="+mst+"; expires="+cookied+"; path=/";
	saveCookies();
}

function miniplay(etube,etitle,eart,esong,LID){
	vstate = 1;
	if(nplaying  + 1 == playing.length){
		pload = 1;
		nplaying++;
		playing.push(etube);
		ptitles.push(etitle);
		playart.push(eart);
		playsong.push(esong);
		playlistid.push(LID);
			$('vpc2').src = PCIMG[2];
		pst = 1;
		if(vini == 0){
			pressPlay();
		}else{
			ytplayer.loadVideoById(etube,0);
			$('yttitle').innerHTML = etitle;
		}
	}else{
		pload = 2;
		var playing2 = playing.slice(0,nplaying + 1);
		playing2.push(etube);
		var playing3 = playing.slice(nplaying + 1,playing.length);
		playing = playing2.concat(playing3);
		var ptitles2 = ptitles.slice(0,nplaying + 1);
		ptitles2.push(etitle);
		var ptitles3 = ptitles.slice(nplaying + 1,ptitles.length);
		ptitles = ptitles2.concat(ptitles3);
		var playart2 = playart.slice(0,nplaying + 1);
		playart2.push(eart);
		var playart3 = playart.slice(nplaying + 1,playart.length);
		playart = playart2.concat(playart3);
		var playsong2 = playsong.slice(0,nplaying + 1);
		playsong2.push(esong);
		var playsong3 = playsong.slice(nplaying + 1,playsong.length);
		playsong = playsong2.concat(playsong3);
		var playlistid2 = playlistid.slice(0,nplaying + 1);
		playlistid2.push(LID);
		var playlistid3 = playlistid.slice(nplaying + 1,playlistid.length);
		playlistid = playlistid2.concat(playlistid3);
		pst = 1;
		if(vini == 0){
			pressPlay();
		}else{
			nplaying++;
			ytplayer.loadVideoById(etube,0);
			$('yttitle').innerHTML = etitle;
		}
		$('vpc2').src = PCIMG[2];
		
	}
	reloadInfo(etube,eart,esong,etitle);
	updatePlaylist();
}
function splashSlashes(char){
	char = decodeURIComponent(char);
	char = char.replace(/\+/g," ");
	char = char.replace(/\\([^\\])/g,"$1");
	return char;
}
function reloadInfo(etube,eart,esong,etitle){
	if(eart && esong){
		if(lyricpin == 0){
			$('kashititle').innerHTML = splashSlashes(esong)+'　<span class="size10">by '+splashSlashes(eart)+'</span>';
		}
		getLyric(etube,eart,esong);
	}else{
		$('kashititle').innerHTML = '歌詞情報';
		$('vscriptarea2'),innerHTML = '<div class="vocgrey"><div class="size12 padboth strong padt" align="right"><a class="ajax white" onclick="editScript()"><img src="img/page_white_edit.png"> スクリプト編集</a></span></div><br /><div class="sbox4_top"><div class="sbox4_bottom"><div class="sbox4"><div class="pad" id="wwwarea"><div class="red strong" align="center">この動画に関連付けられた歌詞情報は見つかりませんでした。</div></div></div></div></div><br /></div>';
		if(listpin == 0 && (playlistid[nplaying] == undefined || playlistid[nplaying] == '')){
			showDialog('現在このビデオの学習可能アイテムは抽出できません');
			$('ltarea').innerHTML = '';
			RWORDS = Array();
			NRW = 0;
			renderWordList(1);
		}
	}
	if(commentpin == 0){
		if(ocflag['ucomment'] == 1){
			getComment(etube,1,my.decAll(etitle));
		}else{
			$('ucommentdoor').innerHTML = '<a class="ajax" onclick="getComment(\''+etube+'\',1,\''+my.javEnc(etitle)+'\')"><img src="img/door_in.png" /></a>';
		}
	}
	if((listpin == 0 || forcelist == 1)&& playlistid[nplaying] != undefined && playlistid[nplaying] != ''){
		loadList2(playlistid[nplaying]);
	}
}
function addtoCurrentList(ID,TITLE,eart,esong){
	if(playing.length != 0){
		playing.push(ID);
		ptitles.push(TITLE);
		playart.push(eart);
		playsong.push(esong);
		playlistid.push(undefined);
		updatePlaylist();
	}else{
		playVideo(ID,eart,esong);	
	}
	showDialog('現在再生中のプレイリストに追加しました。');
}

function deleteVideo(dnum){
	playing = deleteVideo2(playing);
	ptitles = deleteVideo2(ptitles);
	playart = deleteVideo2(playart);
	playsong = deleteVideo2(playsong);
	playlistid = deleteVideo2(playlistid);
	function deleteVideo2(obj){
		var deta2 = obj.slice(0,dnum);
		var deta3 = obj.slice(dnum+1);
		return deta2.concat(deta3);
	}
	if(nplaying == dnum){
		nplaying--;
		loadnew();
	}else if(nplaying >dnum){
		nplaying--;
	}
	updatePlaylist();
}

var playingDD = [];
function updatePlaylist(){
	if(ocflag['cplaylist'] == 1){
		var plistecho = '<p class="size12 white padb strong" align="right">※ドラッグ＆ドロップで並び替えできます。</p>';
		for(var i = playing.length-1;i>=0;i--){
			if(i == nplaying){
				plistecho += '<div id="cplist'+i+'" class="playlist'+(i%2)+'"><table width="465"><tr><td width="25" valign="top"><img src="img/next.png" /></td><td><a class="pajax" onclick="jumponList('+i+')">'+ptitles[i]+'</a></td><td width="25" valign="top" align="right"><a class="ajax" onclick="deleteVideo('+i+')"><img src="img/agt_stop.png" /></a></td></tr></table></div>';
			}else if(i == nplaying+1){
				plistecho += '<div id="cplist'+i+'" class="playlist'+(i%2)+'"><table width="465"><tr><td width="25" valign="top"><img src="img/tugi.png" /></td><td><a class="pajax" onclick="jumponList('+i+')">'+ptitles[i]+'</a></td><td width="25" valign="top" align="right"><a class="ajax" onclick="deleteVideo('+i+')"><img src="img/agt_stop.png" /></a></td></tr></table></div>';
			}else{
				plistecho += '<div id="cplist'+i+'" class="playlist'+(i%2)+'"><table width="465"><tr><td width="25" valign="top"></td><td><a class="pajax" onclick="jumponList('+i+')">'+ptitles[i]+'</a></td><td width="25" valign="top" align="right"><a class="ajax" onclick="deleteVideo('+i+')"><img src="img/agt_stop.png" /></a></td></tr></table></div>';
			}
		}
		$('cplaylistarea2').innerHTML = '<div class="vocgrey pad" id="cptarget">'+plistecho+'</div>';
		new YAHOO.util.DDTarget("cptarget");
		YAHOO.util.DDM.useShim = true;
		for(var i = playing.length-1;i>=0;i--){
			playingDD[i] = new YAHOO.example.DDSche("cplist"+i);
		}
	}
	downb(2);
}

function showOrder(id){
	var id2 = id.slice(6);
	var items = $('cptarget').getElementsByTagName("div");
	var sorder = [];
	for (var i=items.length-1;i>=0;i--) {
		var thisid = items[i].id.slice(6);
		sorder.push(thisid);
	}
	var soplaying = [], soptitles = [], soplayart = [], soplaysong = [], soplaylistid = [];
	for(var i=0;i<sorder.length;i++){
		var j = sorder.length - i - 1
		soplaying[i] = playing[sorder[i]];
		soptitles[i] = ptitles[sorder[i]];
		soplayart[i] = playart[sorder[i]];
		soplaysong[i] = playsong[sorder[i]];
		soplaylistid[i] = playlistid[sorder[i]];
		if(sorder[i] == nplaying){
			var nplaying2 = i;
		}
	}
	nplaying = nplaying2;
	playing = soplaying;
	ptitles = soptitles;
	playart = soplayart;
	playsong = soplaysong;
	playlistid = soplaylistid;
	updatePlaylist();
}

YAHOO.example.DDSche = function(id, sGroup, config) {
	YAHOO.example.DDSche.superclass.constructor.call(this, id, sGroup, config);
	var el = this.getDragEl();
    YAHOO.util.Dom.setStyle(el, "opacity", 0.67); // The proxy is slightly transparent

    this.goingUp = false;
    this.lastY = 0;
}
YAHOO.extend(YAHOO.example.DDSche, YAHOO.util.DDProxy, {
	init: function() {
            //Call the parent's init method
            YAHOO.example.DDSche.superclass.init.apply(this, arguments);
			this.setXConstraint(0,0);
        },
	startDrag: function(x, y) {
		// make the proxy look like the source element
		var dragEl = this.getDragEl();
		var clickEl = this.getEl();
		YAHOO.util.Dom.setStyle(clickEl, "visibility", "hidden");

		dragEl.innerHTML = clickEl.innerHTML;

		YAHOO.util.Dom.setStyle(dragEl, "color", YAHOO.util.Dom.getStyle(clickEl, "color"));
		YAHOO.util.Dom.setStyle(dragEl, "backgroundColor", YAHOO.util.Dom.getStyle(clickEl, "backgroundColor"));
		YAHOO.util.Dom.setStyle(dragEl, "border", "2px solid gray");
	},

	endDrag: function(e) {

		var srcEl = this.getEl();
		var proxy = this.getDragEl();

		// Show the proxy element and animate it to the src element's location
		YAHOO.util.Dom.setStyle(proxy, "visibility", "");
		var a = new YAHOO.util.Motion( 
			proxy, { 
				points: { 
					to: YAHOO.util.Dom.getXY(srcEl)
				}
			}, 
			0.2, 
			YAHOO.util.Easing.easeOut 
		)
		var proxyid = proxy.id;
		var thisid = this.id;

		// Hide the proxy and show the source element when finished with the animation
		a.onComplete.subscribe(function() {
				YAHOO.util.Dom.setStyle(proxyid, "visibility", "hidden");
				YAHOO.util.Dom.setStyle(thisid, "visibility", "");
			});
		a.animate();
		var tlayer = this.id.split('-');
		showOrder(this.id);
	},

	onDragDrop: function(e, id) {
		// If there is one drop interaction, the li was dropped either on the list,
		// or it was dropped on the current location of the source element.
		if (YAHOO.util.DragDropMgr.interactionInfo.drop.length === 1) {

			// The position of the cursor at the time of the drop (YAHOO.util.Point)
			var pt = YAHOO.util.DragDropMgr.interactionInfo.point; 

			// The region occupied by the source element at the time of the drop
			var region = YAHOO.util.DragDropMgr.interactionInfo.sourceRegion; 

			// Check to see if we are over the source element's location.  We will
			// append to the bottom of the list once we are sure it was a drop in
			// the negative space (the area of the list without any list items)
			if (!region.intersect(pt)) {
				var destEl = YAHOO.util.Dom.get(id);
				var destDD = YAHOO.util.DragDropMgr.getDDById(id);
				destEl.appendChild(this.getEl());
				destDD.isEmpty = false;
				YAHOO.util.DragDropMgr.refreshCache();
			}

		}
	},

	onDrag: function(e) {
		// Keep track of the direction of the drag for use during onDragOver
		var y = YAHOO.util.Event.getPageY(e);

		if (y < this.lastY) {
			this.goingUp = true;
		} else if (y > this.lastY) {
			this.goingUp = false;
		}

		this.lastY = y;
	},

	onDragOver: function(e, id) {
	
		var srcEl = this.getEl();
		var destEl = YAHOO.util.Dom.get(id);

		// We are only concerned with div items, we ignore the dragover
		// notifications for the list.
		if (destEl.nodeName.toLowerCase() == "div" && destEl.id.match(/^cplist[0-9]+/)) {
			var orig_p = srcEl.parentNode;
			var p = destEl.parentNode;

			if (this.goingUp) {
				p.insertBefore(srcEl, destEl); // insert above
			} else {
				p.insertBefore(srcEl, destEl.nextSibling); // insert below
			}

			YAHOO.util.DragDropMgr.refreshCache();
		}
	} 
});

function addtoMyList(PPP,VID,LART,LTIT){
	if($('iusername').value != "" && $('oauthbug').value == 1){
		addtoMyListEx(PPP,VID,LART,LTIT);
	}else if($('ilogno').value == "" && $('oauthbug').value == ""){
		showDialog('お気に入りにビデオを追加するには、smart.fmにログインする必要があります。');
	}else if($('oauthbug').value == 1){
		checkIdentity('addtoMyListEx',PPP,VID,LART,LTIT);
	}else{
		addtoMyListEx(PPP,VID,LART,LTIT);
	}
}
function addtoMyListEx(PPP,VID,LART,LTIT){
	if(VID == undefined){
		VID = playing[nplaying];
	}
	if(PPP == 1){
		LART = playart[nplaying];
		LTIT = playsong[nplaying];
	}
	var parameter = $H({id : VID,ino : $('ilogno').value,artist : LART,song : LTIT}).toQueryString();
	new Ajax.Request(
		'php/addtoMyList.php',
		{
			method : 'post',
			parameters : parameter,
			onFailure : function(roj){
				alert(roj.responseText);
			},
			onComplete : function(roj){
				if(roj.responseText == 1){
					showDialog('既にお気に入りに登録されているビデオです。');
				}else{
					if(mlopen == 1){
						displayMyPlaylist();
					}
					if(roj.responseText == 2){
						requestVInfo(VID);
					}
					showDialog('お気に入りにビデオを追加しました。');
					createMyXML();
				}
			}
		}
	);
}
function createMyXML(){
	var parameter = $H({ino : $('ilogno').value}).toQueryString();
	new Ajax.Request(
		'php/createMyXML.php',
		{
			method : 'post',
			parameters : parameter,
			onFailure : function(roj){
				alert(roj.responseText);
			},
			onComplete : function(roj){
				
			}
		}
	);
}
function requestVInfo(ID){
	var parameter = $H({id : ID}).toQueryString();
	new Ajax.Request(
		'php/playVideo.php',
		{
			method : 'post',
			parameters : parameter,
			onFailure : function(roj){
				alert(roj.responseText);
			}
		}
	);
}

function removefromMyList(VID){
	if($('ilogno').value == ""){
		showDialog('お気に入り機能を利用するには、smart.fmにログインする必要があります。');
	}else{
		if(VID == undefined){
			VID = playing[nplaying];
		}
		var parameter = $H({id : VID,ino : $('ilogno').value}).toQueryString();
		new Ajax.Request(
			'php/removefromMyList.php',
			{
				method : 'post',
				parameters : parameter,
				onFailure : function(roj){
					alert(roj.responseText);
				},
				onComplete : function(roj){
					displayMyPlaylist();
					createMyXML();
				}
			}
		);
	}
}