// ==UserScript==
// @name           YouTube download links v1.2
// @namespace      about:blank
// @description    Adds download links to YouTube, adds a clean link to the video, removes the ad. 
// @include        http://*.youtube.com/watch*
// @include        http://youtube.com/watch*
// ==/UserScript==

const lang_DLText='Download';
const lang_DLLinkText='Download link';
const lang_VidLink='Link to this vid';
const lang_help_DL1link='Download this video in .FLV (flash video) format';
const lang_help_DL2link='Download this video in .3GP format (if available)';
const lang_help_DL3link='Download this video in .MPEG4 format (if available)';
const lang_help_dllinkvid='A link to Download this video';
const lang_help_cleanlinkvid='A clean link to this video';

function inp_element(text,title) {
 if (!title) return '<input type="text" class="embedField" onClick="javascript:this.select();" readonly style="width: 100%!important;" value="'+text+'">';
 else return '<input type="text" class="embedField" onClick="javascript:this.select();" readonly style="width: 100%!important;" value="'+text+'" title="'+title+'">';
}
function a_element(text,href,title) {
 var link='<a href="'+href+'" class="smallText eLink"';
 if (title) link+=' title="'+title+'"'
 link+='>'+text+'</a>';
 return link;
}

function getURLVar(URL, varName) {
 var s = URL.substring(URL.indexOf(varName+'='),URL.length);
 return s.substr(0,s.indexOf('&'));
}

function userprofvid() { // will be an implementation for youtube user profile embedded vids
}

var flashVarz=document.getElementById('watch-player-div').getElementsByTagName('embed')[0].getAttribute('flashvars');
var vidId=getURLVar(flashVarz,'video_id');
var tId=getURLVar(flashVarz,'t');

var dlURL='get_video?'+vidId+'&'+tId+'&fmt=';
var dlURL_FLV='get_video?'+vidId+'&'+tId; //link for file without .flv extension (but flv format)
//var dlURL_FLV=dlURL+'5'; //link for file with .flv extension
var dlURL_3GPlo=dlURL+'13'; //link for file with 3gp format (low quality)
var dlURL_3GPhi=dlURL+'17'; //link for file with 3gp format ("high" LOL quality)
var dlURL_MP4=dlURL+'18'; //link for file with mpeg4 format (if available)

var embDiv=document.getElementById('watch-embed-div');

var divelement=document.createElement('div');
//divelement.innerHTML+='<br><b>'+lang_VidLink+':</b>'+inp_element('http://www.youtube.com/watch?'+vidId.replace('ideo_id',''),lang_help_cleanlinkvid);	//clean link
divelement.innerHTML+=
'<div style="float: left;"><b>'+a_element(lang_DLText,dlURL_FLV,lang_help_DL1link)+'</b></div>'+
'<div style="float: right;">'+a_element('.MPEG4',dlURL_MP4,lang_help_DL3link)+'</div>'+
'<div style="float: right; width: 50px;">'+a_element('.3GP',dlURL_3GPlo,lang_help_DL2link)+'</div>'+
inp_element('http://www.youtube.com/'+dlURL_MP4,lang_help_dllinkvid);
embDiv.appendChild(divelement);

var theAd=document.getElementById('watch-channel-brand-div');
theAd.parentNode.removeChild(theAd);			//ad killa
