// ==UserScript==
// @name          Tame the flash player
// @description   Disables autoplay and autoloop
// @include       http://www.em411.com/show/release*
// @include	  http://em411.com/show/release*
// ==/UserScript==

playerArray = document.evaluate(
	"//param[@name='movie']",
	document,
	null,
	XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
	null);
	
for (var i = 0; i < playerArray.snapshotLength; i++) {
	var thisParam = playerArray.snapshotItem(i);
	var oldVal=thisParam.attributes[0].value;
	var xmlUrl=oldVal.match(/http:\/\/www\.em411\.com\/release\/xml\/em411_com-\w*-release\.xml/g);
	var thisObject=thisParam.parentNode;
	var containerDiv=thisObject.parentNode;
	
	GM_xmlhttpRequest({
		method: 'GET',
		url: xmlUrl[0],
		headers: {
			'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
			'Accept': 'application/atom+xml,application/xml,text/xml',
		},
		onload: function(responseDetails) {
			
			var parser = new DOMParser();
			var dom = parser.parseFromString(responseDetails.responseText, "application/xml");
			var locations = dom.getElementsByTagName('location');
			var mp3Url=locations[0].textContent;
			
			playerArray = document.evaluate(
			"//param[@name='movie']",
			document,
			null,
			XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
			null);
			
			for (var i = 0; i < playerArray.snapshotLength; i++) {
				var thisParam = playerArray.snapshotItem(i);
				var oldVal=thisParam.attributes[0].value;
				var thisObject=thisParam.parentNode;
				var containerDiv=thisObject.parentNode;
				var newVal = oldVal.replace(/&autoplay=true/, "");
				var newVal = newVal.replace(/&repeat_playlist=true/, "");
				
				containerDiv.innerHTML='<a href="'+mp3Url+'" target="em411 mp3 window"class="btnTiny rf" style="width:158px;height:20px;margin:0px;background-color:#F44E00;padding-top:7px;">Direct Mp3 link</a><object type="application/x-shockwave-flash" width="160" height="15" data="'+newVal+'"><param name="movie" value="'+newVal+'" /></object>';
				
			}
			
		},
		onerror: function(responseDetails){
			alert('there was an error!');
		}
	});
	
}
