// ==UserScript==
// @name           Youtube watch and add video to Quicklist
// @namespace      youtube.com
// @description    Erstellt einen Quicklistbutton um Youtube Videos von beim anschauen in die Quicklist einzufuegen.
// @include        http://www.youtube.com/watch?*
// ==/UserScript==


var scriptCode = new Array();
scriptCode.push('function getsesstoken() {');
scriptCode.push('var flashvars = document.getElementsByTagName(\"body\")[0].innerHTML;');
scriptCode.push('flashvars = flashvars.split("XSRF_QL_PAIR")[1];');
scriptCode.push('flashvars = flashvars.split("session_token=")[1];');
scriptCode.push("flashvars = flashvars.split(\"'\")[0];");
scriptCode.push('return flashvars;');
scriptCode.push('}');

scriptCode.push('function getsesstokenchan() {');
scriptCode.push('var flashvars = document.getElementsByTagName(\"head\")[0].innerHTML;');
scriptCode.push('flashvars = flashvars.split("XSRF_QL_PAIR")[1];');
scriptCode.push('flashvars = flashvars.split("session_token=")[1];');
scriptCode.push("flashvars = flashvars.split(\"'\")[0];");
scriptCode.push('return flashvars;');
scriptCode.push('}');

var script = document.createElement('script');
script.innerHTML = scriptCode.join('\n');
scriptCode.length = 0;
try { document.getElementsByTagName('head')[0].appendChild(script); }
catch(e) {}


var scriptCode = new Array();
scriptCode.push('function addtoquicklist(videoid, chan) {');
scriptCode.push('if (chan==0){sesstok = getsesstoken();}else{sesstok = getsesstokenchan();}');
scriptCode.push('var req = new XMLHttpRequest(); ');
scriptCode.push('req.open("POST", "http://www.youtube.com/watch_queue_ajax?action_add_to_queue=1&video_id="+videoid, true);');
scriptCode.push('req["bid"] = videoid;req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");');
scriptCode.push('req.send("&session_token="+sesstok);');
scriptCode.push('return 0;');
scriptCode.push('}');

var script = document.createElement('script');
script.innerHTML = scriptCode.join('\n');
scriptCode.length = 0;
try { document.getElementsByTagName('head')[0].appendChild(script); }
catch(e) {}


var cssCode = new Array();
cssCode.push('#toquicklist{ width:20px; height:20px; background:url(\"http://s.ytimg.com/yt/img/master-vfl158259.png\") repeat-x scroll 0 0 transparent; background-position: 0 -364px;}');
cssCode.push('#toquicklisthover{ width:20px; height:20px; background:url(\"http://s.ytimg.com/yt/img/master-vfl158259.png\") repeat-x scroll 0 0 transparent; background-position: -25px -364px;}');


var script = document.createElement('style');
script.innerHTML = cssCode.join('\n');
scriptCode.length = 0;
try { document.getElementsByTagName('head')[0].appendChild(script); }
catch(e) {}

/*
var loc = window.location.href;
loc = loc.split("//")[1];
loc = loc.split("/")[1];

if(loc == "user")
{

for (pre in document.getElementById("playnav-play-all-items").getElementsByTagName("div"))
{	
	var checkdiv = pre.innerHTML;
	//checkdiv = checkdiv.split("playnav-").lenght;
	//checkdiv = checkdiv.split("-play")[0];
	//GM_log(checkdiv);
	if(checkdiv == "video");
	{
		
		var videoid= pre.document.getElementsByTagName("div")[0].innerHTML;
		var insertlink = "<button id=\"toquicklist\" alt=\"Add to Quicklist\" onmouseover='this.id=\"toquicklisthover\"' onmouseout='this.id=\"toquicklist\"' onclick='addtoquicklist(\"' + videoid+ '\",1);'>";
		pre.getElementByTagName("span")[0].innerHTML = pre.getElementByTagName("span")[0].innerHTML + "&nbsp;" + insertlink;
		
	}
	
}

}
else
{
*/

var insertlink = "<button id=\"toquicklist\" alt=\"Add to Quicklist\" onmouseover='this.id=\"toquicklisthover\"' onmouseout='this.id=\"toquicklist\"' onclick='addtoquicklist(document.getElementsByName(\"video_id\")[0].value,0);'>";
document.getElementById("watch-headline-title").innerHTML = document.getElementById("watch-headline-title").innerHTML + "&nbsp;" + insertlink;

//}
