// ==UserScript==
// @name           SCPD links
// @namespace      hawflakes.unoc.net
// @description    Strips video links off of SCPD
// @include        https://myvideosu.stanford.edu/*
// ==/UserScript==

// Updated 12/11/10 by jcdoll to work on the current SCPD site format

var vidurls="";
var links;
 
// Main link page for a course
if (window.location.toString().indexOf("GradCourseInfo.aspx?")>=0)
{

// Get links to video page
links = findXPathNodes("/html/body/div/div[2]/div/div/div[2]/div/div/table/tbody/tr/td/a[text()='WMP']");
i=0;
var href=links.snapshotItem(i).getAttribute("href");
var url = href.substring(href.indexOf("'")+1);
url = url.substring(0,url.length-4);
GM_log(url)
get(url,"",getlink,i);
 
}
 
// helper functions
function findXPathNode(xpath, start,doc)
{
	var result = (doc == null ? document : doc).evaluate(xpath,(start == null ? document : start), null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE ,null);
	return (result.snapshotLength > 0 ? result.snapshotItem(0) : null);
}
 
function findXPathNodes(xpath, start,doc)
{
	return (doc == null ? document : doc).evaluate(xpath,(start == null ? document : start), null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE ,null);	
}
 
function elem(tagname,content)
{
	var ret = document.createElement(tagname);
	ret.innerHTML = content;
	return ret;
}
 
function get(url, data, cb,info) {
	var client = new XMLHttpRequest();
	client.open("GET",url,true);
	client.onreadystatechange = function () {
		if(client.readyState==4) {		
			cb(client,info);
		}
	}
	client.send(null);  
}
 
function getlink(client,info)
{
	var tempurl=client.responseText.substring( client.responseText.indexOf("data=\"h")+6, client.responseText.indexOf(".wmv\"") +4) +"\n";
	vidurls=vidurls+tempurl;
	GM_log(tempurl);
	if (info<links.snapshotLength-1)
	{
		var href=links.snapshotItem(info+1).getAttribute("href");
		var url = href.substring(href.indexOf("'")+1);
		url = url.substring(0,url.length-4);
		get(url,"",getlink,info+1);
	}
	else
	{
 		//Generate links page
		GM_openInTab("data:text;charset=UTF-8," + encodeURI(vidurls));
	} 
}

